@font-face {
  font-family: 'Noto Serif SC Local';
  src: url('/assets/fonts/NotoSerifSC/NotoSerifSC-wght.ttf') format('truetype');
  font-style: normal;
  font-weight: 200 900;
  font-display: swap;
}

/* Money house: late-Ming silver/cash exchange ledger */
.money-house-page {
  display: grid;
  gap: 16px;
  color: #332719;
  font-size: 14px;
}

.money-house-hero {
  position: relative;
  min-height: 238px;
  overflow: hidden;
  border: 1px solid rgba(113, 80, 38, 0.42);
  border-radius: 18px;
  background: linear-gradient(90deg, rgba(26, 21, 15, 0.96) 0%, rgba(39, 29, 18, 0.88) 45%, rgba(39, 29, 18, 0.28) 100%), var(--money-house-art) center 54% / cover;
  box-shadow: 0 16px 36px rgba(39, 25, 11, 0.22);
  color: #fff8e8;
}

.money-house-hero-copy {
  position: relative;
  z-index: 1;
  width: min(570px, 68%);
  padding: 34px;
}

.money-house-hero-copy > span,
.money-house-rate-banner span,
.money-house-live-quote header span,
.money-house-receipt > span {
  color: #d6b16a;
  font-size: var(--ming-font-small, 14px);
  font-weight: 800;
  letter-spacing: 0.12em;
}

.money-house-hero h3 {
  margin: 8px 0 10px;
  color: #fffaf0;
  font-family: "Noto Serif SC", "Songti SC", serif;
  font-size: clamp(28px, 4vw, 42px);
}

.money-house-hero p {
  max-width: 510px;
  margin: 0;
  color: rgba(255, 248, 232, 0.86);
  font-size: var(--ming-font-body, 16px);
  line-height: 1.85;
}

.money-house-hero > button {
  position: absolute;
  z-index: 2;
  right: 20px;
  bottom: 20px;
  min-height: 48px;
  padding: 8px 16px;
  border: 1px solid rgba(255, 242, 208, 0.4);
  border-radius: 12px;
  background: rgba(26, 20, 14, 0.78);
  color: #fff7df;
}

.money-house-hero > button b,
.money-house-hero > button small,
.money-house-action b,
.money-house-action small {
  display: block;
}

.money-house-hero > button small,
.money-house-action small {
  margin-top: 3px;
  color: inherit;
  font-size: var(--ming-font-small, 14px);
  opacity: 0.72;
}

.money-house-rate-banner {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 18px;
  padding: 18px 20px;
  border: 1px solid #d6c19a;
  border-radius: 15px;
  background: linear-gradient(135deg, #2e2a21, #4a3c27);
  box-shadow: inset 0 1px rgba(255, 255, 255, 0.1);
  color: #fff6dc;
}

.money-house-rate-banner strong,
.money-house-rate-banner small {
  display: block;
}

.money-house-rate-banner strong {
  margin-top: 4px;
  font-family: "Noto Serif SC", "Songti SC", serif;
  font-size: clamp(20px, 3vw, 29px);
}

.money-house-rate-banner small {
  margin-top: 5px;
  color: rgba(255, 246, 220, 0.7);
  font-size: var(--ming-font-small, 14px);
}

.money-house-rate-banner em {
  flex: 0 0 auto;
  padding: 7px 11px;
  border: 1px solid rgba(226, 190, 112, 0.35);
  border-radius: 999px;
  color: #e6c882;
  font-size: var(--ming-font-small, 14px);
  font-style: normal;
}

.money-house-balances {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1fr) minmax(220px, 1.3fr);
  gap: 12px;
}

.money-house-balances article {
  display: flex;
  align-items: center;
  gap: 13px;
  min-width: 0;
  padding: 15px 17px;
  border: 1px solid #dfd0b3;
  border-radius: 14px;
  background: rgba(255, 252, 243, 0.92);
  box-shadow: 0 7px 18px rgba(89, 63, 28, 0.08);
}

.money-house-balances span,
.money-house-balances small,
.money-house-reserve b {
  display: block;
}

.money-house-balances span,
.money-house-balances small {
  color: #77674f;
  font-size: var(--ming-font-small, 14px);
}

.money-house-balances strong {
  display: block;
  margin-top: 3px;
  color: #3d2b16;
  font-size: 20px;
}

.money-house-reserve {
  display: block !important;
  background: #f1ebdf !important;
}

.money-house-reserve b {
  margin: 4px 0 2px;
  color: #493925;
}

.cash-symbol,
.silver-symbol {
  position: relative;
  display: inline-grid;
  place-items: center;
  flex: 0 0 38px;
  width: 38px;
  height: 38px;
}

.cash-symbol {
  border: 3px solid #aa6f27;
  border-radius: 50%;
  background: radial-gradient(circle at 35% 30%, #e4bc62, #ae7229 62%, #75501f);
  box-shadow: inset 0 0 0 2px rgba(255, 231, 157, 0.36), 0 3px 8px rgba(86, 52, 15, 0.2);
}

.cash-symbol::after {
  width: 10px;
  height: 10px;
  border: 2px solid #74501f;
  background: #f6f0e3;
  content: "";
}

.silver-symbol::before {
  width: 34px;
  height: 22px;
  border: 2px solid #77766e;
  border-radius: 48% 48% 38% 38% / 34% 34% 62% 62%;
  background: linear-gradient(145deg, #fff, #c9c8bd 56%, #919088);
  box-shadow: inset 0 3px 4px rgba(255, 255, 255, 0.95), 0 4px 7px rgba(60, 55, 45, 0.2);
  content: "";
  transform: perspective(20px) rotateX(-4deg);
}

.money-house-live-quote {
  display: grid;
  grid-template-columns: minmax(160px, 0.7fr) minmax(220px, 1fr) minmax(220px, 1.1fr);
  align-items: center;
  gap: 18px;
  padding: 18px 20px;
  border: 1px solid #c7aa6c;
  border-left: 5px solid #b87b27;
  border-radius: 14px;
  background: linear-gradient(100deg, #fff8e6, #f6edda);
}

.money-house-live-quote.is-stale {
  border-color: #b9aaa0;
  border-left-color: #8e7d71;
  filter: saturate(0.55);
}

.money-house-live-quote header b,
.money-house-live-quote p {
  display: block;
  margin: 4px 0 0;
}

.money-house-live-quote p {
  color: #655744;
  line-height: 1.65;
}

.money-house-quote-equation {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 12px;
  white-space: nowrap;
}

.money-house-quote-equation strong {
  color: #5b3c18;
  font-size: 20px;
}

.money-house-quote-equation i {
  color: #a17235;
  font-size: 21px;
  font-style: normal;
}

.money-house-receipt {
  padding: 14px 18px;
  border: 1px dashed #b9a16f;
  border-radius: 12px;
  background: #faf5e9;
}

.money-house-receipt b,
.money-house-receipt small {
  display: block;
  margin-top: 3px;
}

.money-house-receipt small {
  color: #77684f;
  font-size: var(--ming-font-small, 14px);
}

.money-house-rate-columns {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 15px;
}

.money-house-rate-columns > article {
  min-width: 0;
  padding: 20px;
  border: 1px solid #ddd0b8;
  border-radius: 16px;
  background: rgba(255, 253, 247, 0.94);
  box-shadow: 0 10px 26px rgba(75, 51, 21, 0.08);
}

.money-house-rate-columns > article > header {
  display: flex;
  align-items: center;
  gap: 13px;
  margin-bottom: 16px;
}

.money-house-rate-columns header span,
.money-house-rate-columns header small {
  display: block;
  color: #806b4b;
  font-size: var(--ming-font-small, 14px);
}

.money-house-rate-columns h4 {
  margin: 3px 0;
  color: #3c2c19;
  font-size: 18px;
}

.money-house-rate-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 9px;
}

.money-house-action {
  min-height: 44px;
  padding: 9px 11px;
  border: 1px solid #cdb788;
  border-radius: 11px;
  background: linear-gradient(180deg, #fffdf6, #f0e5ce);
  color: #4f381c;
  text-align: left;
  transition: border-color 120ms ease, box-shadow 120ms ease, transform 120ms ease;
}

.money-house-action:not(:disabled):hover {
  border-color: #a76e25;
  box-shadow: 0 6px 14px rgba(132, 84, 26, 0.15);
  transform: translateY(-1px);
}

.money-house-action:disabled {
  cursor: not-allowed;
  opacity: 0.55;
}

.money-house-accept {
  width: 100%;
  border-color: #8d5c23;
  background: linear-gradient(180deg, #6b451f, #4a3019);
  color: #fff4d7;
  text-align: center;
}

.money-house-boundary {
  display: flex;
  align-items: baseline;
  gap: 14px;
  padding: 13px 17px;
  border-radius: 12px;
  background: #e9e2d5;
  color: #665844;
}

.money-house-boundary b {
  flex: 0 0 auto;
  color: #513b22;
}

.money-house-boundary p {
  margin: 0;
  line-height: 1.65;
}

.money-house-directory-card > figure::after {
  background: linear-gradient(180deg, transparent 45%, rgba(23, 17, 10, 0.42));
  content: "";
  inset: 0;
  pointer-events: none;
  position: absolute;
}

@media (max-width: 760px) {
  .money-house-page {
    gap: 12px;
  }

  .money-house-hero {
    min-height: 310px;
    background: linear-gradient(0deg, rgba(27, 21, 15, 0.98) 0%, rgba(35, 27, 18, 0.74) 58%, rgba(35, 27, 18, 0.15) 100%), var(--money-house-art) center / cover;
  }

  .money-house-hero-copy {
    width: auto;
    padding: 24px 20px 86px;
  }

  .money-house-hero > button {
    right: 16px;
    bottom: 16px;
    left: 16px;
  }

  .money-house-rate-banner,
  .money-house-boundary {
    align-items: flex-start;
    flex-direction: column;
  }

  .money-house-balances,
  .money-house-rate-columns,
  .money-house-live-quote {
    grid-template-columns: 1fr;
  }

  .money-house-quote-equation {
    justify-content: flex-start;
  }

  .money-house-rate-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (max-width: 420px) {
  .money-house-rate-grid {
    grid-template-columns: 1fr;
  }

  .money-house-rate-columns > article {
    padding: 16px;
  }
}

/* 锦衣行彩蛋暗线：纯色赤墨，不使用渐变按钮。 */
.case-special-line {
  margin: 16px 0;
  padding: 18px;
  border: 1px solid rgba(164, 60, 43, 0.72);
  border-left: 5px solid #a43c2b;
  background: var(--folio-card, #120f0c);
  box-shadow: inset 0 0 0 1px rgba(220, 177, 92, 0.09);
}

.case-special-line > header,
.case-special-line .case-special-actions article > header {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 12px;
}

.case-special-line > header span,
.case-special-line .case-special-actions header span,
.case-special-latest > span {
  display: block;
  color: var(--folio-muted, #cf8b76);
  font-size: max(15px, 0.82rem);
  letter-spacing: 0.08em;
}

.case-special-line > header h4 {
  margin: 5px 0 0;
  color: var(--folio-ink, #f0dfbc);
  font-size: clamp(25px, 2vw, 34px);
}

.case-special-line > header > b {
  color: var(--folio-ink, #e1bd72);
  font-size: max(15px, 0.82rem);
  white-space: nowrap;
}

.case-special-line > p,
.case-special-actions p,
.case-special-latest p {
  color: var(--folio-muted, #d9cbb0);
  font-size: max(16px, 0.92rem);
  line-height: 1.75;
}

.case-special-achieved {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin: 14px 0;
}

.case-special-achieved span {
  display: inline-flex;
  align-items: center;
  gap: 7px;
  min-height: 34px;
  padding: 6px 10px;
  border: 1px solid rgba(192, 146, 77, 0.45);
  background: var(--folio-card, #1b1711);
  color: var(--folio-muted, #e6d2a5);
  font-size: max(15px, 0.82rem);
}

.case-special-achieved i {
  color: var(--folio-ink, #c44732);
  font-style: normal;
  font-weight: 800;
}

.case-special-actions {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 12px;
}

.case-special-actions article {
  padding: 15px;
  border: 1px solid rgba(164, 60, 43, 0.48);
  background: var(--folio-card, #0c100e);
}

.case-special-actions article > strong {
  display: block;
  margin-top: 8px;
  color: var(--folio-ink, #f0dfbc);
  font-size: max(20px, 1.08rem);
}

.case-special-actions article > small,
.case-special-latest > small {
  display: block;
  color: var(--folio-muted, #baa98b);
  font-size: max(15px, 0.8rem);
  line-height: 1.55;
}

.case-ai-action.special {
  margin-top: 13px;
  border-color: var(--folio-rule, #a43c2b);
  background: var(--folio-card, #351512);
  color: var(--folio-ink, #f2d8b1);
}

.case-ai-action.special:hover:not(:disabled),
.case-ai-action.special:focus-visible:not(:disabled) {
  border-color: var(--folio-rule, #d45b42);
  background: var(--folio-hover, #4a1b16);
}

.case-special-latest {
  margin-top: 14px;
  padding: 13px 15px;
  border-left: 3px solid #9d3b2c;
  background: var(--folio-card, #18110f);
}

.case-special-latest.outcome-advanced {
  border-left-color: var(--folio-rule, #bf8a3d);
}

.case-closing-options .special-ending,
.case-ending.special-ending,
.jinyi-ending-archive-entry.special-ending,
.jinyi-ending-archive-detail.special-ending {
  border-color: var(--folio-rule, rgba(175, 53, 37, 0.88));
  box-shadow: inset 0 0 0 1px rgba(225, 173, 83, 0.12), 0 0 24px rgba(120, 22, 17, 0.16);
}

.case-closing-options .special-ending .case-closing-copy > span,
.case-ending.special-ending figcaption span,
.jinyi-ending-archive-entry.special-ending figcaption span {
  color: #e06f58;
}

@media (max-width: 760px) {
  .case-special-line {
    padding: 14px;
  }

  .case-special-actions {
    grid-template-columns: 1fr;
  }

  .case-special-line > header {
    align-items: flex-start;
  }
}

/* 小市与铺面：先到街面，再进店逐件问价。 */
.market-summary-card,
.market-landing,
.market-shop-page { color: var(--folio-ink, #ded2b5); }
.market-summary-card,
.market-landing { position: relative; overflow: hidden; min-height: 210px; padding: 22px; border: 1px solid rgba(163, 130, 65, 0.42); background: var(--folio-card, #0a100d); isolation: isolate; }
.market-summary-card::before,
.market-landing::before { position: absolute; inset: 0; z-index: -2; content: ''; background-image: var(--market-art); background-position: 72% 42%; background-size: cover; opacity: 0.5; }
.market-summary-card::after,
.market-landing::after { position: absolute; inset: 0; z-index: -1; content: ''; background: linear-gradient(90deg, rgba(3, 8, 6, 0.98) 0 35%, rgba(3, 8, 6, 0.76) 62%, rgba(3, 8, 6, 0.28)); }
.market-summary-card { display: grid; grid-template-columns: minmax(0, 1.4fr) minmax(220px, 0.7fr); gap: 18px; align-items: end; }
.market-summary-card > div,
.market-landing > header { max-width: 620px; display: grid; gap: 7px; }
.market-summary-card span,
.market-landing > header span,
.market-shop-hero span,
.market-sell-panel > header span,
.market-stock-ledger > header span,
.market-goods-group > header span { color: #caaa64; font-size: var(--ming-font-small, 14px); letter-spacing: 0.14em; }
.market-summary-card h3,
.market-landing h3,
.market-shop-hero h3 { margin: 0; color: #f0e5cb; font-family: var(--font-brush); font-size: clamp(27px, 3.2vw, 42px); font-weight: 500; }
.market-summary-card p,
.market-landing p,
.market-shop-hero p { margin: 0; max-width: 620px; color: #bbb29e; font-size: var(--ming-font-body, 16px); line-height: 1.75; }
.market-summary-card dl,
.market-landing-facts,
.market-shop-hero dl { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 8px; margin: 0; }
.market-summary-card dl > div,
.market-landing-facts > span,
.market-shop-hero dl > div { min-width: 0; padding: 9px 10px; border: 1px solid rgba(184, 147, 76, 0.24); background: rgba(7, 12, 9, 0.76); }
.market-summary-card dt,
.market-landing-facts small,
.market-shop-hero dt { display: block; color: #8f8a7b; font-size: var(--ming-font-small, 14px); }
.market-summary-card dd,
.market-landing-facts b,
.market-shop-hero dd { margin: 3px 0 0; color: #dfc98e; font-size: 14px; }
.market-summary-card > button,
.market-landing footer button,
.market-shop-hero > button,
.market-quote-card button,
.market-goods-card > button,
.market-sell-panel article > button { min-height: 44px; padding: 9px 14px; border: 1px solid rgba(189, 149, 74, 0.62); color: #eadbad; background: #302713; cursor: pointer; }
.market-summary-card > button { grid-column: 2; display: grid; align-content: center; text-align: left; }
.market-summary-card button b,
.market-landing button b,
.market-shop-page button b { display: block; font-size: 14px; }
.market-summary-card button small,
.market-landing button small,
.market-shop-page button small { display: block; margin-top: 3px; color: var(--folio-muted, #a99c80); font-size: var(--ming-font-small, 14px); line-height: 1.35; }
.market-landing { display: grid; min-height: 420px; align-content: end; gap: 18px; }
.market-landing-facts { max-width: 620px; }
.market-landing footer { max-width: 760px; display: grid; grid-template-columns: minmax(0, 1fr) 220px; gap: 16px; align-items: center; }
.market-shop-page { display: grid; gap: 14px; min-width: 0; }
.market-shop-hero { position: relative; min-height: 248px; display: grid; grid-template-columns: minmax(0, 1fr) 250px; gap: 14px; align-content: end; overflow: hidden; padding: 24px; border: 1px solid rgba(164, 127, 61, 0.46); background: #070c09; isolation: isolate; }
.market-shop-hero::before { position: absolute; inset: 0; z-index: -2; content: ''; background-image: var(--market-art); background-position: center 45%; background-size: cover; opacity: 0.62; }
.market-shop-hero::after { position: absolute; inset: 0; z-index: -1; content: ''; background: linear-gradient(90deg, rgba(2, 7, 5, 0.98) 0 38%, rgba(2, 7, 5, 0.72) 64%, rgba(2, 7, 5, 0.22)), linear-gradient(0deg, rgba(2, 7, 5, 0.9), transparent 55%); }
.market-shop-hero > div { display: grid; align-content: end; gap: 7px; }
.market-shop-hero dl { grid-template-columns: repeat(2, minmax(0, 1fr)); align-self: end; }
.market-shop-hero > button { grid-column: 2; }
.market-quote-card { position: sticky; top: 8px; z-index: 4; display: grid; grid-template-columns: minmax(0, 1fr) auto 210px; gap: 10px 18px; align-items: center; padding: 14px 16px; border: 1px solid rgba(196, 156, 75, 0.7); background: var(--folio-card, #1d190f); box-shadow: 0 12px 26px rgba(0, 0, 0, 0.34); }
.market-quote-card > span { color: var(--folio-muted, #caa75e); font-size: var(--ming-font-small, 14px); }
.market-quote-card h4 { grid-column: 1; margin: 0; color: var(--folio-ink, #f0dfb7); font-size: 17px; }
.market-quote-card strong { grid-column: 2; grid-row: 1 / 3; color: var(--folio-ink, #e8c56d); font-size: 28px; }
.market-quote-card strong small { margin-left: 3px; font-size: var(--ming-font-small, 14px); }
.market-quote-card p { grid-column: 1 / 3; margin: 0; color: var(--folio-muted, #aaa18e); font-size: var(--ming-font-body, 16px); }
.market-quote-card button { grid-column: 3; grid-row: 1 / 4; }
.market-quote-card.stale { border-color: var(--folio-rule, rgba(135, 91, 73, 0.65)); opacity: 0.84; }
.market-last-receipt { display: grid; grid-template-columns: auto minmax(0, 1fr); gap: 4px 14px; padding: 11px 14px; border-left: 3px solid #668e76; background: var(--folio-card, rgba(48, 80, 63, 0.17)); }
.market-last-receipt span { grid-row: 1 / 3; align-self: center; color: var(--folio-muted, #8db09b); font-size: var(--ming-font-small, 14px); }
.market-last-receipt b { color: var(--folio-ink, #d8d1b8); font-size: 14px; }
.market-last-receipt small { color: var(--folio-muted, #95998c); font-size: var(--ming-font-small, 14px); }
.market-sell-panel,
.market-stock-ledger { padding: 15px; border: 1px solid rgba(105, 133, 112, 0.25); background: var(--folio-card, #08100c); }
.market-sell-panel > header,
.market-stock-ledger > header,
.market-goods-group > header { display: flex; justify-content: space-between; gap: 14px; align-items: end; margin-bottom: 12px; }
.market-sell-panel > header small,
.market-stock-ledger > header small,
.market-goods-group > header small { color: var(--folio-muted, #8e9186); font-size: var(--ming-font-small, 14px); }
.market-sell-panel > div { display: grid; gap: 8px; }
.market-sell-panel article { display: grid; grid-template-columns: 54px minmax(0, 1fr) 190px; gap: 11px; align-items: center; padding: 9px; border: 1px solid rgba(166, 132, 69, 0.25); background: var(--folio-card, rgba(19, 22, 15, 0.72)); }
.market-sell-panel article img { width: 54px; height: 54px; object-fit: contain; }
.market-sell-panel article div { min-width: 0; display: grid; gap: 4px; }
.market-sell-panel article b { color: var(--folio-ink, #e1d6bb); font-size: 14px; }
.market-sell-panel article small { color: var(--folio-muted, #aaa28f); font-size: var(--ming-font-small, 14px); }
.market-stock-ledger > header h4 { margin: 3px 0 0; color: var(--folio-ink, #dfd3b4); font-size: 18px; }
.market-goods-group + .market-goods-group { margin-top: 18px; padding-top: 16px; border-top: 1px solid rgba(156, 124, 62, 0.18); }
.market-goods-group > div { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; }
.market-goods-card { min-width: 0; display: grid; grid-template-columns: 92px minmax(0, 1fr); gap: 10px 12px; padding: 11px; border: 1px solid rgba(136, 116, 75, 0.28); background: var(--folio-card, #0d120d); }
.market-goods-card figure { position: relative; grid-row: 1 / 3; min-height: 92px; display: grid; place-items: center; margin: 0; background: radial-gradient(circle, rgba(178, 147, 86, 0.11), transparent 70%); }
.market-goods-card figure img { width: 88px; height: 88px; object-fit: contain; filter: drop-shadow(0 7px 8px rgba(0, 0, 0, 0.45)); }
.market-goods-card figcaption { position: absolute; right: 0; bottom: 0; padding: 2px 5px; color: #a9bdaa; background: rgba(25, 52, 39, 0.9); font-size: var(--ming-font-small, 14px); }
.market-goods-card > div { min-width: 0; }
.market-goods-card > div > span { color: var(--folio-muted, #9f8f6f); font-size: var(--ming-font-small, 14px); }
.market-goods-card h5 { margin: 2px 0 4px; color: var(--folio-ink, #e5d9bc); font-size: 16px; }
.market-goods-card p { display: block; overflow: visible; margin: 0; color: var(--folio-muted, #a8a18f); font-size: var(--ming-font-body, 16px); line-height: 1.55; }
.market-goods-card > div > small { display: block; margin-top: 7px; color: var(--folio-muted, #c1aa71); font-size: var(--ming-font-small, 14px); }
.market-goods-tags { display: flex; flex-wrap: wrap; gap: 4px; margin-top: 6px; }
.market-goods-tags em { padding: 2px 5px; border: 1px solid rgba(102, 144, 121, 0.32); color: var(--folio-muted, #95b09f); font-size: var(--ming-font-small, 14px); font-style: normal; }
.market-goods-card > button { grid-column: 2; justify-self: stretch; text-align: left; }
.dwelling-harvest-batches { display: grid; gap: 8px; margin: 12px 0; }
.dwelling-harvest-batch { display: grid; grid-template-columns: 54px minmax(0, 1fr) repeat(2, minmax(140px, auto)); gap: 10px; align-items: center; padding: 10px; border: 1px solid rgba(177, 140, 65, 0.32); background: var(--folio-card, rgba(39, 31, 16, 0.28)); }
.dwelling-harvest-batch img { width: 54px; height: 54px; object-fit: contain; }
.dwelling-harvest-batch div { min-width: 0; display: grid; gap: 3px; }
.dwelling-harvest-batch span { color: var(--folio-muted, #b79a5b); font-size: var(--ming-font-small, 14px); }
.dwelling-harvest-batch b { color: var(--folio-ink, #dfd2b4); font-size: 14px; }
.dwelling-harvest-batch small { color: var(--folio-muted, #aaa393); font-size: var(--ming-font-small, 14px); line-height: 1.45; }
.dwelling-harvest-batch button { min-height: 50px; display: grid; gap: 2px; padding: 7px 10px; border: 1px solid rgba(168, 135, 69, 0.4); color: var(--folio-ink, #dfc98d); background: var(--folio-card, #282111); font-size: var(--ming-font-small, 14px); text-align: left; }
.dwelling-harvest-batch button b,
.dwelling-harvest-batch button small { display: block; }

@media (max-width: 860px) {
  .market-summary-card,
  .market-shop-hero { grid-template-columns: 1fr; }
  .market-summary-card > button,
  .market-shop-hero > button { grid-column: 1; }
  .market-quote-card { grid-template-columns: minmax(0, 1fr) auto; }
  .market-quote-card button { grid-column: 1 / -1; grid-row: auto; }
  .market-goods-group > div { grid-template-columns: 1fr; }
  .dwelling-harvest-batch { grid-template-columns: 54px minmax(0, 1fr); }
  .dwelling-harvest-batch button { grid-column: 2; }
}

@media (max-width: 600px) {
  .market-summary-card,
  .market-landing,
  .market-shop-hero { padding: 15px; }
  .market-summary-card::after,
  .market-landing::after,
  .market-shop-hero::after { background: rgba(3, 8, 6, 0.82); }
  .market-landing footer { grid-template-columns: 1fr; }
  .market-summary-card dl,
  .market-landing-facts,
  .market-shop-hero dl { grid-template-columns: 1fr 1fr; }
  .market-summary-card p,
  .market-landing p,
  .market-shop-hero p,
  .market-goods-card p { font-size: var(--ming-font-body, 16px); }
  .market-summary-card button small,
  .market-landing button small,
  .market-shop-page button small,
  .market-sell-panel article small,
  .market-goods-card > div > small,
  .market-last-receipt small { font-size: var(--ming-font-small, 14px); }
  .market-sell-panel article { grid-template-columns: 48px minmax(0, 1fr); }
  .market-sell-panel article > button { grid-column: 1 / -1; }
  .market-goods-card { grid-template-columns: 74px minmax(0, 1fr); }
  .market-goods-card figure { min-height: 74px; }
  .market-goods-card figure img { width: 72px; height: 72px; }
  .market-quote-card { position: static; }
  .market-quote-card p { grid-column: 1 / -1; font-size: var(--ming-font-body, 16px); }
}

.market-summary-card dt,
.market-summary-card button small,
.market-landing-facts small,
.market-landing button small,
.market-shop-hero dt,
.market-shop-page button small,
.market-quote-card > span,
.market-quote-card p,
.market-last-receipt span,
.market-last-receipt small,
.market-sell-panel > header small,
.market-stock-ledger > header small,
.market-goods-group > header small,
.market-sell-panel article small,
.market-goods-card figcaption,
.market-goods-card > div > span,
.market-goods-card p,
.market-goods-card > div > small,
.market-goods-tags em { font-size: var(--ming-font-small, 14px); }

@font-face {
  font-family: 'LXGW WenKai GB Screen Local';
  src: url('/assets/fonts/LXGWWenKaiGBScreen/LXGWWenKaiGBScreen-ui.woff2') format('woff2');
  font-style: normal;
  font-weight: 400;
  font-display: swap;
}

@font-face {
  font-family: 'Ma Shan Zheng Local';
  src: url('/assets/fonts/MaShanZheng/MaShanZheng-ui.woff2') format('woff2');
  font-style: normal;
  font-weight: 400;
  font-display: swap;
}

@font-face {
  font-family: 'Ma Shan Zheng Brand Local';
  src: url('/assets/fonts/MaShanZheng/MaShanZheng-brand.woff2') format('woff2');
  font-style: normal;
  font-weight: 400;
  font-display: swap;
}

@font-face {
  font-family: 'Ma Shan Zheng Full Local';
  src: url('/assets/fonts/MaShanZheng/MaShanZheng-Regular.ttf') format('truetype');
  font-style: normal;
  font-weight: 400;
  font-display: swap;
}

:root {
  color-scheme: dark;
  --ink-950: #090b0b;
  --ink-900: #0d1010;
  --ink-850: #121616;
  --ink-800: #171b1a;
  --paper-100: #eee4cf;
  --paper-200: #d9ccb3;
  --paper-300: #baa989;
  --paper-500: #8f8067;
  --gold-300: #d9bd7f;
  --gold-400: #bea064;
  --gold-600: #856936;
  --red-400: #ad5648;
  --red-600: #773026;
  --jade-300: #8fb2a3;
  --jade-500: #55796d;
  --line: rgba(205, 179, 123, 0.2);
  --line-strong: rgba(222, 194, 132, 0.42);
  --shadow: 0 24px 72px rgba(0, 0, 0, 0.52);
  --font-body: 'LXGW WenKai GB Screen Local', 'Songti SC', 'STSong', 'Noto Serif CJK SC', 'Noto Serif SC Local', serif;
  --font-brush: 'Ma Shan Zheng Local', 'Ma Shan Zheng Full Local', 'KaiTi', 'STKaiti', cursive;
  --font-brand: 'Ma Shan Zheng Brand Local', 'Ma Shan Zheng Local', 'Ma Shan Zheng Full Local', 'KaiTi', 'STKaiti', cursive;
}

* {
  box-sizing: border-box;
}

html {
  min-width: 320px;
  background: var(--ink-950);
  /* 夸克、UC 等移动浏览器的字体强制放大（font boosting）会把宽块文字放大到
     数十像素，再被窄列折成一字一行。在提供 viewport 的页面一律关闭该行为。 */
  -webkit-text-size-adjust: 100%;
  text-size-adjust: 100%;
}

body {
  min-width: 320px;
  min-height: 100vh;
  margin: 0;
  color: var(--paper-200);
  background:
    radial-gradient(circle at 72% 5%, rgba(100, 73, 39, 0.16), transparent 30%),
    radial-gradient(circle at 12% 82%, rgba(86, 111, 99, 0.09), transparent 26%),
    repeating-linear-gradient(92deg, rgba(255, 255, 255, 0.01) 0, rgba(255, 255, 255, 0.01) 1px, transparent 1px, transparent 5px),
    var(--ink-950);
  font-family: var(--font-body);
  font-size: 15px;
  line-height: 1.65;
}

#app,
.app-shell {
  width: 100%;
  min-width: 0;
  max-width: 100%;
}

button,
input,
select,
textarea {
  font: inherit;
}

button {
  color: inherit;
}

button:focus-visible,
input:focus-visible,
select:focus-visible,
textarea:focus-visible {
  outline: 2px solid var(--gold-300);
  outline-offset: 2px;
}

button:disabled {
  cursor: not-allowed;
}

.app-shell {
  min-height: 100vh;
  display: grid;
  grid-template-rows: auto 1fr auto;
}

.topbar {
  min-height: 78px;
  display: grid;
  grid-template-columns: minmax(320px, 1fr) auto;
  align-items: center;
  gap: 22px;
  padding: 10px 24px;
  border-bottom: 1px solid var(--line);
  background:
    linear-gradient(90deg, rgba(118, 47, 37, 0.12), transparent 28%, transparent 72%, rgba(121, 92, 45, 0.08)),
    rgba(10, 13, 13, 0.94);
  box-shadow: 0 10px 35px rgba(0, 0, 0, 0.24);
  position: sticky;
  top: 0;
  z-index: 30;
  backdrop-filter: blur(18px);
}

.brand-lockup {
  display: flex;
  align-items: center;
  gap: 13px;
  min-width: 0;
}

.brand-lockup p,
.brand-lockup h1 {
  margin: 0;
}

.brand-lockup p {
  color: var(--paper-500);
  font-size: var(--ming-font-body, 16px);
  letter-spacing: 0.28em;
}

.brand-lockup h1 {
  color: var(--paper-100);
  font-family: var(--font-brush);
  font-size: clamp(24px, 2vw, 31px);
  line-height: 1.12;
  letter-spacing: 0.08em;
  font-weight: 400;
}

.brand-lockup h1 small {
  color: var(--gold-400);
  font-family: var(--font-body);
  font-size: var(--ming-font-small, 14px);
  letter-spacing: 0.2em;
  font-weight: 500;
  vertical-align: middle;
}

.seal,
.mini-seal {
  display: grid;
  place-items: center;
  flex: 0 0 auto;
  color: #f0d9ac;
  background:
    linear-gradient(135deg, rgba(255, 255, 255, 0.09), transparent 40%),
    #7f3026;
  border: 1px solid rgba(230, 167, 134, 0.52);
  box-shadow: inset 0 0 0 3px rgba(46, 10, 8, 0.28), 0 7px 18px rgba(0, 0, 0, 0.34);
  font-family: var(--font-brush);
  transform: rotate(-2deg);
}

.seal {
  width: 46px;
  height: 46px;
  font-size: 28px;
  border-radius: 4px 7px 3px 6px;
}

.token-wallet {
  justify-self: end;
  min-width: 174px;
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 8px 11px;
  color: var(--paper-200);
  border: 1px solid rgba(143, 178, 163, 0.28);
  border-radius: 5px;
  background: linear-gradient(180deg, rgba(74, 103, 93, 0.16), rgba(16, 21, 20, 0.82));
  cursor: pointer;
}

.token-wallet:hover {
  border-color: rgba(143, 178, 163, 0.52);
}

.token-wallet > span:nth-child(2) {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  line-height: 1.1;
}

.token-wallet small {
  color: var(--paper-500);
  font-size: var(--ming-font-small, 14px);
  letter-spacing: 0.16em;
}

.token-wallet strong {
  color: var(--jade-300);
  margin-top: 3px;
  font-size: 17px;
  letter-spacing: 0.04em;
}

.token-wallet em {
  margin-left: auto;
  color: var(--gold-400);
  font-size: var(--ming-font-small, 14px);
  font-style: normal;
  border: 1px solid rgba(190, 160, 100, 0.25);
  border-radius: 10px;
  padding: 1px 6px;
}

.token-mark {
  width: 30px;
  height: 30px;
  display: grid;
  place-items: center;
  border: 1px solid rgba(143, 178, 163, 0.42);
  border-radius: 50%;
  color: var(--jade-300);
  font-family: var(--font-brush);
  font-size: 20px;
}

.game-workspace {
  width: min(1800px, 100%);
  margin: 0 auto;
  display: grid;
  grid-template-columns: 206px minmax(520px, 1fr) 324px;
  min-height: calc(100vh - 117px);
}

.route-rail {
  display: flex;
  flex-direction: column;
  gap: 14px;
  padding: 20px 13px 22px 18px;
  border-right: 1px solid var(--line);
  background: linear-gradient(180deg, rgba(26, 31, 30, 0.78), rgba(11, 14, 14, 0.5));
}

.rail-heading {
  padding: 0 5px 5px;
}

.rail-heading span {
  color: var(--paper-100);
  font-family: var(--font-brush);
  font-size: 23px;
  letter-spacing: 0.08em;
}

.rail-heading small {
  display: block;
  color: var(--paper-500);
  font-size: var(--ming-font-small, 14px);
  letter-spacing: 0.08em;
}

.route-list {
  display: grid;
  gap: 8px;
}

.route-button {
  width: 100%;
  min-height: 58px;
  display: grid;
  grid-template-columns: 38px 1fr auto;
  align-items: center;
  gap: 9px;
  padding: 8px 9px;
  color: var(--paper-300);
  border: 1px solid transparent;
  border-radius: 4px;
  background: rgba(255, 255, 255, 0.018);
  text-align: left;
  cursor: pointer;
  transition: 150ms ease;
}

.route-button:hover {
  color: var(--paper-100);
  border-color: var(--line);
  background: rgba(211, 185, 126, 0.045);
  transform: translateX(2px);
}

.route-button.active {
  color: var(--paper-100);
  border-color: rgba(211, 185, 126, 0.38);
  background:
    linear-gradient(90deg, rgba(150, 114, 57, 0.18), transparent),
    rgba(255, 255, 255, 0.025);
  box-shadow: inset 3px 0 var(--gold-400);
}

.route-button.locked:not(.active) {
  filter: saturate(0.45);
  opacity: 0.7;
}

.route-icon {
  width: 34px;
  height: 34px;
  display: grid;
  place-items: center;
  border: 1px solid rgba(190, 160, 100, 0.2);
  border-radius: 50%;
  color: var(--gold-400);
  background: rgba(8, 10, 10, 0.46);
  font-family: var(--font-brush);
  font-size: 19px;
}

.route-copy {
  min-width: 0;
  display: flex;
  flex-direction: column;
  line-height: 1.2;
}

.route-copy strong {
  font-size: 14px;
  font-weight: 650;
  letter-spacing: 0.12em;
}

.route-copy small {
  margin-top: 4px;
  color: var(--paper-500);
  font-size: var(--ming-font-small, 14px);
  letter-spacing: 0.06em;
}

.route-lock,
.route-open {
  width: 22px;
  height: 22px;
  display: grid;
  place-items: center;
  border-radius: 50%;
  font-size: var(--ming-font-small, 14px);
}

.route-lock {
  color: #8f8778;
  border: 1px solid rgba(170, 161, 142, 0.18);
}

.route-open {
  color: var(--jade-300);
  border: 1px solid rgba(143, 178, 163, 0.35);
}

.rail-note {
  margin-top: auto;
  padding: 13px 13px 12px;
  border: 1px solid var(--line);
  border-radius: 4px;
  background:
    linear-gradient(135deg, rgba(120, 46, 36, 0.09), transparent 55%),
    rgba(0, 0, 0, 0.22);
}

.rail-note b {
  color: var(--gold-400);
  font-size: var(--ming-font-small, 14px);
  letter-spacing: 0.16em;
}

.rail-note p {
  margin: 7px 0 0;
  color: var(--paper-500);
  font-size: var(--ming-font-body, 16px);
  line-height: 1.75;
}

.origin-stage {
  min-width: 0;
  padding: 16px 18px 24px;
}

.method-tabs {
  height: 54px;
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  border: 1px solid var(--line);
  border-bottom: 0;
  background: rgba(16, 20, 20, 0.76);
}

.method-tab {
  position: relative;
  display: flex;
  align-items: baseline;
  justify-content: center;
  gap: 10px;
  color: var(--paper-500);
  border: 0;
  border-right: 1px solid var(--line);
  background: transparent;
  cursor: pointer;
}

.method-tab:last-child {
  border-right: 0;
}

.method-tab::after {
  content: '';
  position: absolute;
  left: 18%;
  right: 18%;
  bottom: 0;
  height: 2px;
  background: transparent;
}

.method-tab:hover,
.method-tab.active {
  color: var(--paper-100);
  background: linear-gradient(180deg, rgba(202, 169, 103, 0.06), transparent);
}

.method-tab.active::after {
  background: var(--gold-400);
  box-shadow: 0 -4px 15px rgba(190, 160, 100, 0.24);
}

.method-tab strong {
  font-size: var(--ming-font-small, 14px);
  letter-spacing: 0.14em;
}

.method-tab small {
  color: var(--paper-500);
  font-size: var(--ming-font-small, 14px);
}

.origin-hero {
  position: relative;
  min-height: 336px;
  overflow: hidden;
  border: 1px solid var(--line-strong);
  background-color: #121514;
  background-image: var(--hero-image);
  background-size: cover;
  background-position: center;
  box-shadow: var(--shadow);
  isolation: isolate;
}

.origin-hero::before,
.origin-hero::after {
  content: '';
  position: absolute;
  pointer-events: none;
  z-index: 2;
}

.origin-hero::before {
  inset: 9px;
  border: 1px solid rgba(228, 203, 150, 0.16);
}

.origin-hero::after {
  width: 140px;
  height: 140px;
  right: -75px;
  top: -75px;
  border: 1px solid rgba(218, 184, 115, 0.2);
  transform: rotate(45deg);
}

.hero-preload {
  position: absolute;
  width: 1px;
  height: 1px;
  opacity: 0;
  pointer-events: none;
}

.hero-vignette {
  position: absolute;
  inset: 0;
  z-index: 0;
  background:
    linear-gradient(90deg, rgba(6, 8, 8, 0.96) 0%, rgba(6, 8, 8, 0.83) 27%, rgba(6, 8, 8, 0.35) 58%, rgba(6, 8, 8, 0.08) 80%),
    linear-gradient(180deg, rgba(0, 0, 0, 0.15), transparent 44%, rgba(0, 0, 0, 0.68));
}

.origin-hero.locked .hero-vignette {
  background: rgba(6, 8, 8, 0.72);
  backdrop-filter: grayscale(1);
}

.origin-hero.locked.preview-only .hero-vignette {
  background:
    linear-gradient(90deg, rgba(6, 8, 8, 0.92) 0%, rgba(6, 8, 8, 0.74) 27%, rgba(6, 8, 8, 0.19) 59%, rgba(6, 8, 8, 0.04) 80%),
    linear-gradient(180deg, rgba(0, 0, 0, 0.07), transparent 46%, rgba(0, 0, 0, 0.52));
  backdrop-filter: saturate(0.88) contrast(0.96);
}

.hero-copy {
  position: relative;
  z-index: 3;
  width: min(56%, 620px);
  min-height: 336px;
  display: flex;
  flex-direction: column;
  justify-content: center;
  padding: 42px clamp(26px, 4.1vw, 66px);
  text-shadow: 0 2px 13px rgba(0, 0, 0, 0.86);
}

.hero-kicker {
  display: flex;
  align-items: center;
  gap: 10px;
  color: var(--gold-300);
  font-size: var(--ming-font-small, 14px);
  letter-spacing: 0.2em;
}

.hero-kicker i {
  width: 28px;
  height: 1px;
  background: rgba(217, 189, 127, 0.55);
}

.hero-copy h2 {
  margin: 12px 0 1px;
  color: #f1e6cf;
  font-family: var(--font-brush);
  font-size: clamp(42px, 4.2vw, 68px);
  font-weight: 400;
  line-height: 1;
  letter-spacing: 0.12em;
}

.hero-identity {
  margin: 5px 0 0;
  color: var(--paper-300);
  font-size: var(--ming-font-small, 14px);
  letter-spacing: 0.08em;
}

.hero-summary {
  max-width: 560px;
  margin: 18px 0 0;
  color: #d8ccb5;
  font-size: var(--ming-font-small, 14px);
  line-height: 1.9;
}

.hero-flags {
  display: flex;
  flex-wrap: wrap;
  gap: 7px;
  margin-top: 20px;
}

.hero-flags span {
  padding: 3px 9px;
  border: 1px solid rgba(215, 196, 158, 0.19);
  border-radius: 2px;
  color: #c6bba6;
  background: rgba(0, 0, 0, 0.32);
  font-size: var(--ming-font-small, 14px);
  letter-spacing: 0.08em;
}

.hero-flags .status-pill.available {
  color: #bfe0d2;
  border-color: rgba(143, 178, 163, 0.48);
  background: rgba(55, 94, 80, 0.35);
}

.hero-flags .status-pill.locked {
  color: #c1afa8;
  border-color: rgba(173, 86, 72, 0.42);
}

.hero-credit {
  position: absolute;
  right: 15px;
  bottom: 12px;
  z-index: 4;
  color: rgba(235, 225, 204, 0.48);
  font-size: var(--ming-font-small, 14px);
  letter-spacing: 0.1em;
  text-shadow: 0 1px 5px #000;
}

.hero-lock-panel {
  position: absolute;
  z-index: 5;
  inset: 0;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  text-align: center;
}

.hero-lock-panel span {
  width: 54px;
  height: 54px;
  display: grid;
  place-items: center;
  color: var(--paper-300);
  border: 1px solid rgba(215, 196, 158, 0.3);
  border-radius: 50%;
  background: rgba(0, 0, 0, 0.45);
  font-family: var(--font-brush);
  font-size: 26px;
}

.hero-lock-panel b {
  margin-top: 13px;
  color: var(--paper-200);
  font-family: var(--font-brush);
  font-size: 25px;
  font-weight: 400;
}

.hero-lock-panel small {
  color: var(--paper-500);
  font-size: var(--ming-font-small, 14px);
}

.hero-lock-panel.preview-only {
  inset: 18px 18px auto auto;
  width: auto;
  max-width: calc(100% - 36px);
  flex-direction: row;
  justify-content: flex-start;
  gap: 9px;
  padding: 8px 11px;
  border: 1px solid rgba(215, 196, 158, 0.28);
  background: rgba(10, 12, 11, 0.82);
  box-shadow: 0 8px 24px rgba(0, 0, 0, 0.28);
  text-align: left;
}

.hero-lock-panel.preview-only span {
  width: 32px;
  height: 32px;
  flex: 0 0 32px;
  font-size: 18px;
}

.hero-lock-panel.preview-only b {
  margin-top: 0;
  font-size: 16px;
  white-space: nowrap;
}

.hero-lock-panel.preview-only small {
  color: #b9aa8f;
  font-size: var(--ming-font-small, 14px);
  white-space: nowrap;
}

.method-panel {
  margin-top: 14px;
  padding: 17px 18px 18px;
  border: 1px solid var(--line);
  background:
    linear-gradient(140deg, rgba(140, 108, 58, 0.055), transparent 36%),
    rgba(18, 22, 21, 0.74);
}

.panel-heading {
  display: flex;
  align-items: end;
  justify-content: space-between;
  gap: 22px;
  margin-bottom: 13px;
}

.panel-heading span {
  color: var(--gold-400);
  font-size: var(--ming-font-small, 14px);
  letter-spacing: 0.22em;
}

.panel-heading h3 {
  margin: -2px 0 0;
  color: var(--paper-100);
  font-family: var(--font-brush);
  font-size: 27px;
  font-weight: 400;
  letter-spacing: 0.08em;
  line-height: 1.15;
}

.panel-heading p {
  max-width: 54%;
  margin: 0;
  color: var(--paper-500);
  font-size: var(--ming-font-body, 16px);
  text-align: right;
}

.origin-card-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(210px, 1fr));
  gap: 10px;
}

.origin-card-grid.single {
  grid-template-columns: minmax(220px, 420px);
}

.origin-card {
  position: relative;
  min-height: 116px;
  overflow: hidden;
  padding: 0;
  color: var(--paper-200);
  border: 1px solid var(--line);
  border-radius: 3px;
  background: var(--ink-900);
  text-align: left;
  cursor: pointer;
  isolation: isolate;
  transition: 160ms ease;
}

.origin-card:hover,
.origin-card.selected {
  border-color: rgba(217, 189, 127, 0.52);
  transform: translateY(-2px);
  box-shadow: 0 10px 25px rgba(0, 0, 0, 0.32);
}

.origin-card.selected {
  box-shadow: inset 0 0 0 1px rgba(217, 189, 127, 0.12), 0 10px 25px rgba(0, 0, 0, 0.32);
}

.origin-card.locked {
  filter: grayscale(0.78);
  opacity: 0.64;
}

.origin-card.locked:hover {
  transform: none;
}

.origin-card.locked.preview-only {
  filter: grayscale(0.34) saturate(0.82);
  opacity: 0.84;
}

.origin-card.locked.preview-only:hover,
.origin-card.locked.preview-only.selected {
  border-color: rgba(195, 166, 105, 0.5);
  transform: translateY(-1px);
}

.origin-card-image,
.origin-card-shade {
  position: absolute;
  inset: 0;
}

.origin-card-image {
  z-index: -2;
  background-image: var(--card-image);
  background-size: cover;
  background-position: center 34%;
}

.origin-card-shade {
  z-index: -1;
  background: linear-gradient(90deg, rgba(5, 7, 7, 0.92), rgba(5, 7, 7, 0.6) 60%, rgba(5, 7, 7, 0.25));
}

.origin-card-copy {
  min-height: 116px;
  display: flex;
  flex-direction: column;
  justify-content: center;
  padding: 16px 82px 16px 17px;
}

.origin-card-copy small {
  color: var(--gold-400);
  font-size: var(--ming-font-small, 14px);
  letter-spacing: 0.12em;
}

.origin-card-copy strong {
  margin-top: 3px;
  color: var(--paper-100);
  font-family: var(--font-brush);
  font-size: 25px;
  font-weight: 400;
  letter-spacing: 0.08em;
}

.origin-card-copy em {
  color: var(--paper-500);
  font-size: var(--ming-font-small, 14px);
  font-style: normal;
}

.origin-card-badge {
  position: absolute;
  top: 10px;
  right: 10px;
  padding: 2px 7px;
  color: var(--jade-300);
  border: 1px solid rgba(143, 178, 163, 0.34);
  background: rgba(12, 25, 21, 0.66);
  font-size: var(--ming-font-small, 14px);
  letter-spacing: 0.1em;
}

.origin-card.locked .origin-card-badge {
  color: #bbb2a2;
  border-color: rgba(187, 178, 162, 0.25);
}

.origin-card.preview-only .origin-card-badge {
  color: #dbc89f;
  border-color: rgba(219, 200, 159, 0.36);
  background: rgba(43, 31, 18, 0.76);
}

.famous-roster {
  position: relative;
  overflow: hidden;
  border-color: rgba(198, 164, 97, 0.3);
  background:
    radial-gradient(circle at 12% 0%, rgba(153, 112, 53, 0.14), transparent 32%),
    linear-gradient(150deg, rgba(31, 35, 31, 0.94), rgba(12, 16, 15, 0.9));
  box-shadow: inset 0 1px rgba(238, 208, 145, 0.08), 0 18px 38px rgba(0, 0, 0, 0.18);
}

.famous-roster::before {
  content: '';
  position: absolute;
  inset: 7px;
  border: 1px solid rgba(224, 195, 137, 0.08);
  pointer-events: none;
}

.famous-roster .panel-heading,
.famous-roster-summary,
.famous-roster-categories,
.famous-roster-grid {
  position: relative;
  z-index: 1;
}

.famous-roster-summary {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(260px, 0.72fr);
  align-items: stretch;
  gap: 10px;
  margin: -1px 0 11px;
  padding: 9px 10px;
  border: 1px solid rgba(205, 174, 112, 0.18);
  border-left: 3px solid rgba(194, 151, 74, 0.66);
  background: linear-gradient(90deg, rgba(113, 77, 30, 0.17), rgba(5, 8, 8, 0.34));
}

.famous-roster-intro {
  min-width: 0;
  display: grid;
  grid-template-columns: auto 1fr;
  align-content: center;
  align-items: baseline;
  gap: 2px 10px;
}

.famous-roster-intro > span {
  color: var(--gold-400);
  font-size: var(--ming-font-small, 14px);
  letter-spacing: 0.14em;
}

.famous-roster-intro > strong {
  color: var(--paper-100);
  font-family: var(--font-brush);
  font-size: 19px;
  font-weight: 400;
  letter-spacing: 0.08em;
}

.famous-roster-intro > small {
  grid-column: 1 / -1;
  color: var(--paper-500);
  font-size: var(--ming-font-small, 14px);
  line-height: 1.55;
}

.famous-roster-tallies {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 6px;
}

.famous-roster-tallies > span {
  min-width: 0;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 5px;
  padding: 6px 8px;
  border: 1px solid rgba(214, 192, 150, 0.14);
  background: rgba(6, 9, 8, 0.46);
}

.famous-roster-tallies small {
  color: var(--paper-500);
  font-size: var(--ming-font-small, 14px);
  line-height: 1.2;
}

.famous-roster-tallies strong {
  color: #d9c79d;
  font-family: var(--font-brush);
  font-size: 22px;
  font-weight: 400;
}

.famous-roster-tallies .available strong { color: var(--jade-300); }
.famous-roster-tallies .preview strong { color: #d9c79d; }
.famous-roster-tallies .locked strong { color: #aaa294; }

.famous-roster-categories {
  grid-column: 1 / -1;
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 6px;
  padding-top: 2px;
}

.famous-roster-categories > span {
  --roster-accent: rgba(196, 155, 82, 0.72);
  position: relative;
  min-width: 0;
  display: grid;
  grid-template-columns: 3px minmax(0, 1fr) auto;
  grid-template-rows: auto auto;
  column-gap: 7px;
  align-items: center;
  padding: 6px 8px 6px 7px;
  border: 1px solid rgba(214, 192, 150, 0.12);
  background: rgba(5, 8, 8, 0.4);
}

.famous-roster-categories > span > i {
  grid-row: 1 / 3;
  align-self: stretch;
  border-radius: 1px;
  background: var(--roster-accent);
  box-shadow: 0 0 10px color-mix(in srgb, var(--roster-accent) 32%, transparent);
}

.famous-roster-categories b {
  overflow: hidden;
  color: var(--paper-200);
  font-size: var(--ming-font-small, 14px);
  font-weight: 600;
  letter-spacing: 0.08em;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.famous-roster-categories small {
  overflow: hidden;
  color: var(--paper-600);
  font-size: var(--ming-font-small, 14px);
  line-height: 1.2;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.famous-roster-categories strong {
  grid-column: 3;
  grid-row: 1 / 3;
  color: var(--roster-accent);
  font-family: var(--font-brush);
  font-size: 21px;
  font-weight: 400;
}

[data-roster-group="uprising"] { --roster-accent: #bd795f; }
[data-roster-group="military"] { --roster-accent: #b99a61; }
[data-roster-group="maritime"] { --roster-accent: #6faaa7; }
[data-roster-group="scholars"] { --roster-accent: #8f9f78; }

.famous-roster-grid {
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 8px;
}

.famous-roster-grid .origin-card,
.famous-roster-grid .origin-card-copy {
  min-height: 96px;
}

.famous-roster-grid .origin-card {
  border-left: 3px solid color-mix(in srgb, var(--roster-accent, #b99a61) 72%, transparent);
  box-shadow: inset 9px 0 18px color-mix(in srgb, var(--roster-accent, #b99a61) 9%, transparent);
}

.famous-roster-grid .origin-card.selected {
  border-left-color: var(--roster-accent, var(--gold-400));
  box-shadow: inset 10px 0 22px color-mix(in srgb, var(--roster-accent, #b99a61) 15%, transparent), 0 0 0 1px rgba(215, 178, 103, 0.2);
}

.famous-roster-grid .origin-card-copy {
  justify-content: flex-end;
  padding: 27px 74px 10px 12px;
}

.famous-roster-grid .origin-card-copy strong {
  margin-top: 1px;
  font-size: 23px;
  line-height: 1;
}

.famous-roster-grid .origin-card-copy em {
  margin-top: 3px;
  overflow: hidden;
  font-size: var(--ming-font-small, 14px);
  line-height: 1.25;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.origin-card-theme {
  position: absolute;
  right: 8px;
  bottom: 8px;
  max-width: 68px;
  overflow: hidden;
  padding: 2px 5px;
  color: rgba(226, 210, 175, 0.82);
  border: 1px solid rgba(221, 198, 151, 0.19);
  background: rgba(7, 10, 9, 0.68);
  font-size: var(--ming-font-small, 14px);
  line-height: 1.2;
  letter-spacing: 0.06em;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.famous-roster-grid .origin-card-badge {
  top: 7px;
  right: 7px;
  font-size: var(--ming-font-small, 14px);
}

.famous-roster-grid .origin-card-shade {
  background:
    linear-gradient(90deg, rgba(5, 7, 7, 0.96), rgba(5, 7, 7, 0.58) 58%, rgba(5, 7, 7, 0.13)),
    linear-gradient(0deg, rgba(2, 3, 3, 0.82), transparent 68%);
}

@media (max-width: 1260px) {
  .famous-roster-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}

@media (max-width: 860px) {
  .famous-roster-summary { grid-template-columns: 1fr; }
  .famous-roster-categories { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .famous-roster-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (max-width: 560px) {
  .famous-roster .panel-heading { display: block; }
  .famous-roster .panel-heading p { max-width: none; margin-top: 7px; text-align: left; }
  .famous-roster-intro { grid-template-columns: 1fr; }
  .famous-roster-intro > small { grid-column: auto; }
  .famous-roster-tallies > span { flex-direction: column; align-items: flex-start; }
  .famous-roster-grid { grid-template-columns: 1fr; }
  .famous-roster-grid .origin-card-copy { padding-right: 86px; }
}

.custom-form {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 11px;
}

.custom-form label {
  display: flex;
  flex-direction: column;
  gap: 5px;
}

.custom-form label.wide {
  grid-column: span 2;
}

.custom-form label > span,
.ai-composer > label {
  color: var(--paper-500);
  font-size: var(--ming-font-small, 14px);
  letter-spacing: 0.14em;
}

.custom-form input,
.custom-form select,
.ai-composer textarea {
  width: 100%;
  color: var(--paper-100);
  border: 1px solid rgba(202, 176, 123, 0.22);
  border-radius: 3px;
  background: rgba(4, 6, 6, 0.52);
  transition: 120ms ease;
}

.custom-form input,
.custom-form select {
  height: 38px;
  padding: 6px 10px;
  font-size: var(--ming-font-body, 16px);
}

.custom-form input:hover,
.custom-form select:hover,
.ai-composer textarea:hover {
  border-color: rgba(202, 176, 123, 0.4);
}

.custom-foot {
  display: flex;
  justify-content: space-between;
  gap: 16px;
  margin-top: 12px;
  padding-top: 10px;
  border-top: 1px dashed rgba(202, 176, 123, 0.18);
  color: var(--jade-300);
  font-size: var(--ming-font-small, 14px);
}

.custom-foot small {
  color: var(--paper-500);
}

.custom-foot.has-error {
  color: #dc8b7d;
}

.ai-panel {
  display: grid;
  grid-template-columns: minmax(280px, 0.9fr) minmax(320px, 1.1fr);
  gap: 14px;
}

.ai-panel > .panel-heading,
.ai-panel > .prototype-ai-note {
  grid-column: 1 / -1;
}

.ai-composer {
  display: flex;
  flex-direction: column;
}

.ai-composer textarea {
  min-height: 92px;
  resize: vertical;
  margin-top: 6px;
  padding: 10px 12px;
  font-size: var(--ming-font-body, 16px);
  line-height: 1.7;
}

.ai-prompt-meta {
  display: flex;
  justify-content: space-between;
  gap: 12px;
  margin-top: 5px;
  color: var(--paper-500);
  font-size: var(--ming-font-small, 14px);
}

.ai-generate-button {
  min-height: 52px;
  display: flex;
  align-items: center;
  gap: 10px;
  margin-top: 10px;
  padding: 7px 11px;
  color: #ecdfc5;
  border: 1px solid rgba(143, 178, 163, 0.46);
  border-radius: 3px;
  background: linear-gradient(180deg, rgba(77, 116, 99, 0.44), rgba(31, 54, 46, 0.64));
  text-align: left;
  cursor: pointer;
}

.ai-generate-button:hover:not(:disabled) {
  border-color: var(--jade-300);
  box-shadow: 0 8px 22px rgba(42, 88, 70, 0.22);
  transform: translateY(-1px);
}

.ai-generate-button:disabled {
  opacity: 0.62;
}

.ai-spark {
  width: 35px;
  height: 35px;
  display: grid;
  place-items: center;
  flex: 0 0 auto;
  border: 1px solid rgba(190, 220, 205, 0.34);
  border-radius: 50%;
  font-family: var(--font-brush);
  font-size: 21px;
}

.ai-generate-button > span:last-child {
  display: flex;
  flex-direction: column;
}

.ai-generate-button strong {
  font-size: var(--ming-font-small, 14px);
  letter-spacing: 0.08em;
}

.ai-generate-button small {
  color: #a9bdb3;
  font-size: var(--ming-font-small, 14px);
}

.ai-draft {
  min-height: 146px;
  display: grid;
  grid-template-columns: 86px 1fr auto;
  align-items: center;
  gap: 12px;
  overflow: hidden;
  padding: 10px;
  border: 1px solid var(--line);
  border-radius: 3px;
  background:
    linear-gradient(110deg, rgba(121, 91, 47, 0.08), transparent 46%),
    rgba(0, 0, 0, 0.24);
}

.ai-draft.adopted {
  border-color: rgba(143, 178, 163, 0.42);
  box-shadow: inset 0 0 30px rgba(54, 95, 78, 0.08);
}

.ai-draft > img {
  width: 86px;
  height: 112px;
  object-fit: cover;
  object-position: center 28%;
  border: 1px solid rgba(210, 190, 151, 0.22);
  filter: saturate(0.8) contrast(1.05);
}

.ai-draft.empty {
  grid-template-columns: 68px 1fr;
}

.ai-draft.empty > img {
  width: 58px;
  height: 58px;
  border-radius: 50%;
  opacity: 0.58;
}

.ai-draft.loading {
  grid-template-columns: 48px 1fr;
}

.loading-ring {
  width: 34px;
  height: 34px;
  border: 2px solid rgba(143, 178, 163, 0.2);
  border-top-color: var(--jade-300);
  border-radius: 50%;
  animation: spin 0.9s linear infinite;
}

.ai-draft-copy {
  min-width: 0;
}

.ai-draft-copy > span {
  color: var(--jade-300);
  font-size: var(--ming-font-small, 14px);
  letter-spacing: 0.12em;
}

.ai-draft-copy strong,
.ai-draft.empty strong,
.ai-draft.loading strong {
  display: block;
  color: var(--paper-100);
  font-size: var(--ming-font-small, 14px);
  letter-spacing: 0.06em;
}

.ai-draft-copy p {
  margin: 6px 0 0;
  color: var(--paper-500);
  font-size: var(--ming-font-body, 16px);
  line-height: 1.68;
}

.ai-draft.empty small,
.ai-draft.loading small {
  color: var(--paper-500);
  font-size: var(--ming-font-small, 14px);
}

.ai-draft > button {
  align-self: end;
  padding: 7px 10px;
  color: var(--gold-300);
  border: 1px solid rgba(190, 160, 100, 0.36);
  border-radius: 2px;
  background: rgba(87, 63, 25, 0.24);
  font-size: var(--ming-font-small, 14px);
  cursor: pointer;
}

.ai-draft > button:hover:not(:disabled) {
  border-color: var(--gold-300);
}

.ai-draft > button:disabled {
  color: var(--jade-300);
  border-color: rgba(143, 178, 163, 0.26);
}

.prototype-ai-note {
  margin: 0;
  padding: 8px 10px;
  color: var(--paper-500);
  border-left: 2px solid rgba(143, 178, 163, 0.38);
  background: rgba(54, 88, 75, 0.07);
  font-size: var(--ming-font-small, 14px);
}

.prototype-ai-note b {
  color: var(--jade-300);
}

.dossier {
  position: relative;
  min-width: 0;
  padding: 22px 20px 28px;
  border-left: 1px solid var(--line);
  background:
    linear-gradient(180deg, rgba(105, 73, 35, 0.08), transparent 35%),
    rgba(15, 18, 18, 0.88);
}

.dossier::before {
  content: '';
  position: absolute;
  inset: 10px;
  border: 1px solid rgba(213, 186, 129, 0.08);
  pointer-events: none;
}

.dossier > * {
  position: relative;
  z-index: 1;
}

.dossier-heading {
  min-height: 54px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 14px;
  padding-bottom: 13px;
  border-bottom: 1px solid var(--line);
}

.dossier-heading > span {
  color: var(--paper-100);
  font-family: var(--font-brush);
  font-size: 28px;
  line-height: 1;
  letter-spacing: 0.1em;
}

.dossier-status {
  min-height: 42px;
  display: flex;
  align-items: center;
  gap: 8px;
  flex: 0 0 auto;
  padding: 5px 12px 5px 6px;
  border: 1px solid var(--line-strong);
  border-radius: 4px;
  background: rgba(8, 12, 11, 0.68);
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.03);
}

.dossier-status i {
  width: 30px;
  height: 30px;
  display: grid;
  place-items: center;
  flex: 0 0 30px;
  border: 1px solid currentColor;
  border-radius: 3px;
  font-family: var(--font-brush);
  font-size: 19px;
  font-style: normal;
  line-height: 1;
}

.dossier-status strong {
  color: var(--paper-200);
  font-size: var(--ming-font-small, 14px);
  font-weight: 700;
  letter-spacing: 0.08em;
  white-space: nowrap;
}

.dossier-status.available {
  color: var(--jade-300);
  border-color: rgba(110, 164, 141, 0.48);
  background: linear-gradient(180deg, rgba(54, 94, 78, 0.3), rgba(13, 24, 20, 0.7));
}

.dossier-status.available strong {
  color: #c9ddd3;
}

.dossier-status.locked {
  color: var(--gold-400);
  border-color: rgba(190, 160, 100, 0.34);
  background: linear-gradient(180deg, rgba(86, 58, 31, 0.26), rgba(24, 18, 13, 0.72));
}

.dossier-status.locked strong {
  color: var(--paper-300);
}

.dossier-name {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 14px;
  margin-top: 20px;
}

.dossier-name > div {
  min-width: 0;
  display: flex;
  flex-direction: column;
}

.dossier-name strong {
  color: var(--paper-100);
  font-family: var(--font-brush);
  font-size: 35px;
  font-weight: 400;
  line-height: 1;
  letter-spacing: 0.1em;
}

.dossier-name span {
  margin-top: 7px;
  color: var(--paper-300);
  font-size: var(--ming-font-small, 14px);
  font-weight: 560;
  letter-spacing: 0.12em;
}

.mini-seal {
  width: 48px;
  height: 48px;
  font-size: 28px;
  font-style: normal;
}

.dossier-location {
  margin: 16px 0 0;
  color: #ad9e83;
  font-size: var(--ming-font-small, 14px);
  font-weight: 520;
  line-height: 1.8;
}

.resource-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 10px;
  margin-top: 20px;
}

.resource-grid.muted {
  display: block;
  padding: 13px;
  color: var(--paper-500);
  border: 1px dashed var(--line);
  font-size: var(--ming-font-small, 14px);
}

.resource-cell {
  min-height: 72px;
  display: flex;
  flex-direction: column;
  justify-content: center;
  padding: 11px 12px;
  border: 1px solid rgba(205, 179, 123, 0.24);
  background:
    linear-gradient(135deg, rgba(116, 83, 42, 0.07), transparent 58%),
    rgba(4, 8, 7, 0.34);
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.015);
}

.resource-cell span {
  display: block;
  color: var(--paper-300);
  font-size: var(--ming-font-small, 14px);
  font-weight: 600;
  letter-spacing: 0.1em;
}

.resource-cell strong {
  display: block;
  margin-top: 4px;
  color: var(--paper-200);
  font-size: 18px;
  font-weight: 700;
  line-height: 1.15;
}

.resource-cell.danger strong {
  color: #d98a7c;
}

.resource-cell.warning strong {
  color: var(--gold-300);
}

.opening-state-ledger {
  margin-top: 15px;
  padding: 11px 12px 12px;
  border: 1px solid rgba(143, 178, 163, 0.28);
  background:
    linear-gradient(110deg, rgba(58, 105, 85, 0.11), transparent 46%),
    rgba(4, 10, 8, 0.52);
  box-shadow: inset 0 1px 0 rgba(209, 234, 221, 0.025);
}

.opening-state-ledger > header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
}

.opening-state-ledger > header > span {
  color: var(--jade-300);
  font-size: var(--ming-font-small, 14px);
  font-weight: 750;
  letter-spacing: 0.12em;
}

.opening-state-ledger > header p {
  display: flex;
  align-items: baseline;
  justify-content: flex-end;
  flex-wrap: wrap;
  gap: 5px;
  margin: 0;
  white-space: normal;
}

.opening-state-ledger > header small {
  color: var(--paper-500);
  font-size: var(--ming-font-small, 14px);
}

.opening-state-ledger > header strong {
  color: var(--gold-300);
  font-size: 16px;
  font-weight: 750;
}

.opening-state-ledger > header strong.debt { color: #d79a8d; }
.opening-state-ledger > header strong.silver { color: #d8d1c2; }

.opening-state-ledger > header i {
  width: 1px;
  height: 12px;
  margin: 0 3px;
  background: rgba(205, 179, 123, 0.24);
}

.opening-needs-grid {
  display: grid;
  grid-template-columns: repeat(5, minmax(0, 1fr));
  gap: 6px;
  margin-top: 9px;
}

.opening-need {
  min-width: 0;
  padding: 7px 8px 8px;
  border: 1px solid rgba(205, 179, 123, 0.16);
  background: rgba(255, 255, 255, 0.018);
}

.opening-need > span,
.opening-need > strong {
  display: block;
}

.opening-need > span {
  color: #a89b84;
  font-size: var(--ming-font-small, 14px);
  font-weight: 650;
  letter-spacing: 0.06em;
}

.opening-need > strong {
  margin-top: 1px;
  color: var(--paper-200);
  font-size: 18px;
  line-height: 1.15;
}

.opening-need > i {
  height: 3px;
  display: block;
  overflow: hidden;
  margin-top: 5px;
  background: rgba(221, 225, 216, 0.09);
}

.opening-need > i > b {
  height: 100%;
  display: block;
  background: #709f8b;
}

.opening-need.satiety > i > b { background: #b6924a; }
.opening-need.hydration > i > b { background: #5795a0; }
.opening-need.risk > i > b { background: #b85f51; }
.opening-need.risk > strong { color: #d58a7c; }

.stats-block,
.pressure-block {
  margin-top: 23px;
  padding-top: 18px;
  border-top: 1px solid var(--line);
}

.stats-block > span,
.pressure-block > span,
.objective-block span {
  color: var(--gold-400);
  font-size: var(--ming-font-small, 14px);
  font-weight: 650;
  letter-spacing: 0.14em;
}

.stat-row {
  display: grid;
  grid-template-columns: 46px 1fr 30px;
  align-items: center;
  gap: 9px;
  margin-top: 10px;
}

.stat-row small {
  color: var(--paper-200);
  font-size: var(--ming-font-small, 14px);
  font-weight: 560;
}

.stat-row i {
  height: 7px;
  overflow: hidden;
  border-radius: 999px;
  background: rgba(255, 255, 255, 0.07);
}

.stat-row i b {
  display: block;
  height: 100%;
  border-radius: inherit;
  background: linear-gradient(90deg, var(--gold-600), var(--gold-300));
}

.stat-row em {
  color: var(--paper-300);
  font-size: var(--ming-font-small, 14px);
  font-weight: 650;
  font-style: normal;
  text-align: right;
}

.pressure-block ul {
  display: flex;
  flex-wrap: wrap;
  gap: 7px;
  margin: 11px 0 0;
  padding: 0;
  list-style: none;
}

.pressure-block li {
  padding: 6px 10px;
  color: #dab0a6;
  border: 1px solid rgba(173, 86, 72, 0.36);
  border-radius: 2px;
  background: linear-gradient(180deg, rgba(119, 48, 38, 0.18), rgba(63, 27, 22, 0.13));
  font-size: var(--ming-font-small, 14px);
  font-weight: 600;
}

.objective-block {
  display: grid;
  grid-template-columns: 58px 1fr;
  align-items: center;
  gap: 13px;
  margin-top: 21px;
  padding: 14px;
  border: 1px solid rgba(190, 160, 100, 0.34);
  background:
    linear-gradient(110deg, rgba(121, 91, 47, 0.18), transparent 58%),
    rgba(5, 8, 7, 0.34);
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.02);
}

.objective-block img {
  width: 58px;
  height: 58px;
  object-fit: cover;
  border-radius: 50%;
  filter: sepia(0.2) saturate(0.75);
}

.objective-block > div {
  display: flex;
  flex-direction: column;
}

.objective-block strong {
  margin-top: 3px;
  color: var(--paper-200);
  font-size: 14px;
  font-weight: 680;
  line-height: 1.6;
}

.history-note {
  margin: 18px 0 0;
  padding: 12px 13px;
  border-left: 2px solid rgba(190, 160, 100, 0.46);
  background: rgba(111, 79, 39, 0.06);
}

.history-note strong {
  display: block;
  color: var(--gold-400);
  font-size: var(--ming-font-small, 14px);
  font-weight: 700;
  letter-spacing: 0.14em;
}

.history-note p {
  margin: 5px 0 0;
  color: #a19582;
  font-size: var(--ming-font-body, 16px);
  font-weight: 500;
  line-height: 1.8;
}

.start-button {
  width: 100%;
  min-height: 66px;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  margin-top: 20px;
  color: #f2dfba;
  border: 1px solid rgba(217, 189, 127, 0.48);
  border-radius: 3px;
  background:
    linear-gradient(180deg, rgba(132, 84, 30, 0.68), rgba(71, 43, 19, 0.78)),
    #2c2117;
  box-shadow: inset 0 1px rgba(255, 255, 255, 0.07), 0 12px 26px rgba(0, 0, 0, 0.24);
  cursor: pointer;
  transition: 140ms ease;
}

.start-button:hover:not(:disabled) {
  border-color: var(--gold-300);
  transform: translateY(-1px);
  box-shadow: inset 0 1px rgba(255, 255, 255, 0.08), 0 15px 32px rgba(0, 0, 0, 0.32);
}

.start-button:disabled {
  color: #777165;
  border-color: rgba(130, 122, 108, 0.18);
  background: rgba(0, 0, 0, 0.22);
  box-shadow: none;
}

.start-button span {
  font-size: var(--ming-font-small, 14px);
  font-weight: 650;
  letter-spacing: 0.2em;
}

.start-button strong {
  font-family: var(--font-brush);
  font-size: 24px;
  font-weight: 400;
  letter-spacing: 0.1em;
}

.empty-dossier {
  text-align: center;
}

.empty-dossier > img {
  width: 92px;
  height: 92px;
  margin-top: 80px;
  border-radius: 50%;
  opacity: 0.42;
  filter: grayscale(0.4);
}

.empty-dossier h3 {
  margin: 12px 0 0;
  color: var(--paper-200);
  font-family: var(--font-brush);
  font-size: 24px;
  font-weight: 400;
}

.empty-dossier p {
  color: var(--paper-500);
  font-size: var(--ming-font-body, 16px);
}

.prototype-footer {
  min-height: 39px;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 28px;
  padding: 8px 20px;
  color: #655e52;
  border-top: 1px solid var(--line);
  background: rgba(8, 10, 10, 0.94);
  font-size: var(--ming-font-small, 14px);
  letter-spacing: 0.08em;
}

.toast-region {
  position: fixed;
  left: 50%;
  bottom: 28px;
  z-index: 120;
  transform: translateX(-50%);
  pointer-events: none;
}

.toast {
  max-width: min(86vw, 560px);
  padding: 9px 15px;
  color: var(--paper-100);
  border: 1px solid rgba(216, 193, 146, 0.3);
  border-radius: 3px;
  background: rgba(25, 28, 27, 0.96);
  box-shadow: 0 16px 38px rgba(0, 0, 0, 0.42);
  font-size: var(--ming-font-small, 14px);
  letter-spacing: 0.05em;
  animation: toast-in 180ms ease-out;
}

.toast.success {
  border-color: rgba(143, 178, 163, 0.48);
}

.toast.danger {
  border-color: rgba(199, 104, 89, 0.48);
}

.modal-backdrop {
  position: fixed;
  inset: 0;
  z-index: 100;
  display: grid;
  place-items: center;
  padding: 22px;
  background: rgba(2, 4, 4, 0.82);
  backdrop-filter: blur(8px);
  animation: modal-fade 160ms ease-out;
}

.start-modal {
  position: relative;
  width: min(660px, 100%);
  overflow: hidden;
  padding: 34px 38px 30px;
  color: var(--paper-200);
  border: 1px solid rgba(217, 189, 127, 0.46);
  background:
    radial-gradient(circle at 50% 0, rgba(128, 86, 39, 0.2), transparent 42%),
    linear-gradient(160deg, #1a1d1c, #0e1111 74%);
  box-shadow: 0 38px 100px rgba(0, 0, 0, 0.72);
  animation: modal-rise 180ms ease-out;
}

.start-modal::before,
.start-modal::after {
  content: '';
  position: absolute;
  inset: 10px;
  border: 1px solid rgba(217, 189, 127, 0.1);
  pointer-events: none;
}

.start-modal::after {
  inset: 16px;
  border-style: dashed;
  opacity: 0.35;
}

.start-modal > * {
  position: relative;
  z-index: 1;
}

.modal-kicker {
  color: var(--jade-300);
  font-size: var(--ming-font-small, 14px);
  letter-spacing: 0.28em;
}

.start-modal h2 {
  margin: 7px 0 10px;
  color: var(--paper-100);
  font-family: var(--font-brush);
  font-size: 46px;
  font-weight: 400;
  line-height: 1;
  letter-spacing: 0.12em;
}

.start-modal h2 small {
  color: var(--gold-400);
  font-family: var(--font-body);
  font-size: var(--ming-font-small, 14px);
  letter-spacing: 0.12em;
}

.start-modal > p {
  margin: 0;
  color: var(--paper-300);
  font-size: var(--ming-font-body, 16px);
  line-height: 1.9;
}

.modal-record {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 1px;
  margin-top: 19px;
  background: var(--line);
  border: 1px solid var(--line);
}

.modal-record > div {
  min-height: 66px;
  display: flex;
  flex-direction: column;
  justify-content: center;
  padding: 10px 13px;
  background: #141817;
}

.modal-record > div:last-child {
  grid-column: 1 / -1;
}

.modal-record span {
  color: var(--paper-500);
  font-size: var(--ming-font-small, 14px);
  letter-spacing: 0.16em;
}

.modal-record strong {
  color: var(--paper-200);
  font-size: var(--ming-font-small, 14px);
}

.modal-boundary {
  display: flex;
  flex-direction: column;
  gap: 3px;
  margin-top: 14px;
  padding: 9px 12px;
  color: var(--paper-500);
  border-left: 2px solid var(--gold-600);
  background: rgba(126, 94, 42, 0.08);
  font-size: var(--ming-font-small, 14px);
}

.modal-boundary b {
  color: var(--gold-400);
  font-size: var(--ming-font-small, 14px);
}

.player-agency-note {
  gap: 5px;
  padding: 11px 14px;
  color: var(--paper-300);
  border-left-color: var(--jade-400);
  background: linear-gradient(90deg, rgba(63, 104, 87, 0.13), rgba(21, 31, 28, 0.08));
  font-size: var(--ming-font-small, 14px);
  line-height: 1.65;
}

.player-agency-note b {
  color: var(--jade-300);
  font-size: var(--ming-font-small, 14px);
  letter-spacing: 0.08em;
}

.modal-actions {
  display: flex;
  justify-content: flex-end;
  gap: 9px;
  margin-top: 20px;
}

.modal-actions button {
  min-width: 112px;
  padding: 8px 13px;
  color: var(--paper-300);
  border: 1px solid var(--line);
  border-radius: 2px;
  background: rgba(255, 255, 255, 0.025);
  cursor: pointer;
}

.modal-actions button.primary {
  color: #eddfc4;
  border-color: rgba(217, 189, 127, 0.45);
  background: rgba(112, 74, 29, 0.42);
}

@keyframes spin {
  to { transform: rotate(360deg); }
}

@keyframes toast-in {
  from { opacity: 0; transform: translateY(8px); }
}

@keyframes modal-fade {
  from { opacity: 0; }
}

@keyframes modal-rise {
  from { opacity: 0; transform: translateY(12px) scale(0.985); }
}

@media (max-width: 1260px) {
  .game-workspace {
    grid-template-columns: 184px minmax(500px, 1fr) 290px;
  }

  .route-rail {
    padding-left: 12px;
  }

  .hero-copy {
    width: 63%;
  }

  .ai-panel {
    grid-template-columns: 1fr;
  }

  .ai-panel > * {
    grid-column: 1;
  }
}

@media (max-width: 1040px) {
  .topbar {
    grid-template-columns: 1fr auto;
  }

  .game-workspace {
    grid-template-columns: 170px minmax(0, 1fr);
  }

  .dossier {
    grid-column: 2;
    border-top: 1px solid var(--line);
    border-left: 0;
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 0 18px;
  }

  .dossier-heading,
  .dossier-name,
  .dossier-location,
  .history-note,
  .start-button {
    grid-column: 1 / -1;
  }

  .route-rail {
    grid-row: 1 / span 2;
  }

  .hero-copy {
    width: 70%;
  }

  .custom-form {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .custom-form label.wide {
    grid-column: span 1;
  }
}

@media (max-width: 760px) {
  body {
    font-size: 14px;
  }

  .topbar {
    position: relative;
    width: 100%;
    min-width: 0;
    max-width: 100%;
    min-height: 70px;
    padding: 9px 12px;
    gap: 10px;
  }

  .brand-lockup {
    gap: 8px;
  }

  .seal {
    width: 38px;
    height: 38px;
    font-size: 23px;
  }

  .brand-lockup p,
  .brand-lockup h1 small,
  .token-wallet small,
  .token-wallet em {
    display: none;
  }

  .brand-lockup h1 {
    font-size: 23px;
  }

  .token-wallet {
    min-width: auto;
    padding: 6px 8px;
  }

  .token-wallet strong {
    font-size: 14px;
  }

  .token-mark {
    width: 26px;
    height: 26px;
    font-size: 17px;
  }

  .game-workspace {
    width: 100%;
    min-width: 0;
    max-width: 100%;
    display: flex;
    flex-direction: column;
    min-height: auto;
  }

  .route-rail {
    width: 100%;
    min-width: 0;
    max-width: 100%;
    order: 0;
    padding: 10px 10px 11px;
    border-right: 0;
    border-bottom: 1px solid var(--line);
  }

  .rail-heading,
  .rail-note {
    display: none;
  }

  .route-list {
    width: 100%;
    min-width: 0;
    max-width: 100%;
    display: flex;
    gap: 6px;
    overflow-x: auto;
    scrollbar-width: none;
  }

  .route-list::-webkit-scrollbar {
    display: none;
  }

  .route-button {
    min-width: 104px;
    min-height: 44px;
    grid-template-columns: 29px 1fr;
    padding: 5px 7px;
  }

  .route-button:hover {
    transform: none;
  }

  .route-icon {
    width: 27px;
    height: 27px;
    font-size: 16px;
  }

  .route-copy strong {
    font-size: var(--ming-font-small, 14px);
  }

  .route-copy small,
  .route-lock,
  .route-open {
    display: none;
  }

  .origin-stage {
    width: 100%;
    min-width: 0;
    max-width: 100%;
    order: 1;
    padding: 10px;
  }

  .method-tabs {
    width: 100%;
    min-width: 0;
    max-width: 100%;
    height: 50px;
  }

  .method-tab {
    min-width: 0;
    padding: 0 2px;
    flex-direction: column;
    align-items: center;
    gap: 0;
  }

  .method-tab strong {
    font-size: var(--ming-font-small, 14px);
  }

  .method-tab small {
    font-size: 7px;
  }

  .origin-hero {
    min-height: 330px;
    background-position: 67% center;
  }

  .hero-vignette {
    background:
      linear-gradient(90deg, rgba(6, 8, 8, 0.87), rgba(6, 8, 8, 0.28) 75%),
      linear-gradient(180deg, rgba(0, 0, 0, 0.12), rgba(0, 0, 0, 0.18) 46%, rgba(0, 0, 0, 0.94));
  }

  .hero-copy {
    width: 100%;
    min-height: 330px;
    justify-content: flex-end;
    padding: 76px 23px 29px;
  }

  .hero-copy h2 {
    font-size: 45px;
  }

  .hero-summary {
    margin-top: 12px;
    font-size: var(--ming-font-small, 14px);
    line-height: 1.72;
  }

  .hero-credit {
    display: none;
  }

  .method-panel {
    padding: 14px 13px;
  }

  .panel-heading {
    align-items: start;
  }

  .panel-heading p {
    max-width: 58%;
    font-size: var(--ming-font-body, 16px);
  }

  .origin-card-grid,
  .origin-card-grid.single {
    grid-template-columns: 1fr;
  }

  .custom-form {
    grid-template-columns: 1fr 1fr;
  }

  .custom-form label.wide {
    grid-column: 1 / -1;
  }

  .custom-foot {
    flex-direction: column;
    gap: 2px;
  }

  .ai-panel {
    display: block;
  }

  .ai-panel > * + * {
    margin-top: 13px;
  }

  .ai-draft {
    grid-template-columns: 72px 1fr;
  }

  .ai-draft > img {
    width: 72px;
    height: 98px;
  }

  .ai-draft > button {
    grid-column: 1 / -1;
    width: 100%;
  }

  .dossier {
    width: 100%;
    min-width: 0;
    max-width: 100%;
    order: 2;
    display: block;
    padding: 17px 18px 22px;
    border-left: 0;
    border-top: 1px solid var(--line);
  }

  .prototype-footer {
    width: 100%;
    min-width: 0;
    max-width: 100%;
    gap: 0;
    justify-content: center;
  }

  .prototype-footer span:not(:first-child) {
    display: none;
  }

  .start-modal {
    max-height: 92vh;
    overflow-y: auto;
    padding: 28px 24px 24px;
  }

  .start-modal h2 {
    font-size: 39px;
  }

  .modal-record {
    grid-template-columns: 1fr;
  }

  .modal-record > div:last-child {
    grid-column: 1;
  }

  .modal-actions {
    flex-direction: column-reverse;
  }

  .modal-actions button {
    width: 100%;
  }
}

/* V0.9 · 玩家自备接口与统一地点路径 */
.currency-card.player-api,
.main-menu-token.player-api,
.save-global-wallet.player-api {
  border-color: rgba(102, 190, 164, 0.58);
  background:
    radial-gradient(circle at 16% 50%, rgba(89, 171, 147, 0.19), transparent 28%),
    linear-gradient(135deg, rgba(44, 111, 91, 0.22), rgba(7, 18, 15, 0.96));
  box-shadow:
    inset 0 0 0 1px rgba(175, 231, 213, 0.035),
    inset 0 0 24px rgba(50, 146, 117, 0.1),
    0 8px 24px rgba(0, 0, 0, 0.28);
}

.currency-card.player-api::after,
.main-menu-token.player-api::after {
  content: '';
  position: absolute;
  inset: 4px;
  pointer-events: none;
  border: 1px solid rgba(135, 207, 183, 0.08);
}

.currency-card.player-api { position: relative; }
.currency-card.player-api .currency-icon img,
.main-menu-token.player-api img,
.save-global-wallet.player-api img {
  filter: sepia(0.2) hue-rotate(92deg) saturate(0.72) drop-shadow(0 0 9px rgba(94, 188, 158, 0.28));
}
.currency-card.player-api .currency-copy small,
.main-menu-token.player-api small,
.save-global-wallet.player-api strong { color: #a9d5c6; }
.currency-card.player-api > strong,
.main-menu-token.player-api strong,
.save-global-wallet.player-api b {
  color: #9ed3c0;
  font-size: 19px;
  letter-spacing: 0.1em;
  text-shadow: 0 0 14px rgba(99, 197, 164, 0.24);
}
.settings-boundary.player-api {
  border-left-color: #68a891;
  background: linear-gradient(90deg, rgba(43, 108, 87, 0.17), rgba(25, 31, 26, 0.32));
}
.settings-boundary.player-api b { color: #9cccb9; }

@media (max-width: 420px) {
  .brand-lockup h1 {
    font-size: 20px;
  }

  .brand-lockup .seal {
    display: none;
  }

  .token-wallet {
    gap: 5px;
  }

  .token-mark {
    display: none;
  }

  .custom-form {
    grid-template-columns: 1fr;
  }

  .custom-form label.wide {
    grid-column: 1;
  }

  .hero-copy {
    padding-left: 18px;
    padding-right: 18px;
  }
}

/* V0.5 · 可复用人物特质 */
.trait-list {
  position: relative;
  z-index: 8;
  display: flex;
  flex-wrap: wrap;
  gap: 9px;
  margin-top: 22px;
}

.trait-chip {
  position: relative;
  min-width: 112px;
  height: 48px;
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 5px 14px 5px 6px;
  color: #e1d4bc;
  border: 1px solid rgba(211, 183, 126, 0.38);
  border-radius: 3px;
  background: linear-gradient(180deg, rgba(29, 27, 22, 0.94), rgba(9, 12, 11, 0.94));
  box-shadow: inset 0 0 0 1px rgba(255, 244, 213, 0.025), 0 5px 18px rgba(0, 0, 0, 0.22);
  font: inherit;
  cursor: help;
  transition: border-color 160ms ease, color 160ms ease, transform 160ms ease, background 160ms ease;
}

.trait-chip > img {
  width: 38px;
  height: 38px;
  flex: 0 0 38px;
  object-fit: contain;
  filter: drop-shadow(0 2px 4px rgba(0, 0, 0, 0.72));
}

.trait-chip .trait-name {
  color: inherit;
  font-size: 15px;
  font-weight: 700;
  letter-spacing: 0.08em;
  white-space: nowrap;
}

.trait-chip:hover,
.trait-chip:focus-visible,
.trait-chip.expanded {
  z-index: 30;
  color: #fff0d1;
  border-color: rgba(224, 190, 118, 0.78);
  background: linear-gradient(180deg, rgba(53, 43, 28, 0.97), rgba(10, 14, 12, 0.98));
  outline: none;
  transform: translateY(-2px);
}

.trait-chip.burden {
  border-color: rgba(168, 83, 70, 0.52);
  background: linear-gradient(180deg, rgba(57, 28, 24, 0.9), rgba(12, 12, 11, 0.96));
}

.trait-chip.forming {
  color: #b7b09d;
  border-style: dashed;
  border-color: rgba(130, 169, 151, 0.5);
  background: rgba(17, 29, 25, 0.82);
}

.trait-chip.forming > img { opacity: 0.72; filter: grayscale(0.35) drop-shadow(0 2px 4px rgba(0, 0, 0, 0.72)); }
.trait-chip .trait-name small { display: block; color: #83a997; font-size: var(--ming-font-small, 14px); letter-spacing: 0.08em; }

.trait-tooltip {
  position: absolute;
  left: 0;
  bottom: calc(100% + 12px);
  z-index: 100;
  width: min(330px, calc(100vw - 38px));
  display: none;
  padding: 17px;
  color: #cfc2aa;
  border: 1px solid rgba(213, 180, 113, 0.64);
  border-radius: 4px;
  background:
    linear-gradient(145deg, rgba(34, 29, 20, 0.98), rgba(7, 12, 10, 0.99) 56%),
    #0b0f0d;
  box-shadow: 0 18px 50px rgba(0, 0, 0, 0.7), inset 0 0 0 1px rgba(255, 238, 191, 0.035);
  text-align: left;
  text-shadow: none;
  cursor: default;
}

.trait-tooltip::after {
  content: '';
  position: absolute;
  left: 31px;
  bottom: -7px;
  width: 12px;
  height: 12px;
  border-right: 1px solid rgba(213, 180, 113, 0.64);
  border-bottom: 1px solid rgba(213, 180, 113, 0.64);
  background: #0a0e0c;
  transform: rotate(45deg);
}

.trait-chip:hover .trait-tooltip,
.trait-chip:focus-visible .trait-tooltip,
.trait-chip.expanded .trait-tooltip {
  display: block;
  animation: trait-tooltip-in 130ms ease-out both;
}

.trait-tooltip-heading {
  display: flex;
  align-items: center;
  gap: 12px;
  padding-bottom: 11px;
  border-bottom: 1px solid rgba(211, 183, 126, 0.22);
}

.trait-tooltip-heading > img {
  width: 58px;
  height: 58px;
  object-fit: contain;
  filter: drop-shadow(0 4px 8px rgba(0, 0, 0, 0.74));
}

.trait-tooltip-heading span {
  display: flex;
  flex-direction: column;
}

.trait-tooltip-heading small {
  color: #a99165;
  font-size: var(--ming-font-small, 14px);
  font-weight: 600;
  letter-spacing: 0.12em;
}

.trait-tooltip-heading strong {
  color: #f1e3c6;
  font-family: var(--font-brush);
  font-size: 28px;
  font-weight: 500;
  letter-spacing: 0.08em;
}

.trait-summary {
  display: block;
  margin-top: 11px;
  color: #d4c8b1;
  font-size: var(--ming-font-small, 14px);
  font-weight: 500;
  line-height: 1.7;
}

.trait-effects {
  display: block;
  margin-top: 12px;
  padding: 10px 11px;
  border: 1px solid rgba(120, 157, 140, 0.2);
  background: rgba(50, 82, 68, 0.12);
}

.trait-effects > b,
.trait-triggers > b,
.trait-lifecycle > b {
  display: block;
  color: #b8d2c5;
  font-size: var(--ming-font-small, 14px);
  letter-spacing: 0.12em;
}

.trait-effects ul {
  margin: 7px 0 0;
  padding: 0;
  list-style: none;
}

.trait-effects li {
  display: flex;
  justify-content: space-between;
  gap: 12px;
  padding: 4px 0;
  color: #c9bea9;
  font-size: var(--ming-font-small, 14px);
}

.trait-effects li strong {
  color: #9dc5b3;
  font-size: var(--ming-font-small, 14px);
}

.trait-effects.pending { border-style: dashed; opacity: 0.78; }

.actor-trait-progress {
  display: grid;
  grid-template-columns: auto minmax(70px, 1fr) auto;
  align-items: center;
  gap: 8px;
  margin-top: 10px;
  color: #9cc6b3;
  font-size: var(--ming-font-small, 14px);
}

.actor-trait-progress > span { height: 5px; overflow: hidden; background: rgba(126, 151, 139, 0.16); }
.actor-trait-progress > span > i { display: block; width: var(--trait-progress); height: 100%; background: #8fb9a5; }
.actor-trait-progress em { color: #d4c5a6; font-style: normal; }

.trait-chip.burden .trait-effects li strong { color: #df9c8c; }

.trait-lifecycle {
  display: block;
  margin: 10px 0 0;
  padding: 9px 10px;
  color: #c8ad8d;
  border-left: 2px solid rgba(184, 100, 77, 0.66);
  background: rgba(104, 42, 32, 0.13);
  font-size: var(--ming-font-small, 14px);
  line-height: 1.6;
}

.trait-lifecycle > b { margin-bottom: 3px; color: #d89d8c; }

.trait-triggers {
  display: flex;
  flex-wrap: wrap;
  gap: 5px;
  margin-top: 11px;
}

.trait-triggers > b { width: 100%; margin-bottom: 2px; color: #bda779; }
.trait-triggers i {
  padding: 3px 6px;
  color: #ad9f87;
  border: 1px solid rgba(213, 180, 113, 0.19);
  border-radius: 2px;
  font-size: var(--ming-font-small, 14px);
  font-style: normal;
}

.trait-list.compact {
  gap: 5px;
  margin-top: 10px;
}

.trait-list.compact .trait-chip {
  min-width: 0;
  height: 34px;
  gap: 5px;
  padding: 3px 8px 3px 3px;
}

.trait-list.compact .trait-chip > img { width: 28px; height: 28px; flex-basis: 28px; }
.trait-list.compact .trait-name { font-size: var(--ming-font-small, 14px); }
.character-state-card > .trait-list { margin: -2px 13px 13px; }
.actor-list article > .trait-list { grid-column: 1 / -1; }
.actor-obligation {
  grid-column: 1 / -1;
  display: block;
  margin-top: 7px;
  padding: 7px 8px;
  color: #d19786;
  border-left: 2px solid rgba(181, 87, 69, 0.55);
  background: rgba(90, 34, 27, 0.13);
  font-size: var(--ming-font-small, 14px);
}

.actor-facts {
  grid-column: 1 / -1;
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 5px;
  margin-top: 8px;
}

.actor-facts span {
  padding: 6px 7px;
  color: #b9ad96;
  border: 1px solid rgba(213, 180, 113, 0.12);
  background: rgba(255, 255, 255, 0.018);
  font-size: var(--ming-font-small, 14px);
  line-height: 1.45;
}

.actor-facts b { margin-right: 6px; color: #d1b66f; font-size: var(--ming-font-small, 14px); }
.actor-relationship-summary { display: grid; gap: 2px; }
.actor-relationship-summary em { color: #958a77; font-size: var(--ming-font-small, 14px); font-style: normal; line-height: 1.4; }

.actor-body-ledger { display: grid; gap: 7px; padding: 9px; border: 1px solid rgba(96, 145, 122, 0.34); background: linear-gradient(120deg, rgba(11, 27, 21, 0.84), rgba(7, 15, 13, 0.72)); }
.actor-body-ledger > header { display: flex; align-items: baseline; justify-content: space-between; gap: 10px; }
.actor-body-ledger > header span { color: #d1b66f; font-size: var(--ming-font-small, 14px); font-weight: 700; letter-spacing: 0.1em; }
.actor-body-ledger > header b { color: #9fc7b5; font-size: var(--ming-font-small, 14px); }
.actor-body-ledger > div { display: flex; flex-wrap: wrap; gap: 6px; }
.actor-body-condition { min-width: 132px; display: grid; grid-template-columns: 30px minmax(0, 1fr); gap: 1px 7px; align-items: center; padding: 6px 8px; border: 1px solid rgba(99, 139, 120, 0.28); background: rgba(4, 12, 9, 0.58); }
.actor-body-condition img, .actor-body-condition > i { grid-row: 1 / 3; width: 28px; height: 28px; display: grid; place-items: center; object-fit: cover; border-radius: 50%; }
.actor-body-condition > i { color: #9ebcae; border: 1px solid rgba(106, 155, 134, 0.46); font-family: var(--font-brush); font-style: normal; }
.actor-body-condition b { color: #ded0ad; font-size: var(--ming-font-small, 14px); }
.actor-body-condition small { color: #8fa99c; font-size: var(--ming-font-small, 14px); }
.actor-body-condition.status-active { border-color: rgba(169, 88, 69, 0.55); }
.actor-body-condition.watching { border-color: rgba(190, 153, 77, 0.44); }

.actor-action {
  grid-column: 1 / -1;
  margin-top: 10px;
}

.actor-action .system-action-seed {
  width: 100%;
  min-height: 54px;
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  align-items: center;
}

.actor-action .system-action-seed span { font-size: 15px; }
.actor-action .system-action-seed small { font-size: var(--ming-font-small, 14px); text-align: right; }

.system-tabs { grid-template-columns: repeat(8, minmax(0, 1fr)); }
.system-dock:has(.trait-chip:hover),
.system-dock:has(.trait-chip:focus-visible),
.system-dock:has(.trait-chip.expanded) { overflow: visible; position: relative; z-index: 25; }

@keyframes trait-tooltip-in {
  from { opacity: 0; transform: translateY(5px); }
  to { opacity: 1; transform: translateY(0); }
}

@media (max-width: 760px) {
  .trait-list { gap: 7px; }
  .trait-chip { min-width: 104px; height: 46px; padding-right: 11px; }
  .trait-chip > img { width: 36px; height: 36px; flex-basis: 36px; }
  .trait-tooltip { position: fixed; left: 18px; right: 18px; bottom: 20px; width: auto; max-height: min(68vh, 520px); overflow-y: auto; }
  .trait-tooltip::after { display: none; }
  .system-tabs { grid-template-columns: repeat(8, 58px); }
}

@media (max-width: 420px) {
  .trait-list { display: grid; grid-template-columns: 1fr 1fr; }
  .trait-chip { width: 100%; min-width: 0; }
  .trait-list.compact { display: flex; }
  .trait-list.compact .trait-chip { width: auto; }
}

@media (prefers-reduced-motion: reduce) {
  *,
  *::before,
  *::after {
    scroll-behavior: auto !important;
    animation-duration: 0.001ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: 0.001ms !important;
  }
}

/* V0.2 · 李自成 AI 推演纵向切片 */

.header-wallets {
  justify-self: end;
  min-width: 0;
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: 8px;
}

.fate-wallet,
.resume-chip {
  border-radius: 5px;
  cursor: pointer;
}

.fate-wallet {
  min-width: 112px;
  height: 48px;
  display: grid;
  grid-template-columns: 38px 1fr;
  align-items: center;
  gap: 7px;
  padding: 4px 9px 4px 5px;
  color: var(--paper-200);
  border: 1px solid rgba(190, 160, 100, 0.3);
  background: linear-gradient(180deg, rgba(89, 55, 37, 0.42), rgba(27, 20, 18, 0.88));
}

.fate-wallet:hover {
  border-color: rgba(217, 189, 127, 0.58);
}

.fate-wallet img {
  width: 38px;
  height: 38px;
  object-fit: contain;
  filter: drop-shadow(0 4px 8px rgba(0, 0, 0, 0.48));
}

.token-wallet .token-image {
  width: 34px;
  height: 34px;
  flex: 0 0 auto;
  object-fit: contain;
  filter: drop-shadow(0 4px 8px rgba(0, 0, 0, 0.52));
}

.fate-wallet > span {
  min-width: 0;
  display: grid;
  grid-template-columns: 1fr auto;
  align-items: center;
  column-gap: 6px;
  line-height: 1;
}

.fate-wallet small {
  color: var(--paper-500);
  font-size: var(--ming-font-small, 14px);
  letter-spacing: 0.12em;
  white-space: nowrap;
}

.fate-wallet strong {
  color: var(--gold-300);
  font-size: 17px;
  line-height: 1;
}

.resume-chip {
  min-height: 48px;
  padding: 7px 12px;
  color: #d4eadf;
  border: 1px solid rgba(143, 178, 163, 0.35);
  background: rgba(48, 78, 66, 0.3);
  font-size: var(--ming-font-small, 14px);
  letter-spacing: 0.08em;
}

.method-tab.locked {
  color: #756f65;
  cursor: pointer;
  filter: saturate(0.4);
}

.method-tab.locked::before {
  content: '锁';
  margin-right: 4px;
  color: #887a68;
  font-size: var(--ming-font-small, 14px);
}

.content-error {
  margin: 10px 0 0;
  color: #dc8b7d;
  font-size: var(--ming-font-small, 14px);
}

.campaign-shell {
  min-height: 100vh;
  color: var(--paper-200);
  background:
    radial-gradient(circle at 13% 9%, rgba(116, 52, 38, 0.13), transparent 28%),
    radial-gradient(circle at 82% 31%, rgba(75, 103, 91, 0.1), transparent 26%),
    repeating-linear-gradient(91deg, rgba(255, 255, 255, 0.009) 0, rgba(255, 255, 255, 0.009) 1px, transparent 1px, transparent 6px),
    #090c0b;
}

.campaign-header {
  min-height: 76px;
  position: sticky;
  top: 0;
  z-index: 40;
  display: grid;
  grid-template-columns: 126px minmax(320px, 1fr) auto;
  align-items: center;
  gap: 18px;
  padding: 9px 22px;
  border-bottom: 1px solid var(--line-strong);
  background: rgba(9, 12, 11, 0.94);
  backdrop-filter: blur(18px);
  box-shadow: 0 10px 32px rgba(0, 0, 0, 0.28);
}

.back-to-origins {
  height: 44px;
  display: flex;
  flex-direction: column;
  justify-content: center;
  padding: 5px 11px;
  color: var(--paper-300);
  border: 1px solid var(--line);
  border-radius: 3px;
  background: rgba(255, 255, 255, 0.018);
  text-align: left;
  cursor: pointer;
}

.back-to-origins span {
  color: var(--paper-500);
  font-size: var(--ming-font-small, 14px);
  letter-spacing: 0.16em;
}

.back-to-origins strong {
  font-size: var(--ming-font-small, 14px);
  letter-spacing: 0.08em;
}

.campaign-title {
  min-width: 0;
  display: flex;
  align-items: center;
  gap: 12px;
}

.campaign-title .seal {
  width: 42px;
  height: 42px;
  font-size: 25px;
}

.campaign-title h1,
.campaign-title small {
  margin: 0;
}

.campaign-title h1 {
  color: var(--paper-100);
  font-family: var(--font-brush);
  font-size: clamp(23px, 2.2vw, 32px);
  font-weight: 400;
  line-height: 1.08;
  letter-spacing: 0.09em;
}

.campaign-title small {
  display: block;
  color: var(--gold-400);
  font-size: var(--ming-font-small, 14px);
  letter-spacing: 0.2em;
}

.campaign-wallets {
  display: flex;
  align-items: stretch;
  gap: 7px;
}

.campaign-wallets button {
  min-width: 128px;
  min-height: 48px;
  display: grid;
  grid-template-columns: 1fr auto;
  grid-template-rows: auto auto;
  align-items: center;
  column-gap: 9px;
  padding: 6px 10px;
  color: var(--paper-300);
  border: 1px solid rgba(143, 178, 163, 0.28);
  border-radius: 4px;
  background: rgba(47, 76, 64, 0.18);
  text-align: left;
  cursor: pointer;
}

.campaign-wallets button small {
  color: var(--paper-500);
  font-size: var(--ming-font-small, 14px);
  letter-spacing: 0.1em;
}

.campaign-wallets button strong {
  grid-row: 1 / 3;
  grid-column: 2;
  color: var(--jade-300);
  font-size: 18px;
}

.campaign-wallets button em {
  color: #82948b;
  font-size: 7px;
  font-style: normal;
  white-space: nowrap;
}

.campaign-wallets .campaign-fate-wallet {
  min-width: 154px;
  display: flex;
  gap: 8px;
  padding-left: 5px;
  border-color: rgba(190, 160, 100, 0.29);
  background: rgba(80, 47, 30, 0.22);
}

.campaign-wallets .campaign-token-wallet {
  min-width: 162px;
  display: flex;
  gap: 8px;
  padding-left: 5px;
}

.campaign-token-wallet img {
  width: 38px;
  height: 38px;
  object-fit: contain;
  flex: 0 0 auto;
  filter: drop-shadow(0 4px 8px rgba(0, 0, 0, 0.5));
}

.campaign-token-wallet > span {
  min-width: 0;
  flex: 1;
  display: grid;
  grid-template-columns: 1fr auto;
  grid-template-rows: auto auto;
  align-items: center;
  column-gap: 8px;
}

.campaign-fate-wallet img {
  width: 38px;
  height: 38px;
  object-fit: contain;
  flex: 0 0 auto;
  filter: drop-shadow(0 4px 8px rgba(0, 0, 0, 0.5));
}

.campaign-fate-wallet > span {
  min-width: 0;
  flex: 1;
  display: grid;
  grid-template-columns: 1fr auto;
  grid-template-rows: auto auto;
  align-items: center;
  column-gap: 8px;
}

.campaign-fate-wallet > span strong {
  color: var(--gold-300);
}

.campaign-layout {
  width: min(1640px, 100%);
  min-width: 0;
  margin: 0 auto;
  display: grid;
  grid-template-columns: minmax(560px, 1fr) 420px;
  gap: 16px;
  padding: 16px;
}

.campaign-playfield,
.campaign-sidebar {
  min-width: 0;
}

.campaign-playfield {
  display: flex;
  flex-direction: column;
  gap: 13px;
}

.campaign-sidebar {
  display: flex;
  flex-direction: column;
  gap: 12px;
}

.world-strip {
  display: grid;
  grid-template-columns: 108px 202px minmax(230px, 1fr) 128px;
  align-items: stretch;
  border: 1px solid var(--line);
  background: rgba(17, 22, 20, 0.78);
}

.world-strip > div:not(.world-tags),
.world-strip > .weather-location-cell {
  min-width: 0;
  min-height: 62px;
  display: flex;
  flex-direction: column;
  justify-content: center;
  padding: 7px 13px;
  border-right: 1px solid var(--line);
}

.weather-location-cell {
  position: relative;
  min-width: 0;
  border: 0;
  border-right: 1px solid var(--line);
  border-radius: 0;
  background: linear-gradient(90deg, rgba(56, 96, 80, 0.09), transparent 72%);
  color: inherit;
  text-align: left;
  cursor: help;
}

.weather-location-cell {
  display: flex;
  flex-direction: column;
  justify-content: center;
}

.weather-location-cell > small {
  display: flex;
  align-items: center;
  gap: 5px;
  min-width: 0;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.weather-location-cell > small > i {
  display: grid;
  flex: 0 0 19px;
  width: 19px;
  height: 19px;
  place-items: center;
  border: 1px solid rgba(161, 211, 188, 0.38);
  border-radius: 50%;
  color: var(--jade-200);
  font-size: var(--ming-font-small, 14px);
  font-style: normal;
}

.weather-location-cell:hover,
.weather-location-cell:focus,
.weather-location-cell:focus-within {
  outline: none;
  background: linear-gradient(90deg, rgba(56, 116, 91, 0.2), rgba(12, 18, 16, 0.32));
  box-shadow: inset 0 -2px 0 rgba(119, 191, 159, 0.58);
}

.weather-observation-tooltip {
  position: fixed;
  z-index: 80;
  top: 205px;
  left: clamp(180px, 17vw, 350px);
  display: none;
  width: min(470px, calc(100vw - 32px));
  max-height: calc(100vh - 225px);
  overflow-y: auto;
  padding: 15px;
  border: 1px solid rgba(104, 173, 144, 0.62);
  background: rgba(6, 14, 12, 0.98);
  box-shadow: 0 20px 44px rgba(0, 0, 0, 0.56);
  color: var(--paper-200);
  font-size: var(--ming-font-small, 14px);
  line-height: 1.65;
  white-space: normal;
}

.campaign-shell .world-strip .weather-observation-tooltip {
  color: var(--paper-200);
  font-size: var(--ming-font-small, 14px);
  letter-spacing: normal;
}

.weather-location-cell:hover .weather-observation-tooltip,
.weather-location-cell:focus .weather-observation-tooltip,
.weather-location-cell:focus-within .weather-observation-tooltip {
  display: block;
}

.weather-observation-heading {
  display: grid;
  grid-template-columns: 46px 1fr;
  align-items: center;
  gap: 11px;
}

.weather-observation-heading > i {
  display: grid;
  width: 44px;
  height: 44px;
  place-items: center;
  border: 1px solid rgba(193, 162, 91, 0.65);
  border-radius: 50%;
  color: var(--gold-300);
  font-family: var(--font-display);
  font-size: 22px;
  font-style: normal;
}

.weather-observation-heading > span {
  display: flex;
  flex-direction: column;
}

.weather-observation-heading strong {
  overflow: visible;
  font-size: 17px;
  white-space: normal;
}

.weather-observation-tooltip p {
  margin: 11px 0;
  color: var(--paper-300);
}

.weather-observation-tooltip dl {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 7px;
  margin: 0;
}

.weather-observation-tooltip dl > div {
  padding: 8px 9px;
  border: 1px solid rgba(116, 143, 129, 0.24);
  background: rgba(255, 255, 255, 0.018);
}

.weather-observation-tooltip dt {
  color: var(--gold-400);
  font-size: var(--ming-font-small, 14px);
}

.weather-observation-tooltip dd {
  margin: 3px 0 0;
  color: var(--paper-300);
  font-size: var(--ming-font-small, 14px);
}

.world-strip span,
.system-detail-heading span,
.character-state-heading span,
.journal-card > div span {
  color: var(--gold-400);
  font-size: var(--ming-font-small, 14px);
  letter-spacing: 0.16em;
}

.world-strip strong {
  overflow: hidden;
  color: var(--paper-100);
  font-size: var(--ming-font-small, 14px);
  text-overflow: ellipsis;
  white-space: nowrap;
}

.world-time-cell > strong {
  overflow: visible;
  line-height: 1.24;
  overflow-wrap: anywhere;
  text-overflow: clip;
  text-wrap: balance;
  white-space: normal;
}

.world-time-reading {
  display: flex;
  min-width: 0;
  align-items: center;
  gap: 7px;
  margin-top: 2px;
  line-height: 1.15;
  white-space: nowrap;
}

.world-time-reading > b {
  display: inline-flex;
  align-items: baseline;
  gap: 4px;
  color: #dfc887;
  font-size: var(--ming-font-small, 14px);
  font-weight: 700;
  letter-spacing: 0.08em;
}

.world-time-reading > b > mark {
  padding: 0;
  background: transparent;
  color: #b9a876;
  font-size: var(--ming-font-small, 14px);
  font-weight: 600;
  letter-spacing: 0.02em;
}

.world-time-modern {
  display: inline-flex;
  min-width: 0;
  align-items: baseline;
  gap: 4px;
  padding: 2px 7px;
  border: 1px solid rgba(131, 171, 153, 0.28);
  border-radius: 999px;
  background: rgba(51, 96, 78, 0.13);
  color: #b8cec3;
  font-size: var(--ming-font-small, 14px);
  font-style: normal;
  letter-spacing: 0.02em;
}

.world-time-modern > i {
  color: #7f9e90;
  font-size: var(--ming-font-small, 14px);
  font-style: normal;
  letter-spacing: 0.06em;
}

.world-time-modern > time {
  color: #d7e3dc;
  font-variant-numeric: tabular-nums;
  letter-spacing: 0.04em;
}

.world-era-cell {
  background: linear-gradient(180deg, rgba(171, 126, 47, 0.09), rgba(171, 126, 47, 0.018));
}

.world-era-cell > strong {
  overflow: visible;
  color: #ead9ac;
  line-height: 1.24;
  text-overflow: clip;
  white-space: normal;
}

.world-era-cell > small { color: #a9b7a8; }

.world-strip small {
  color: var(--paper-500);
  font-size: var(--ming-font-small, 14px);
}

.world-tags {
  position: relative;
  grid-column: 1 / -1;
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(170px, 1fr));
  align-items: center;
  gap: 6px;
  padding: 7px 9px 8px;
  border-top: 1px solid rgba(192, 168, 117, 0.18);
  background:
    linear-gradient(90deg, rgba(127, 92, 37, 0.08), transparent 22% 78%, rgba(39, 84, 67, 0.08)),
    rgba(3, 8, 6, 0.34);
  box-shadow: inset 0 1px rgba(255, 255, 255, 0.018);
}

.world-tags > span {
  padding: 2px 7px;
  color: #c7b89e;
  border: 1px solid rgba(192, 168, 117, 0.18);
  border-radius: 10px;
  background: rgba(0, 0, 0, 0.24);
  font-size: 7px;
  letter-spacing: 0.06em;
}

.world-condition-chip {
  width: 100%;
  min-width: 0;
  min-height: 44px;
  display: grid;
  grid-template-columns: 27px minmax(0, 1fr);
  align-items: center;
  gap: 7px;
  padding: 6px 10px 6px 7px;
  color: var(--paper-200);
  border: 1px solid rgba(192, 168, 117, 0.26);
  border-radius: 6px;
  background:
    linear-gradient(145deg, rgba(65, 51, 28, 0.4), rgba(5, 13, 10, 0.76)),
    rgba(0, 0, 0, 0.18);
  box-shadow: inset 0 1px rgba(255, 255, 255, 0.025);
  font-family: inherit;
  text-align: left;
  cursor: help;
}

.world-condition-chip:last-child { min-width: 0; }

.world-condition-more {
  position: relative;
  min-width: 0;
}

.world-condition-more > summary {
  width: 100%;
  min-height: 44px;
  display: grid;
  grid-template-columns: 27px minmax(0, 1fr);
  align-items: center;
  gap: 7px;
  padding: 6px 10px 6px 7px;
  color: var(--paper-200);
  border: 1px solid rgba(111, 160, 139, 0.38);
  border-radius: 6px;
  background: linear-gradient(145deg, rgba(32, 66, 53, 0.42), rgba(5, 13, 10, 0.78));
  cursor: pointer;
  list-style: none;
}

.world-condition-more > summary::-webkit-details-marker { display: none; }

.world-condition-more > summary > i {
  width: 27px;
  height: 27px;
  display: grid;
  place-items: center;
  color: #b8d1c4;
  border: 1px solid rgba(123, 181, 154, 0.42);
  border-radius: 50%;
  font-size: 15px;
  font-style: normal;
  font-weight: 800;
}

.world-condition-more > summary > span { min-width: 0; display: grid; gap: 1px; }
.campaign-shell .world-condition-more > summary b { color: #d8e5dd; font-size: var(--ming-font-small, 14px); line-height: 1.15; }
.campaign-shell .world-condition-more > summary small { color: #91ad9f; font-size: var(--ming-font-small, 14px); line-height: 1.25; }

.world-condition-more[open] > summary {
  border-color: rgba(139, 193, 167, 0.7);
  box-shadow: inset 0 0 18px rgba(68, 127, 102, 0.12);
}

.world-condition-more > div {
  position: absolute;
  z-index: 410;
  top: calc(100% + 8px);
  right: 0;
  width: min(720px, calc(100vw - 32px));
  max-height: min(62vh, 520px);
  display: grid;
  grid-template-columns: 1fr;
  gap: 10px;
  overflow-y: auto;
  padding: 10px;
  border: 1px solid rgba(133, 181, 157, 0.6);
  background: rgba(5, 13, 10, 0.98);
  box-shadow: 0 20px 50px rgba(0, 0, 0, 0.68);
  scrollbar-gutter: stable;
}

.world-condition-more > div > header {
  grid-column: 1 / -1;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  padding: 2px 3px 8px;
  border-bottom: 1px solid rgba(133, 181, 157, 0.2);
}

.campaign-shell .world-condition-more > div > header span,
.campaign-shell .world-condition-more > div > header b { font-size: var(--ming-font-small, 14px); }

.world-condition-group {
  min-width: 0;
  display: grid;
  grid-template-columns: 126px minmax(0, 1fr);
  gap: 9px;
  padding: 8px;
  border: 1px solid rgba(133, 181, 157, 0.18);
  background: linear-gradient(100deg, rgba(47, 69, 57, 0.22), rgba(5, 13, 10, 0.3) 42%);
}

.world-condition-group > header {
  min-width: 0;
  display: grid;
  grid-template-columns: 30px minmax(0, 1fr);
  align-content: start;
  align-items: center;
  gap: 7px;
  padding: 6px 7px 6px 2px;
  border-right: 1px solid rgba(133, 181, 157, 0.18);
}

.world-condition-group > header > i {
  width: 30px;
  height: 30px;
  display: grid;
  place-items: center;
  color: #d9c58c;
  border: 1px solid rgba(205, 181, 128, 0.34);
  border-radius: 50%;
  background: rgba(53, 39, 21, 0.48);
  font-size: 15px;
  font-style: normal;
  font-weight: 800;
}

.world-condition-group > header > span {
  min-width: 0;
  display: grid;
  gap: 2px;
}

.campaign-shell .world-condition-group > header b {
  color: #e1d7b8;
  font-size: var(--ming-font-small, 14px);
  line-height: 1.2;
}

.campaign-shell .world-condition-group > header small {
  color: #8fa99d;
  font-size: var(--ming-font-small, 14px);
  line-height: 1.35;
}

.world-condition-group > div {
  min-width: 0;
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 7px;
}

.world-condition-group > div > .world-condition-chip:only-child { grid-column: 1 / -1; }

@media (min-width: 1080px) and (min-height: 680px) {
  .world-condition-more > div {
    position: fixed;
    top: 212px;
    right: calc(clamp(420px, 31vw, 500px) + 26px);
  }
}

/* 世界状态栏可收起：收起后压成单行摘要（数值保留、标签与详情隐藏），
   给中部事件与行动区让出纵向空间；偏好存 localStorage。 */
.world-strip { position: relative; }
.world-strip-toggle {
  position: absolute;
  top: 6px;
  right: 8px;
  z-index: 3;
  padding: 2px 9px;
  font: inherit;
  font-size: var(--ming-font-small, 14px);
  line-height: 1.4;
  color: inherit;
  border: 1px solid var(--line);
  border-radius: 3px;
  background: rgba(12, 17, 15, 0.55);
  cursor: pointer;
}
.world-strip-toggle:hover { border-color: var(--gold-300); }
.world-strip.world-strip-collapsed {
  display: block;
  padding: 5px 56px 5px 12px;
}
.world-strip.world-strip-collapsed > div,
.world-strip.world-strip-collapsed > .weather-location-cell {
  display: inline;
  min-height: 0;
  padding: 0;
  margin-right: 16px;
  border: 0;
  background: transparent;
}
.world-strip.world-strip-collapsed > div > span,
.world-strip.world-strip-collapsed > div > small,
.world-strip.world-strip-collapsed > .weather-location-cell > span,
.world-strip.world-strip-collapsed .world-trends,
.world-strip.world-strip-collapsed .world-time-modern,
.world-strip.world-strip-collapsed .world-time-reading mark {
  display: none;
}
.world-strip.world-strip-collapsed > div > strong,
.world-strip.world-strip-collapsed > .weather-location-cell > strong {
  display: inline;
  font-size: var(--ming-font-body, 16px);
}

.world-condition-chip > i {
  width: 27px;
  height: 27px;
  display: grid;
  place-items: center;
  color: #e5cd8e;
  border: 1px solid rgba(213, 180, 113, 0.42);
  border-radius: 50%;
  background: rgba(25, 18, 10, 0.76);
  font-size: 15px;
  font-style: normal;
  font-weight: 800;
}

.world-condition-chip > span:not(.world-condition-tooltip) {
  min-width: 0;
  display: flex;
  flex-direction: column;
  gap: 1px;
  overflow: visible;
}

.campaign-shell .world-condition-chip > span > b {
  overflow: visible;
  color: var(--paper-100);
  font-size: var(--ming-font-small, 14px);
  line-height: 1.15;
  text-overflow: clip;
  white-space: normal;
}

.campaign-shell .world-condition-chip > span > small {
  color: #ad9b78;
  font-size: var(--ming-font-small, 14px);
  line-height: 1.25;
  white-space: normal;
}

.world-condition-chip.danger { border-color: rgba(172, 74, 58, 0.48); }
.world-condition-chip.warning { border-color: rgba(193, 156, 78, 0.4); }
.world-condition-chip:hover,
.world-condition-chip:focus-visible {
  border-color: rgba(220, 191, 127, 0.72);
  outline: 2px solid rgba(108, 155, 139, 0.28);
  outline-offset: 2px;
  background: linear-gradient(145deg, rgba(67, 54, 30, 0.64), rgba(8, 15, 13, 0.9));
}

.world-condition-tooltip {
  display: none;
  position: fixed;
  z-index: 420;
  top: 104px;
  left: 50%;
  width: min(430px, calc(100vw - 28px));
  padding: 18px;
  color: var(--paper-300);
  border: 1px solid rgba(208, 176, 108, 0.62);
  background:
    linear-gradient(135deg, rgba(20, 28, 24, 0.98), rgba(7, 10, 9, 0.99)),
    repeating-linear-gradient(90deg, transparent 0 5px, rgba(205, 181, 128, 0.02) 5px 6px);
  box-shadow: 0 24px 70px rgba(0, 0, 0, 0.72);
  transform: translateX(-50%);
  pointer-events: none;
}

.world-condition-chip:hover .world-condition-tooltip,
.world-condition-chip:focus-visible .world-condition-tooltip { display: block; }

.world-condition-tooltip-heading {
  display: grid;
  grid-template-columns: 46px minmax(0, 1fr) auto;
  align-items: center;
  gap: 12px;
  padding-bottom: 13px;
  border-bottom: 1px solid rgba(205, 181, 128, 0.2);
}

.world-condition-tooltip-heading > i {
  width: 46px;
  height: 46px;
  display: grid;
  place-items: center;
  color: #ead291;
  border: 1px solid rgba(213, 180, 113, 0.52);
  border-radius: 50%;
  background: rgba(72, 46, 24, 0.52);
  font-size: 25px;
  font-style: normal;
}

.world-condition-tooltip-heading > span { display: flex; flex-direction: column; }
.campaign-shell .world-condition-tooltip-heading small { color: var(--gold-400); font-size: var(--ming-font-small, 14px); letter-spacing: 0.09em; }
.world-condition-tooltip-heading strong { color: var(--paper-100); font-size: 20px; }
.world-condition-tooltip-heading em { color: #dfc780; font-size: 30px; font-style: normal; font-weight: 800; }
.world-condition-tooltip > p { margin: 13px 0; color: var(--paper-300); font-size: var(--ming-font-body, 16px); line-height: 1.7; }
.world-condition-tooltip dl { display: grid; gap: 8px; margin: 0; }
.world-condition-tooltip dl div { display: grid; grid-template-columns: 82px minmax(0, 1fr); gap: 10px; }
.world-condition-tooltip dt { color: var(--gold-400); font-size: var(--ming-font-small, 14px); font-weight: 700; }
.world-condition-tooltip dd { margin: 0; color: var(--paper-200); font-size: var(--ming-font-small, 14px); line-height: 1.55; }

@media (max-width: 760px) {
  .world-tags { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .world-condition-chip { min-width: 0; }
  .world-condition-chip:last-child { min-width: 0; }
  .world-tags > .world-condition-chip:last-child:nth-child(odd) { grid-column: 1 / -1; }
  .world-tags > .world-condition-chip:nth-last-child(2):nth-child(odd):has(+ .world-condition-more) { grid-column: auto; }
  .world-condition-more > div {
    position: fixed;
    top: 146px;
    right: 12px;
    left: 12px;
    width: auto;
    max-height: calc(100dvh - 162px);
    grid-template-columns: 1fr;
  }
  .world-condition-group { grid-template-columns: 1fr; }
  .world-condition-group > header {
    grid-template-columns: 30px minmax(0, 1fr);
    padding: 3px 2px 7px;
    border-right: 0;
    border-bottom: 1px solid rgba(133, 181, 157, 0.18);
  }
  .world-condition-group > div { grid-template-columns: 1fr; }
  .world-condition-tooltip { top: 78px; }
}

.ai-event-card {
  position: relative;
  min-height: 420px;
  overflow: hidden;
  padding: clamp(24px, 3.2vw, 48px);
  border: 1px solid var(--line-strong);
  background:
    linear-gradient(90deg, rgba(7, 10, 9, 0.97), rgba(7, 10, 9, 0.86) 47%, rgba(7, 10, 9, 0.42)),
    linear-gradient(180deg, transparent 55%, rgba(5, 7, 7, 0.88)),
    url('/assets/art/li-zicheng-courier-road-1629.png') center / cover;
  box-shadow: var(--shadow);
  isolation: isolate;
}

.ai-event-card::before {
  content: '';
  position: absolute;
  inset: 9px;
  z-index: -1;
  border: 1px solid rgba(224, 196, 137, 0.13);
  pointer-events: none;
}

.ai-event-card.thinking::after {
  content: '';
  position: absolute;
  inset: 0;
  background: linear-gradient(110deg, transparent 25%, rgba(143, 178, 163, 0.08) 48%, transparent 70%);
  animation: inference-sweep 1.1s linear infinite;
  pointer-events: none;
}

.event-heading {
  display: flex;
  align-items: start;
  justify-content: space-between;
  gap: 18px;
}

.event-heading span {
  color: var(--gold-300);
  font-size: var(--ming-font-small, 14px);
  letter-spacing: 0.22em;
}

.event-heading h2 {
  max-width: 650px;
  margin: 4px 0 0;
  color: #efe3ca;
  font-family: var(--font-brush);
  font-size: clamp(34px, 4.2vw, 56px);
  font-weight: 400;
  line-height: 1.13;
  letter-spacing: 0.06em;
}

.ai-status {
  padding: 3px 9px;
  color: var(--jade-300);
  border: 1px solid rgba(143, 178, 163, 0.36);
  border-radius: 12px;
  background: rgba(25, 54, 43, 0.42);
  font-size: var(--ming-font-small, 14px);
  font-style: normal;
  letter-spacing: 0.1em;
  white-space: nowrap;
}

.event-narrative {
  max-width: 690px;
  margin: 18px 0 0;
  color: #d8ccb7;
  font-size: var(--ming-font-body, 16px);
  line-height: 2;
  text-shadow: 0 2px 10px #000;
}

.ai-stream-label {
  display: inline-flex;
  align-items: center;
  margin-top: 10px;
  padding: 5px 9px;
  color: #b9cfbf;
  border: 1px solid rgba(143, 178, 163, 0.28);
  background: rgba(13, 27, 22, 0.78);
  font-size: var(--ming-font-small, 14px);
  line-height: 1.4;
  letter-spacing: 0.08em;
}

.event-state-read {
  display: flex;
  flex-wrap: wrap;
  gap: 7px;
  margin-top: 18px;
}

.event-state-read span,
.event-state-read b {
  padding: 3px 8px;
  border: 1px solid rgba(224, 198, 145, 0.16);
  background: rgba(3, 5, 5, 0.52);
  font-size: var(--ming-font-small, 14px);
  font-weight: 500;
}

.event-state-read span {
  color: var(--gold-400);
}

.choice-list {
  max-width: 760px;
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 8px;
  margin-top: 22px;
}

.choice-list.choice-count-1 { grid-template-columns: minmax(0, 1fr); }
.choice-list.choice-count-2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.choice-list.choice-count-4 {
  max-width: 100%;
  grid-template-columns: repeat(4, minmax(0, 1fr));
}

.choice-list.choice-count-4 button {
  height: 98px;
  min-height: 98px;
  overflow: hidden;
  padding: 9px 10px 8px;
  border-top-color: rgba(225, 194, 130, 0.42);
  background: rgba(10, 14, 12, 0.94);
}

.choice-list.choice-count-4 .choice-copy {
  min-height: 0;
  justify-content: center;
}

.choice-list.choice-count-4 .choice-copy strong {
  display: -webkit-box;
  overflow: hidden;
  font-size: var(--ming-font-body, 16px);
  line-height: 1.38;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 3;
}

.choice-list.choice-count-4 .choice-copy small { display: none; }

.choice-list.choice-count-4 .choice-cost {
  align-self: end;
  font-size: var(--ming-font-small, 14px);
  line-height: 1.2;
}

.choice-list button {
  min-width: 0;
  min-height: 92px;
  display: grid;
  grid-template-columns: 26px 1fr;
  grid-template-rows: 1fr auto;
  gap: 5px 8px;
  padding: 11px;
  color: var(--paper-200);
  border: 1px solid rgba(217, 189, 127, 0.26);
  border-radius: 3px;
  background: rgba(8, 12, 11, 0.78);
  text-align: left;
  cursor: pointer;
  transition: 150ms ease;
}

.choice-list button:hover:not(:disabled) {
  border-color: rgba(217, 189, 127, 0.65);
  background: rgba(83, 63, 31, 0.52);
  transform: translateY(-2px);
}

.choice-list button:disabled {
  opacity: 0.44;
}

.choice-index {
  color: var(--gold-400);
  font-family: var(--font-brush);
  font-size: 19px;
}

.choice-copy {
  min-width: 0;
  display: flex;
  flex-direction: column;
}

.choice-copy strong {
  color: var(--paper-100);
  font-size: var(--ming-font-body, 16px);
  line-height: 1.45;
}

.choice-copy small {
  margin-top: 3px;
  color: var(--paper-500);
  font-size: var(--ming-font-small, 14px);
  line-height: 1.5;
}

.choice-cost {
  grid-column: 2;
  width: 100%;
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: 7px;
  justify-self: end;
  color: var(--jade-300);
  font-size: var(--ming-font-small, 14px);
}

.choice-approach {
  flex: 0 0 auto;
  padding: 2px 6px;
  color: #e4c981;
  border: 1px solid rgba(217, 189, 127, 0.34);
  background: #171710;
  font-size: var(--ming-font-small, 14px);
  font-style: normal;
  font-weight: 750;
  letter-spacing: 0.08em;
  white-space: nowrap;
}

.choice-cost em {
  padding-left: 7px;
  color: #d9bd7e;
  border-left: 1px solid rgba(217, 189, 127, 0.24);
  font-size: var(--ming-font-small, 14px);
  font-style: normal;
  font-weight: 700;
  letter-spacing: 0.06em;
  white-space: nowrap;
}

.inference-report,
.free-action-panel,
.character-state-card,
.system-dock,
.journal-card {
  border: 1px solid var(--line);
  background: rgba(17, 21, 20, 0.82);
}

.inference-report {
  padding: 16px 18px;
  border-left: 3px solid var(--jade-500);
}

.inference-report.irreversible {
  border-left-color: var(--red-400);
  background: linear-gradient(90deg, rgba(119, 48, 38, 0.12), transparent 42%), rgba(17, 21, 20, 0.82);
}

.inference-report.empty {
  color: var(--paper-500);
  border-left-color: var(--gold-600);
}

.inference-report.empty > span,
.inference-heading span {
  color: var(--gold-400);
  font-size: var(--ming-font-small, 14px);
  letter-spacing: 0.16em;
}

.inference-report.empty p {
  margin: 5px 0 0;
  font-size: var(--ming-font-body, 16px);
}

.inference-heading {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
}

.inference-heading small {
  color: var(--jade-300);
  font-size: var(--ming-font-small, 14px);
}

.inference-report h3 {
  margin: 8px 0 0;
  color: var(--paper-100);
  font-size: var(--ming-font-small, 14px);
  font-weight: 600;
  line-height: 1.8;
}

.inference-report p {
  margin: 6px 0 0;
  color: var(--paper-500);
  font-size: var(--ming-font-body, 16px);
}

.change-list {
  display: flex;
  flex-wrap: wrap;
  gap: 5px;
  margin-top: 10px;
}

.change-list span {
  padding: 2px 7px;
  border: 1px solid rgba(255, 255, 255, 0.08);
  border-radius: 10px;
  font-size: var(--ming-font-small, 14px);
}

.change-list .positive { color: #9bc8b4; }
.change-list .negative { color: #d08b7e; }
.change-list .neutral { color: #d7be83; }

.free-action-panel {
  position: relative;
  display: grid;
  grid-template-columns: minmax(250px, 0.78fr) minmax(380px, 1.22fr);
  align-items: stretch;
  gap: 18px;
  overflow: hidden;
  padding: 14px 16px;
  border-color: rgba(205, 176, 115, 0.34);
  background:
    linear-gradient(108deg, rgba(113, 65, 36, 0.17), transparent 34%),
    radial-gradient(circle at 84% 20%, rgba(71, 112, 94, 0.09), transparent 38%),
    rgba(12, 17, 15, 0.94);
  box-shadow: inset 3px 0 rgba(146, 61, 45, 0.72), inset 0 1px rgba(242, 219, 170, 0.025);
}

.free-action-panel::after {
  content: '';
  position: absolute;
  top: 0;
  right: 0;
  width: 190px;
  height: 1px;
  background: linear-gradient(90deg, transparent, rgba(209, 177, 111, 0.38));
  pointer-events: none;
}

.free-action-intro {
  min-width: 0;
  display: grid;
  align-content: center;
  gap: 5px;
}

.free-action-heading {
  display: flex;
  align-items: center;
  gap: 10px;
}

.free-action-heading > i {
  width: 38px;
  height: 38px;
  flex: 0 0 38px;
  display: grid;
  place-items: center;
  color: #e5c98c;
  border: 1px solid rgba(198, 105, 76, 0.56);
  border-radius: 50%;
  background: rgba(112, 43, 34, 0.36);
  font-family: var(--font-brush);
  font-size: 21px;
  font-style: normal;
}

.free-action-heading > div {
  min-width: 0;
}

.free-action-heading span {
  display: block;
  color: var(--gold-400);
  font-size: var(--ming-font-small, 14px);
  font-weight: 700;
  letter-spacing: 0.16em;
}

.free-action-panel h3 {
  margin: 1px 0 0;
  color: var(--paper-100);
  font-family: var(--font-brush);
  font-size: 23px;
  font-weight: 400;
  line-height: 1.05;
}

.free-action-panel p {
  margin: 0;
  color: #9e927e;
  font-size: var(--ming-font-body, 16px);
  line-height: 1.45;
}

.free-action-flow {
  display: flex;
  align-items: center;
  gap: 6px;
  margin-top: 2px;
  color: #a69a85;
  font-size: var(--ming-font-small, 14px);
  white-space: nowrap;
}

.free-action-flow span {
  display: inline-flex;
  align-items: center;
  gap: 4px;
}

.free-action-flow b {
  color: #c6a968;
  font-size: var(--ming-font-small, 14px);
  font-weight: 700;
}

.free-action-flow > i {
  color: rgba(200, 169, 105, 0.42);
  font-family: serif;
  font-style: normal;
}

.free-action-lower {
  min-width: 0;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
}

.advance-turn-button {
  min-width: 176px;
  min-height: 35px;
  display: grid;
  grid-template-columns: 30px minmax(0, 1fr);
  align-items: center;
  gap: 7px;
  padding: 3px 9px 3px 4px;
  color: #e8dcc3;
  border: 1px solid rgba(179, 154, 105, 0.4);
  border-radius: 3px;
  background: linear-gradient(90deg, rgba(105, 85, 50, 0.23), rgba(31, 57, 47, 0.42));
  text-align: left;
  cursor: pointer;
}
.advance-turn-button:hover:not(:disabled) { border-color: rgba(221, 190, 123, 0.7); transform: translateY(-1px); }
.advance-turn-button:disabled { opacity: 0.38; cursor: default; }
.advance-turn-button img { width: 29px; height: 29px; object-fit: contain; }
.advance-turn-button span { min-width: 0; display: grid; }
.advance-turn-button b { font-size: var(--ming-font-small, 14px); letter-spacing: 0.08em; }
.advance-turn-button small { overflow: hidden; color: #96aa9e; font-size: var(--ming-font-small, 14px); text-overflow: ellipsis; white-space: nowrap; }

.free-action-composer {
  min-width: 0;
  display: grid;
  grid-template-rows: auto minmax(0, 1fr) auto;
  align-self: stretch;
  gap: 5px;
}

.free-action-label {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 10px;
  color: #cbb68a;
  font-size: var(--ming-font-small, 14px);
}

.free-action-label b {
  font-size: var(--ming-font-small, 14px);
  letter-spacing: 0.1em;
}

.free-action-label span {
  overflow: hidden;
  color: #807767;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.free-action-composer textarea {
  width: 100%;
  min-height: 88px;
  resize: vertical;
  padding: 9px 12px;
  color: var(--paper-100);
  border: 1px solid rgba(217, 189, 127, 0.3);
  border-radius: 3px;
  background:
    linear-gradient(90deg, rgba(89, 58, 30, 0.08), transparent 32%),
    rgba(3, 6, 5, 0.7);
  box-shadow: inset 0 1px 12px rgba(0, 0, 0, 0.24);
  font-size: var(--ming-font-body, 16px);
  line-height: 1.55;
  transition: border-color 150ms ease, background 150ms ease, box-shadow 150ms ease;
}

.free-action-composer textarea:focus-visible {
  border-color: rgba(191, 158, 92, 0.7);
  background: rgba(6, 10, 8, 0.86);
  box-shadow: inset 0 1px 12px rgba(0, 0, 0, 0.3), 0 0 0 2px rgba(191, 158, 92, 0.08);
  outline: none;
}

.free-action-toolbar {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
}

.free-action-toolbar > small {
  min-width: 0;
  display: flex;
  flex-wrap: wrap;
  gap: 2px 10px;
  color: var(--paper-500);
  font-size: var(--ming-font-small, 14px);
  line-height: 1.2;
}

.free-action-toolbar > small span {
  color: #ad9e83;
}

.free-action-toolbar > small em {
  color: #766f62;
  font-style: normal;
}

.free-action-composer button {
  min-width: 154px;
  min-height: 42px;
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  grid-template-rows: auto auto;
  align-items: center;
  gap: 0 10px;
  padding: 5px 11px 5px 14px;
  color: #eee0c4;
  border: 1px solid rgba(180, 151, 91, 0.58);
  border-radius: 3px;
  background:
    linear-gradient(100deg, rgba(120, 62, 42, 0.48), rgba(49, 82, 67, 0.56)),
    rgba(14, 23, 19, 0.9);
  box-shadow: inset 2px 0 rgba(166, 65, 48, 0.66);
  text-align: left;
  cursor: pointer;
  transition: transform 150ms ease, border-color 150ms ease, background 150ms ease;
}

.free-action-composer button:hover:not(:disabled),
.free-action-composer button:focus-visible {
  border-color: rgba(226, 194, 125, 0.78);
  background:
    linear-gradient(100deg, rgba(145, 72, 48, 0.58), rgba(57, 99, 79, 0.64)),
    rgba(14, 23, 19, 0.94);
  transform: translateY(-1px);
}

.free-action-composer button > span {
  font-size: 14px;
  font-weight: 750;
  letter-spacing: 0.08em;
}

.free-action-composer button > small {
  grid-column: 1;
  color: #9fb9a9;
  font-size: var(--ming-font-small, 14px);
  line-height: 1.1;
}

.free-action-composer button > i {
  grid-column: 2;
  grid-row: 1 / 3;
  color: #d3b673;
  font-family: serif;
  font-size: 24px;
  font-style: normal;
}

.character-state-card {
  padding: 17px;
}

.character-state-heading {
  display: flex;
  align-items: center;
  justify-content: space-between;
}

.character-state-heading h2 {
  margin: -2px 0 0;
  color: var(--paper-100);
  font-family: var(--font-brush);
  font-size: 31px;
  font-weight: 400;
  letter-spacing: 0.1em;
}

.character-state-heading small {
  display: block;
  color: var(--paper-500);
  font-size: var(--ming-font-small, 14px);
}

.need-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 7px;
  margin-top: 14px;
}

.need-cell {
  display: grid;
  grid-template-columns: 1fr auto;
  align-items: center;
  gap: 4px 8px;
  padding: 8px 9px;
  border: 1px solid rgba(255, 255, 255, 0.06);
  background: rgba(0, 0, 0, 0.18);
}

.need-cell span {
  color: var(--paper-500);
  font-size: var(--ming-font-small, 14px);
}

.need-cell strong {
  color: var(--paper-200);
  font-size: var(--ming-font-small, 14px);
}

.need-cell i {
  grid-column: 1 / -1;
  height: 3px;
  overflow: hidden;
  background: rgba(255, 255, 255, 0.07);
}

.need-cell i b {
  display: block;
  height: 100%;
  background: var(--jade-500);
}

.need-cell.satiety i b { background: var(--gold-600); }
.need-cell.hydration i b { background: #6f9f91; }
.need-cell:is(.satiety, .hydration).warning strong { color: #e2ad68; }
.need-cell:is(.satiety, .hydration).warning i b { background: #b77b45; }
.need-cell:is(.satiety, .hydration).danger strong { color: #dc7c6e; }
.need-cell:is(.satiety, .hydration).danger i b { background: var(--red-400); }
.need-cell.risk i b { background: var(--red-400); }

.money-ledger {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 1px;
  margin-top: 9px;
  background: var(--line);
}

.money-ledger-cash { grid-column: 1 / -1; }

.money-ledger div {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 9px 10px;
  background: #111514;
}

.money-ledger span { color: var(--paper-500); font-size: var(--ming-font-small, 14px); }
.money-ledger strong { color: var(--gold-300); font-size: var(--ming-font-small, 14px); }
.money-ledger div:last-child strong { color: #d18a7d; }

.system-dock {
  overflow: hidden;
}

.system-tabs {
  display: grid;
  grid-template-columns: repeat(7, minmax(0, 1fr));
  border-bottom: 1px solid var(--line);
  background: rgba(8, 11, 10, 0.48);
}

.system-tabs button {
  min-width: 0;
  min-height: 49px;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 1px;
  padding: 4px 1px;
  color: var(--paper-500);
  border: 0;
  border-right: 1px solid var(--line);
  background: transparent;
  cursor: pointer;
}

.system-tabs button:last-child { border-right: 0; }
.system-tabs button.active { color: var(--gold-300); background: rgba(113, 82, 39, 0.2); }
.system-tabs span { font-family: var(--font-brush); font-size: 17px; }
.system-tabs small { font-size: 7px; }

.system-detail {
  min-height: 255px;
  max-height: 350px;
  overflow-y: auto;
  padding: 13px;
}

.system-detail-heading {
  display: flex;
  justify-content: space-between;
  margin-bottom: 8px;
}

.system-detail-heading small { color: var(--paper-500); font-size: var(--ming-font-small, 14px); }

.inventory-list {
  display: grid;
  gap: 6px;
}

.inventory-list article {
  display: grid;
  grid-template-columns: 1fr auto;
  gap: 0 10px;
  padding: 8px 9px;
  border: 1px solid rgba(255, 255, 255, 0.055);
  background: var(--folio-card, rgba(0, 0, 0, 0.16));
}

.inventory-list article strong { color: var(--paper-200); font-size: var(--ming-font-small, 14px); }
.inventory-list article small { display: block; color: var(--paper-500); font-size: 7px; }
.inventory-list article > b { color: var(--gold-300); font-size: var(--ming-font-small, 14px); }
.inventory-list article p { grid-column: 1 / -1; margin: 5px 0 0; color: var(--folio-muted, #7f786b); font-size: var(--ming-font-body, 16px); line-height: 1.55; }

.system-empty {
  min-height: 225px;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  text-align: center;
}

.system-empty > span {
  width: 45px;
  height: 45px;
  display: grid;
  place-items: center;
  color: var(--paper-500);
  border: 1px solid rgba(217, 189, 127, 0.2);
  border-radius: 50%;
  font-family: var(--font-brush);
  font-size: 23px;
}

.system-empty h3 { margin: 7px 0 0; color: var(--paper-200); font-family: var(--font-brush); font-size: 23px; font-weight: 400; }
.system-empty b { color: var(--gold-400); font-size: var(--ming-font-small, 14px); }
.system-empty p { max-width: 280px; margin: 7px 0 0; color: var(--paper-500); font-size: var(--ming-font-body, 16px); }
.system-empty small { margin-top: 8px; color: #68645c; font-size: 7px; }

.journal-card {
  padding: 13px 15px;
}

.journal-card > div {
  display: flex;
  align-items: center;
  justify-content: space-between;
}

.journal-card > div small { color: var(--jade-300); font-size: 7px; }
.journal-card > p { margin: 8px 0 0; color: var(--paper-500); font-size: var(--ming-font-body, 16px); }
.journal-card ol { list-style: none; margin: 8px 0 0; padding: 0; }
.journal-card li { display: grid; grid-template-columns: 46px 1fr auto; gap: 6px; padding: 5px 0; border-top: 1px dashed rgba(255, 255, 255, 0.06); font-size: var(--ming-font-small, 14px); }
.journal-card li b { color: var(--gold-400); }
.journal-card li span { overflow: hidden; color: var(--paper-300); text-overflow: ellipsis; white-space: nowrap; }
.journal-card li small { color: var(--jade-300); }

@keyframes inference-sweep {
  from { transform: translateX(-55%); }
  to { transform: translateX(55%); }
}

@media (max-width: 1180px) {
  .header-wallets .token-wallet { display: none; }
  .campaign-layout { grid-template-columns: minmax(500px, 1fr) 360px; }
  .choice-list { grid-template-columns: 1fr; }
  .choice-list button { min-height: 65px; }
}

@media (max-width: 920px) {
  .campaign-header { grid-template-columns: 104px 1fr auto; padding: 8px 12px; }
  .campaign-wallets button:not(.campaign-fate-wallet) { min-width: 95px; }
  .campaign-wallets .campaign-fate-wallet { display: none; }
  .campaign-layout { grid-template-columns: 1fr; }
  .campaign-sidebar { display: grid; grid-template-columns: 0.8fr 1.2fr; align-items: start; }
  .journal-card { grid-column: 1 / -1; }
}

@media (max-width: 760px) {
  .header-wallets { gap: 5px; }
  .fate-wallet { min-width: 78px; height: 44px; grid-template-columns: 34px 1fr; padding: 3px 6px 3px 2px; }
  .fate-wallet img { width: 34px; height: 34px; }
  .fate-wallet > span { grid-template-columns: 1fr; justify-items: center; }
  .fate-wallet small { font-size: 7px; }
  .fate-wallet strong { font-size: var(--ming-font-small, 14px); }
  .resume-chip { min-height: 44px; padding: 5px 8px; font-size: var(--ming-font-small, 14px); }
  .method-tab.locked::before { display: none; }

  .campaign-header {
    position: relative;
    grid-template-columns: 74px 1fr auto;
    gap: 8px;
    min-height: 66px;
    padding: 7px 9px;
  }
  .back-to-origins { height: 40px; padding: 4px 7px; }
  .back-to-origins span { display: none; }
  .back-to-origins strong { font-size: var(--ming-font-small, 14px); }
  .campaign-title { gap: 7px; }
  .campaign-title .seal { display: none; }
  .campaign-title small { font-size: 6px; letter-spacing: 0.08em; }
  .campaign-title h1 { font-size: 20px; }
  .campaign-wallets button:not(:last-child) { display: none; }
  .campaign-wallets button { min-width: 72px !important; min-height: 42px; padding: 4px 6px; }
  .campaign-wallets button small, .campaign-wallets button em, .campaign-token-wallet img { display: none; }
  .campaign-wallets button strong { grid-column: 1 / -1; grid-row: 1 / -1; justify-self: center; font-size: 15px; }

  .campaign-layout { width: 100%; gap: 10px; padding: 9px; }
  .world-strip { grid-template-columns: 1fr 1fr; }
  .world-strip > div:not(.world-tags),
  .world-strip > .weather-location-cell { min-height: 56px; border-bottom: 1px solid var(--line); }
  .world-strip > .weather-location-cell { border-right: 0; }
  .world-time-cell { min-height: 68px !important; }
  .world-time-reading { flex-wrap: wrap; gap: 3px 6px; white-space: normal; }
  .world-time-modern { padding: 2px 6px; }
  .weather-observation-tooltip { top: 205px; left: 16px; }
  .weather-observation-tooltip dl { grid-template-columns: 1fr; }
  .world-tags { grid-column: 1 / -1; }
  .ai-event-card { min-height: 0; padding: 26px 18px 22px; background-position: 65% center; }
  .event-heading h2 { font-size: 35px; }
  .event-narrative { font-size: var(--ming-font-body, 16px); line-height: 1.85; }
  .event-state-read b:nth-last-child(-n + 2) { display: none; }
  .choice-list { grid-template-columns: 1fr; margin-top: 16px; }
  .choice-list button { min-height: 67px; }
  .free-action-panel { grid-template-columns: 1fr; gap: 10px; padding: 15px; }
  .free-action-lower { align-items: stretch; flex-direction: column; }
  .advance-turn-button { width: 100%; }
  .free-action-composer > div { align-items: stretch; flex-direction: column; }
  .free-action-composer button { width: 100%; }
  .campaign-sidebar { display: flex; }
  .system-tabs { overflow-x: auto; grid-template-columns: repeat(7, 54px); }
  .system-detail { max-height: none; }
}

@media (max-width: 420px) {
  .header-wallets .resume-chip { display: none; }
  .fate-wallet { min-width: 64px; }
  .fate-wallet small { display: none; }
  .campaign-title h1 { font-size: 18px; }
  .event-heading { gap: 8px; }
  .event-heading h2 { font-size: 31px; }
  .ai-status { font-size: 6px; }
  .world-strip strong { font-size: var(--ming-font-small, 14px); }
  .need-grid { grid-template-columns: 1fr 1fr; }
}

/* V0.3 · 统一货币卡与独立卷宗 */

.currency-card {
  box-sizing: border-box;
  width: 174px;
  height: 54px;
  min-width: 174px;
  min-height: 54px;
  display: grid;
  grid-template-columns: 42px minmax(0, 1fr) auto;
  grid-template-rows: 1fr;
  align-items: center;
  gap: 8px;
  padding: 5px 11px 5px 5px;
  color: var(--paper-200);
  border: 1px solid rgba(143, 178, 163, 0.48);
  border-radius: 6px;
  background:
    linear-gradient(135deg, rgba(117, 156, 140, 0.14), transparent 48%),
    linear-gradient(180deg, rgba(31, 50, 43, 0.46), rgba(12, 20, 17, 0.96));
  box-shadow:
    inset 0 1px 0 rgba(225, 238, 231, 0.04),
    inset 0 0 20px rgba(43, 91, 73, 0.08),
    0 6px 18px rgba(0, 0, 0, 0.2);
  text-align: left;
  cursor: pointer;
  transition: border-color 150ms ease, background 150ms ease;
}

.currency-card:hover {
  border-color: rgba(204, 188, 145, 0.55);
  background: linear-gradient(180deg, rgba(48, 69, 60, 0.42), rgba(16, 24, 21, 0.94));
}

.currency-card.fate {
  border-color: rgba(202, 167, 97, 0.48);
  background:
    linear-gradient(135deg, rgba(162, 100, 54, 0.13), transparent 48%),
    linear-gradient(180deg, rgba(76, 45, 27, 0.44), rgba(25, 18, 14, 0.96));
  box-shadow:
    inset 0 1px 0 rgba(247, 224, 177, 0.045),
    inset 0 0 20px rgba(136, 74, 36, 0.08),
    0 6px 18px rgba(0, 0, 0, 0.2);
}

.currency-icon {
  width: 42px;
  height: 42px;
  display: grid;
  place-items: center;
  overflow: hidden;
}

.currency-icon img {
  width: 42px;
  height: 42px;
  display: block;
  object-fit: contain;
  filter: drop-shadow(0 4px 7px rgba(0, 0, 0, 0.52));
}

.currency-card.fate .currency-icon img {
  transform: scale(1.04);
}

.currency-copy {
  min-width: 0;
  display: flex;
  flex-direction: column;
  justify-content: center;
  gap: 3px;
  line-height: 1.05;
}

.currency-copy small {
  overflow: hidden;
  color: #d4c7ad;
  font-family: var(--font-brush);
  font-size: 14px;
  font-weight: 400;
  line-height: 1;
  letter-spacing: 0.06em;
  text-shadow: 0 1px 7px rgba(0, 0, 0, 0.86);
  text-overflow: ellipsis;
  white-space: nowrap;
}

.currency-copy em {
  overflow: hidden;
  color: #95866d;
  font-size: var(--ming-font-small, 14px);
  font-weight: 520;
  font-style: normal;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.currency-card > strong {
  grid-column: 3;
  color: var(--jade-300);
  font-size: 25px;
  font-weight: 720;
  line-height: 1;
  letter-spacing: -0.02em;
  text-shadow: 0 2px 12px rgba(94, 154, 130, 0.18);
}

.currency-card.fate > strong {
  color: var(--gold-300);
  text-shadow: 0 2px 12px rgba(217, 189, 127, 0.2);
}

.campaign-actions {
  min-width: 0;
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: 8px;
}

.campaign-wallets .currency-card {
  display: grid;
  width: 174px;
  min-width: 174px;
  height: 54px;
  min-height: 54px;
  grid-template-columns: 42px minmax(0, 1fr) auto;
  grid-template-rows: 1fr;
  padding: 5px 11px 5px 5px;
}

.campaign-wallets .currency-card > strong {
  grid-column: 3;
  grid-row: 1;
  color: var(--jade-300);
  font-size: 25px;
  font-weight: 720;
}

.campaign-wallets .currency-card.fate > strong {
  color: var(--gold-300);
}

.archive-button {
  width: 54px;
  height: 54px;
  flex: 0 0 auto;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 1px;
  color: var(--paper-300);
  border: 1px solid var(--line);
  border-radius: 5px;
  background: rgba(255, 255, 255, 0.018);
  cursor: pointer;
}

.archive-button span {
  color: var(--gold-300);
  font-family: var(--font-brush);
  font-size: 19px;
}

.archive-button small {
  font-size: 7px;
  letter-spacing: 0.12em;
}

.ai-status.warning {
  color: #e3a192;
  border-color: rgba(196, 91, 73, 0.4);
  background: rgba(91, 31, 25, 0.42);
}

.ai-event-card.ai-error {
  background:
    linear-gradient(90deg, rgba(12, 9, 8, 0.98), rgba(17, 11, 10, 0.86) 52%, rgba(24, 13, 11, 0.5)),
    linear-gradient(180deg, transparent 55%, rgba(5, 7, 7, 0.9)),
    var(--event-image, url('/assets/art/events/event-common-road-v2.png')) var(--event-focal, right center) / cover;
}

.retry-list {
  grid-template-columns: minmax(240px, 360px);
}

.free-action-composer textarea:disabled,
.free-action-composer button:disabled {
  cursor: not-allowed;
  opacity: 0.48;
}

.archive-backdrop {
  position: fixed;
  inset: 0;
  z-index: 90;
  display: flex;
  justify-content: flex-end;
  background: rgba(0, 0, 0, 0.68);
  backdrop-filter: blur(5px);
}

.archive-drawer {
  width: min(460px, 92vw);
  height: 100%;
  display: flex;
  flex-direction: column;
  overflow-y: auto;
  padding: 24px;
  color: var(--paper-200);
  border-left: 1px solid var(--line-strong);
  background:
    linear-gradient(180deg, rgba(95, 62, 35, 0.08), transparent 28%),
    repeating-linear-gradient(91deg, rgba(255, 255, 255, 0.01) 0 1px, transparent 1px 6px),
    #0e1210;
  box-shadow: -26px 0 60px rgba(0, 0, 0, 0.45);
}

.archive-drawer header {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 16px;
  padding-bottom: 17px;
  border-bottom: 1px solid var(--line);
}

.archive-drawer header span,
.archive-drawer section > span {
  color: var(--gold-400);
  font-size: var(--ming-font-small, 14px);
  letter-spacing: 0.2em;
}

.archive-drawer h2 {
  margin: 2px 0 0;
  color: var(--paper-100);
  font-family: var(--font-brush);
  font-size: 34px;
  font-weight: 400;
  letter-spacing: 0.08em;
}

.archive-drawer header button {
  padding: 7px 11px;
  color: var(--paper-400);
  border: 1px solid var(--line);
  border-radius: 3px;
  background: transparent;
  cursor: pointer;
}

.archive-meta {
  display: grid;
  grid-template-columns: 1.25fr 0.8fr 0.8fr;
  gap: 1px;
  margin: 18px 0 24px;
  background: var(--line);
}

.archive-meta div {
  min-width: 0;
  padding: 10px;
  background: #111614;
}

.archive-meta span,
.archive-meta strong {
  display: block;
}

.archive-meta span {
  color: var(--paper-500);
  font-size: 7px;
}

.archive-meta strong {
  overflow: hidden;
  margin-top: 3px;
  color: var(--paper-200);
  font-size: var(--ming-font-small, 14px);
  text-overflow: ellipsis;
  white-space: nowrap;
}
.archive-meta div:first-child strong {
  overflow: visible;
  line-height: 1.55;
  overflow-wrap: anywhere;
  text-overflow: clip;
  white-space: normal;
}

.archive-drawer ol {
  list-style: none;
  margin: 10px 0 0;
  padding: 0;
}

.archive-drawer li {
  display: grid;
  grid-template-columns: 48px minmax(0, 1fr) auto auto;
  gap: 10px;
  padding: 12px 0;
  border-top: 1px dashed rgba(255, 255, 255, 0.08);
}

.archive-drawer li small,
.archive-drawer li em {
  color: var(--gold-400);
  font-size: var(--ming-font-small, 14px);
  font-style: normal;
}

.archive-drawer li strong {
  color: var(--paper-200);
  font-size: var(--ming-font-small, 14px);
}

.archive-drawer li p {
  margin: 4px 0 0;
  color: var(--paper-500);
  font-size: var(--ming-font-body, 16px);
  line-height: 1.6;
}

.archive-empty {
  color: var(--paper-500);
  font-size: var(--ming-font-small, 14px);
}

.archive-drawer footer {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  margin-top: auto;
  padding-top: 18px;
  color: var(--paper-500);
  border-top: 1px solid var(--line);
  font-size: 7px;
}

.archive-drawer footer strong {
  color: var(--jade-300);
  font-weight: 500;
}

@media (max-width: 1400px) {
  .currency-card {
    width: 176px;
    min-width: 176px;
  }

  .campaign-wallets .currency-card {
    width: 176px;
    min-width: 176px;
  }

  .currency-copy em {
    display: none;
  }
}

@media (max-width: 1180px) {
  .header-wallets .currency-card {
    width: 146px;
    min-width: 146px;
  }

  .campaign-wallets .currency-card.fate {
    display: none;
  }
}

@media (max-width: 920px) {
  .campaign-actions {
    gap: 5px;
  }

  .campaign-wallets .currency-card {
    width: 132px;
    min-width: 132px;
  }

  .currency-copy small {
    font-size: var(--ming-font-small, 14px);
  }
}

@media (max-width: 760px) {
  .header-wallets .currency-card {
    width: 76px;
    min-width: 76px;
    height: 44px;
    min-height: 44px;
    grid-template-columns: 32px 1fr;
    gap: 2px;
    padding: 4px 6px 4px 2px;
  }

  .header-wallets .currency-icon,
  .header-wallets .currency-icon img {
    width: 32px;
    height: 32px;
  }

  .header-wallets .currency-copy {
    display: none;
  }

  .header-wallets .currency-card > strong {
    grid-column: 2;
    justify-self: center;
    font-size: 14px;
  }

  .archive-button {
    width: 42px;
    height: 42px;
  }

  .archive-button small {
    display: none;
  }

  .campaign-wallets .currency-card {
    width: 72px;
    min-width: 72px;
    height: 42px;
    min-height: 42px;
    grid-template-columns: 31px 1fr;
    gap: 1px;
    padding: 4px 5px 4px 2px;
  }

  .campaign-wallets .currency-icon,
  .campaign-wallets .currency-icon img {
    width: 31px;
    height: 31px;
  }

  .campaign-wallets .currency-copy {
    display: none;
  }

  .campaign-wallets .currency-card > strong {
    grid-column: 2;
    grid-row: 1;
    justify-self: center;
    font-size: 14px;
  }
}

@media (max-width: 520px) {
  .header-wallets .currency-card {
    width: 62px;
    min-width: 62px;
  }

  .header-wallets .currency-card.token {
    display: none;
  }

  .archive-meta {
    grid-template-columns: 1fr 1fr;
  }

  .archive-meta div:first-child {
    grid-column: 1 / -1;
  }
}

/* V0.4 · 命途存档卷册 */

.save-button {
  position: relative;
  width: 64px;
  height: 54px;
  flex: 0 0 64px;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 0;
  padding: 0;
  color: var(--paper-300);
  border: 1px solid rgba(143, 178, 163, 0.52);
  border-radius: 6px;
  background:
    linear-gradient(145deg, rgba(117, 156, 140, 0.13), transparent 52%),
    rgba(14, 21, 19, 0.94);
  box-shadow:
    inset 0 1px 0 rgba(225, 238, 231, 0.05),
    inset 0 0 18px rgba(54, 103, 85, 0.1),
    0 6px 18px rgba(0, 0, 0, 0.2);
  cursor: pointer;
  transition: border-color 160ms ease, background 160ms ease, transform 160ms ease;
}

.save-button:hover {
  border-color: rgba(143, 178, 163, 0.7);
  background: linear-gradient(145deg, rgba(117, 156, 140, 0.22), rgba(14, 21, 19, 0.96));
  transform: translateY(-1px);
}

.save-button img {
  width: 50px;
  height: 50px;
  object-fit: contain;
  transform: translateY(-1px);
  filter: drop-shadow(0 4px 7px rgba(0, 0, 0, 0.56));
}

.save-button small {
  position: absolute;
  right: 3px;
  bottom: 2px;
  left: 3px;
  margin: 0;
  padding: 4px 0 1px;
  color: #eadcc0;
  font-family: var(--font-brush);
  font-size: var(--ming-font-small, 14px);
  font-weight: 400;
  line-height: 1;
  letter-spacing: 0.12em;
  background: linear-gradient(180deg, transparent, rgba(5, 9, 8, 0.88) 58%);
  text-shadow: 0 1px 5px rgba(0, 0, 0, 0.9);
}

.save-button i {
  position: absolute;
  top: 5px;
  right: 5px;
  width: 6px;
  height: 6px;
  border: 1px solid #10211b;
  border-radius: 50%;
  background: var(--gold-300);
  box-shadow: 0 0 8px rgba(217, 189, 127, 0.58);
}

.save-backdrop {
  position: fixed;
  inset: 0;
  z-index: 100;
  display: grid;
  place-items: center;
  padding: 26px;
  background:
    radial-gradient(circle at 50% 18%, rgba(136, 101, 55, 0.12), transparent 34%),
    rgba(2, 5, 5, 0.8);
  backdrop-filter: blur(8px);
  animation: veil-in 180ms ease both;
}

.save-panel {
  position: relative;
  isolation: isolate;
  width: min(940px, 95vw);
  max-height: min(92vh, 940px);
  overflow-y: auto;
  padding: 30px 34px 22px 43px;
  color: var(--paper-200);
  border: 1px solid rgba(214, 181, 116, 0.36);
  border-radius: 7px;
  background:
    linear-gradient(110deg, rgba(112, 61, 39, 0.1), transparent 23%),
    radial-gradient(circle at 82% 5%, rgba(148, 116, 64, 0.12), transparent 31%),
    repeating-linear-gradient(92deg, rgba(255, 255, 255, 0.012) 0 1px, transparent 1px 7px),
    #0e1311;
  box-shadow: 0 34px 100px rgba(0, 0, 0, 0.7), inset 0 0 60px rgba(0, 0, 0, 0.18);
  animation: modal-rise 210ms ease both;
}

.save-panel::before {
  content: '';
  position: absolute;
  z-index: -1;
  inset: 7px auto 7px 8px;
  width: 8px;
  border: 1px solid rgba(172, 81, 63, 0.5);
  border-radius: 8px 2px 2px 8px;
  background: linear-gradient(180deg, #7c3028, #3d1c19 44%, #713128);
  box-shadow: 3px 0 14px rgba(0, 0, 0, 0.5);
}

.save-panel > header {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 20px;
  padding: 0 0 21px;
  border-bottom: 1px solid var(--line);
}

.save-heading-art {
  min-width: 0;
  display: flex;
  align-items: center;
  gap: 18px;
}

.save-heading-art > img {
  width: 100px;
  height: 100px;
  flex: 0 0 100px;
  object-fit: contain;
  filter: drop-shadow(0 8px 14px rgba(0, 0, 0, 0.56));
}

.save-panel > header span,
.save-divider span {
  display: block;
  color: var(--gold-400);
  font-size: var(--ming-font-small, 14px);
  letter-spacing: 0.24em;
}

.save-panel > header h2 {
  margin: 1px 0 0;
  color: var(--paper-100);
  font-family: var(--font-brush);
  font-size: 48px;
  font-weight: 400;
  line-height: 1.12;
  letter-spacing: 0.09em;
}

.save-panel > header p {
  margin: 5px 0 0;
  color: var(--paper-500);
  font-size: var(--ming-font-body, 16px);
  font-weight: 520;
}

.save-panel > header button,
.save-slot-actions button {
  min-height: 42px;
  padding: 8px 15px;
  color: var(--paper-300);
  border: 1px solid var(--line);
  border-radius: 3px;
  background: rgba(5, 9, 8, 0.54);
  font-size: var(--ming-font-small, 14px);
  font-weight: 650;
  letter-spacing: 0.08em;
  cursor: pointer;
}

.save-panel > header button:hover,
.save-slot-actions button:hover:not(:disabled) {
  color: var(--paper-100);
  border-color: var(--line-strong);
}

.save-global-wallet {
  min-width: 0;
  min-height: 64px;
  display: grid;
  grid-template-columns: 48px minmax(0, 1fr) auto;
  align-items: center;
  gap: 14px;
  margin-top: 16px;
  padding: 8px 17px 8px 9px;
  border: 1px solid rgba(143, 178, 163, 0.28);
  border-radius: 5px;
  background:
    linear-gradient(90deg, rgba(50, 89, 75, 0.2), transparent 46%),
    rgba(7, 13, 11, 0.6);
}

.save-global-wallet img {
  width: 48px;
  height: 48px;
  object-fit: contain;
  filter: drop-shadow(0 5px 8px rgba(0, 0, 0, 0.5));
}

.save-global-wallet div {
  min-width: 0;
}

.save-global-wallet strong,
.save-global-wallet small {
  display: block;
}

.save-global-wallet strong {
  color: var(--paper-100);
  font-family: var(--font-brush);
  font-size: 18px;
  font-weight: 400;
  letter-spacing: 0.08em;
}

.save-global-wallet small {
  margin-top: 2px;
  color: var(--paper-500);
  font-size: var(--ming-font-small, 14px);
  font-weight: 520;
}

.save-global-wallet b {
  color: var(--jade-300);
  font-size: 26px;
  font-weight: 720;
  letter-spacing: -0.03em;
  text-shadow: 0 2px 12px rgba(94, 154, 130, 0.2);
}

.save-autosave,
.save-slot {
  min-width: 0;
  display: grid;
  grid-template-columns: 82px minmax(0, 1fr) auto;
  align-items: center;
  gap: 20px;
}

.save-autosave {
  min-height: 112px;
  margin-top: 10px;
  padding: 18px 20px;
  border: 1px solid rgba(143, 178, 163, 0.34);
  border-radius: 5px;
  background:
    linear-gradient(90deg, rgba(66, 105, 91, 0.18), transparent 34%),
    rgba(7, 13, 11, 0.72);
}

.save-slot-index {
  min-height: 68px;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  padding: 5px;
  border-right: 1px solid var(--line);
}

.save-slot-index span {
  color: var(--gold-300);
  font-family: var(--font-brush);
  font-size: 34px;
  line-height: 1;
}

.save-slot-index small {
  margin-top: 6px;
  color: var(--paper-500);
  font-size: var(--ming-font-small, 14px);
  font-weight: 560;
  letter-spacing: 0.08em;
  white-space: nowrap;
}

.save-slot-index.auto span {
  color: var(--jade-300);
}

.save-summary,
.save-empty-copy,
.save-warning {
  min-width: 0;
}

.save-summary > strong,
.save-empty-copy strong,
.save-warning strong {
  display: block;
  overflow: hidden;
  color: var(--paper-100);
  font-size: 15px;
  font-weight: 680;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.save-summary > span {
  display: block;
  overflow: hidden;
  margin-top: 4px;
  color: var(--gold-400);
  font-size: var(--ming-font-small, 14px);
  font-weight: 560;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.save-summary p,
.save-empty-copy p,
.save-warning p {
  overflow: hidden;
  margin: 5px 0 0;
  color: var(--paper-400, #a2947c);
  font-size: var(--ming-font-body, 16px);
  font-weight: 520;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.save-summary small {
  display: block;
  overflow: hidden;
  margin-top: 5px;
  color: var(--paper-500);
  font-size: var(--ming-font-small, 14px);
  font-weight: 520;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.save-divider {
  display: grid;
  grid-template-columns: auto 1fr auto;
  align-items: center;
  gap: 12px;
  margin: 23px 0 10px;
}

.save-divider i {
  height: 1px;
  background: linear-gradient(90deg, var(--line-strong), transparent);
}

.save-divider small {
  color: var(--paper-500);
  font-size: var(--ming-font-small, 14px);
}

.save-slot-list {
  display: grid;
  gap: 9px;
}

.save-slot {
  min-height: 102px;
  padding: 14px 18px 14px 10px;
  border: 1px solid rgba(205, 179, 123, 0.16);
  border-radius: 4px;
  background: rgba(7, 11, 10, 0.62);
  transition: border-color 160ms ease, background 160ms ease;
}

.save-slot.filled:hover {
  border-color: rgba(205, 179, 123, 0.34);
  background: rgba(12, 17, 15, 0.78);
}

.save-slot.empty {
  border-style: dashed;
  background: rgba(7, 10, 9, 0.42);
}

.save-slot.confirming {
  border-color: rgba(173, 86, 72, 0.5);
  background: linear-gradient(90deg, rgba(104, 39, 31, 0.18), rgba(10, 13, 12, 0.72));
}

.save-warning strong {
  color: #e5b09e;
}

.save-slot-actions {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: 5px;
  flex-wrap: wrap;
  white-space: nowrap;
}

.save-slot-actions > small {
  display: block;
  color: var(--paper-500);
  font-size: var(--ming-font-small, 14px);
  text-align: right;
}

.save-slot-actions button.primary {
  color: #c9ded4;
  border-color: rgba(106, 155, 135, 0.56);
  background: linear-gradient(180deg, rgba(64, 103, 88, 0.62), rgba(32, 55, 47, 0.66));
}

.save-slot-actions button.danger {
  color: #f0c5b8;
  border-color: rgba(186, 83, 68, 0.62);
  background: rgba(113, 42, 33, 0.62);
}

.save-slot-actions button.quiet-danger {
  color: #c78375;
}

.save-slot-actions button:disabled {
  opacity: 0.34;
}

.save-panel > footer {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  margin-top: 20px;
  padding-top: 16px;
  color: var(--jade-300);
  border-top: 1px solid var(--line);
  font-size: var(--ming-font-small, 14px);
}

.save-panel > footer small {
  color: var(--paper-500);
  font-size: var(--ming-font-small, 14px);
}

@media (max-width: 760px) {
  .save-button {
    width: 48px;
    height: 42px;
    flex-basis: 48px;
  }

  .save-button small {
    display: none;
  }

  .save-button img {
    width: 41px;
    height: 41px;
  }

  .campaign-actions .archive-button {
    display: none;
  }

  .save-backdrop {
    align-items: end;
    padding: 0;
  }

  .save-panel {
    width: 100%;
    max-height: 92vh;
    padding: 22px 16px 16px 25px;
    border-right: 0;
    border-bottom: 0;
    border-left: 0;
    border-radius: 12px 12px 0 0;
  }

  .save-panel > header h2 {
    font-size: 38px;
  }

  .save-panel > header p {
    max-width: 300px;
    font-size: var(--ming-font-body, 16px);
  }

  .save-heading-art {
    gap: 11px;
  }

  .save-heading-art > img {
    width: 68px;
    height: 68px;
    flex-basis: 68px;
  }

  .save-autosave,
  .save-slot {
    grid-template-columns: 56px minmax(0, 1fr);
    gap: 12px;
  }

  .save-autosave {
    min-height: 0;
    padding: 15px 12px 15px 5px;
  }

  .save-global-wallet {
    grid-template-columns: 42px minmax(0, 1fr) auto;
    gap: 9px;
    min-height: 58px;
    padding: 7px 10px 7px 5px;
  }

  .save-global-wallet img {
    width: 42px;
    height: 42px;
  }

  .save-global-wallet strong {
    font-size: 16px;
  }

  .save-global-wallet small {
    overflow: hidden;
    max-width: 210px;
    font-size: var(--ming-font-small, 14px);
    text-overflow: ellipsis;
    white-space: nowrap;
  }

  .save-global-wallet b {
    font-size: 21px;
  }

  .save-slot {
    min-height: 118px;
    padding: 12px 10px 12px 3px;
  }

  .save-slot-index {
    grid-row: 1 / span 2;
  }

  .save-slot-actions {
    grid-column: 2;
    justify-content: flex-start;
  }

  .save-slot-actions button {
    min-height: 40px;
    padding: 7px 14px;
    font-size: var(--ming-font-small, 14px);
  }

  .save-slot-actions > small {
    margin-left: auto;
  }
}

@media (max-width: 420px) {
  .topbar {
    grid-template-columns: minmax(0, 1fr) auto;
  }

  .header-wallets .currency-card.fate {
    display: none;
  }

  .save-panel > header p,
  .save-panel > footer small {
    display: none;
  }

  .save-panel > footer {
    justify-content: flex-end;
  }
}

/* 保持新增的人物簿页与特质弹层在后续版式中生效 */
.system-tabs { grid-template-columns: repeat(8, minmax(0, 1fr)); }
.system-dock:has(.trait-chip:hover),
.system-dock:has(.trait-chip:focus-visible),
.system-dock:has(.trait-chip.expanded) { overflow: visible; position: relative; z-index: 25; }

@media (max-width: 760px) {
  .system-tabs { grid-template-columns: repeat(8, 58px); }
}

.character-state-heading {
  position: relative;
  min-height: 142px;
  align-items: flex-start;
  overflow: hidden;
  padding: 9px 128px 10px 5px;
  border-bottom: 1px solid rgba(213, 180, 113, 0.17);
  background: linear-gradient(90deg, rgba(14, 21, 18, 0.12), rgba(63, 47, 27, 0.1));
}

.character-state-heading small {
  margin-top: 3px;
  color: #baaa8f;
  font-size: var(--ming-font-small, 14px);
  font-weight: 600;
  letter-spacing: 0.08em;
}

.character-state-heading em {
  display: block;
  max-width: 180px;
  margin-top: 10px;
  color: #817866;
  font-size: var(--ming-font-small, 14px);
  font-style: normal;
  line-height: 1.5;
}

.character-portrait {
  position: absolute;
  right: -3px;
  bottom: 0;
  width: 132px;
  height: 154px;
  display: flex;
  align-items: flex-end;
  justify-content: center;
  pointer-events: none;
}

.character-portrait::before {
  content: '';
  position: absolute;
  right: 7px;
  bottom: 7px;
  width: 105px;
  height: 105px;
  border: 1px solid rgba(202, 169, 103, 0.13);
  border-radius: 50%;
  background: radial-gradient(circle, rgba(126, 96, 54, 0.14), transparent 67%);
}

.character-portrait img {
  position: relative;
  z-index: 1;
  width: 128px;
  height: 154px;
  object-fit: contain;
  object-position: center bottom;
  filter: drop-shadow(-8px 10px 12px rgba(0, 0, 0, 0.56));
}

.character-state-card > .trait-list { margin-top: 12px; }

@media (max-width: 420px) {
  .character-state-heading { min-height: 132px; padding-right: 112px; }
  .character-portrait { width: 116px; height: 142px; }
  .character-portrait img { width: 112px; height: 142px; }
}

/* V0.5.1 · 人物卡统一背景与可读字级 */
.character-state-card {
  position: relative;
  isolation: isolate;
  overflow: visible;
  padding: 22px;
  border-color: rgba(201, 166, 96, 0.31);
  background:
    radial-gradient(circle at 88% 12%, rgba(127, 91, 43, 0.18), transparent 29%),
    radial-gradient(circle at 12% 48%, rgba(48, 91, 75, 0.1), transparent 43%),
    linear-gradient(145deg, rgba(18, 24, 21, 0.98), rgba(8, 12, 11, 0.99));
  box-shadow: inset 0 0 50px rgba(0, 0, 0, 0.22), 0 16px 36px rgba(0, 0, 0, 0.2);
}

.character-state-card::before {
  content: '';
  position: absolute;
  z-index: -1;
  inset: 0;
  pointer-events: none;
  opacity: 0.28;
  background-image: repeating-linear-gradient(90deg, transparent 0 7px, rgba(222, 199, 150, 0.018) 7px 8px);
}

.character-state-heading {
  min-height: 170px;
  overflow: visible;
  padding: 14px 166px 16px 8px;
  border: 0;
  background: transparent;
}

.character-state-heading > div:first-child { position: relative; z-index: 3; }
.character-state-heading span { font-size: var(--ming-font-small, 14px); font-weight: 700; letter-spacing: 0.18em; }
.character-state-heading h2 { margin-top: 7px; font-size: 45px; line-height: 1.15; }
.character-state-heading small { margin-top: 8px; font-size: 16px; line-height: 1.4; }
.character-state-heading em { max-width: 240px; margin-top: 15px; color: #aaa087; font-size: var(--ming-font-small, 14px); font-weight: 550; }

.character-portrait {
  right: -8px;
  width: 180px;
  height: 198px;
}

.character-portrait::before {
  right: 12px;
  bottom: 13px;
  width: 138px;
  height: 138px;
  border-color: rgba(202, 169, 103, 0.18);
  background: radial-gradient(circle, rgba(139, 102, 55, 0.16), transparent 68%);
}

.character-portrait img { width: 170px; height: 198px; }

.character-state-card > .trait-list.compact {
  position: relative;
  z-index: 10;
  gap: 9px;
  margin: 4px 0 19px;
  padding-top: 17px;
  border-top: 1px solid rgba(213, 180, 113, 0.2);
}

.character-state-card > .trait-list.compact .trait-chip {
  min-width: 104px;
  height: 48px;
  padding: 5px 11px 5px 5px;
}

.character-state-card > .trait-list.compact .trait-chip > img { width: 38px; height: 38px; flex-basis: 38px; }
.character-state-card > .trait-list.compact .trait-name { font-size: 15px; font-weight: 750; }

.character-state-card .need-grid { gap: 11px; margin-top: 0; }
.character-state-card .need-cell {
  min-height: 70px;
  padding: 13px 15px;
  border-color: rgba(213, 180, 113, 0.12);
  background: linear-gradient(145deg, rgba(4, 8, 7, 0.3), rgba(0, 0, 0, 0.16));
}

.character-state-card .need-cell span { color: #b9aa8f; font-size: 14px; font-weight: 600; }
.character-state-card .need-cell strong { font-size: 22px; }
.character-state-card .need-cell i { height: 6px; margin-top: 5px; }

.character-state-card .money-ledger { gap: 0; margin-top: 15px; border-top: 1px solid rgba(213, 180, 113, 0.18); background: transparent; }
.character-state-card .money-ledger div { min-width: 0; min-height: 67px; gap: 8px; padding: 13px 16px; background: rgba(3, 7, 6, 0.2); }
.character-state-card .money-ledger div + div { border-left: 1px solid rgba(213, 180, 113, 0.2); }
.character-state-card .money-ledger span { color: #b7a88d; font-size: 14px; font-weight: 600; }
.character-state-card .money-ledger strong { flex: 0 0 auto; font-size: 21px; white-space: nowrap; }
.character-state-card .money-ledger :is(.money-ledger-cash, .money-ledger-silver) > span { min-width: 0; display: grid; gap: 3px; }
.character-state-card .money-ledger :is(.money-ledger-cash, .money-ledger-silver) > span small { color: #918876; font-size: var(--ming-font-small, 14px); font-weight: 500; line-height: 1.35; }
.character-state-card .money-ledger-silver strong { color: #d8d1c2; }

.system-tabs button { min-height: 66px; gap: 3px; }
.system-tabs span { font-size: 23px; }
.system-tabs small { color: #9b907c; font-size: var(--ming-font-small, 14px); font-weight: 650; }
.system-tabs button.active small { color: #d0bd96; }
.actor-facts span,
.actor-facts b,
.actor-obligation { font-size: var(--ming-font-small, 14px); }

@media (max-width: 520px) {
  .character-state-card { padding: 15px; }
  .character-state-heading { min-height: 154px; padding: 10px 130px 12px 4px; }
  .character-state-heading h2 { font-size: 38px; }
  .character-state-heading small { font-size: 14px; }
  .character-state-heading em { font-size: var(--ming-font-small, 14px); }
  .character-portrait { right: -10px; width: 146px; height: 174px; }
  .character-portrait img { width: 140px; height: 174px; }
  .character-state-card > .trait-list.compact { display: grid; grid-template-columns: 1fr 1fr; }
  .character-state-card > .trait-list.compact .trait-chip { width: 100%; }
  .character-state-card .need-cell { min-height: 64px; padding: 11px; }
  .character-state-card .need-cell span,
  .character-state-card .money-ledger span { font-size: var(--ming-font-small, 14px); }
}

@media (min-width: 761px) {
  .origin-hero:has(.trait-chip:hover),
  .origin-hero:has(.trait-chip:focus-visible),
  .origin-hero:has(.trait-chip.expanded) {
    z-index: 40;
    overflow: visible;
  }

  .origin-hero .trait-tooltip {
    top: calc(100% + 12px);
    bottom: auto;
  }

  .origin-hero .trait-tooltip::after {
    top: -7px;
    bottom: auto;
    border: 0;
    border-top: 1px solid rgba(213, 180, 113, 0.64);
    border-left: 1px solid rgba(213, 180, 113, 0.64);
  }
}

/* V0.6 · 桌面单屏命途工作台：用信息重组换空间，不再缩小正文 */
.campaign-shell .world-strip span,
.campaign-shell .system-detail-heading span,
.campaign-shell .character-state-heading span,
.campaign-shell .inference-report.empty > span,
.campaign-shell .inference-heading span,
.campaign-shell .free-action-panel > div:first-child > span {
  font-size: var(--ming-font-small, 14px);
  font-weight: 700;
  letter-spacing: 0.12em;
}

.campaign-shell .world-strip strong { font-size: 15px; }
.campaign-shell .world-strip small,
.campaign-shell .world-tags > span { font-size: var(--ming-font-small, 14px); }
.campaign-shell .event-heading span { font-size: var(--ming-font-small, 14px); font-weight: 700; }
.campaign-shell .event-narrative { font-size: var(--ming-font-body, 16px); line-height: 1.85; }
.campaign-shell .ai-status,
.campaign-shell .event-state-read span,
.campaign-shell .event-state-read b { font-size: var(--ming-font-small, 14px); }
.campaign-shell .choice-copy strong { font-size: var(--ming-font-body, 16px); }
.campaign-shell .choice-copy small,
.campaign-shell .choice-cost { font-size: var(--ming-font-small, 14px); }
.campaign-shell .inference-report.empty p,
.campaign-shell .inference-heading small,
.campaign-shell .inference-report p,
.campaign-shell .change-list span { font-size: var(--ming-font-small, 14px); }
.campaign-shell .inference-report h3 { font-size: 15px; }
.campaign-shell .free-action-panel p,
.campaign-shell .free-action-composer small { font-size: var(--ming-font-small, 14px); line-height: 1.55; }
.campaign-shell .free-action-composer textarea { font-size: var(--ming-font-body, 16px); }
.campaign-shell .system-detail-heading small { font-size: var(--ming-font-small, 14px); }
.campaign-shell .inventory-list article strong { font-size: 15px; }
.campaign-shell .inventory-list article small,
.campaign-shell .inventory-list article p { font-size: var(--ming-font-small, 14px); line-height: 1.55; }
.campaign-shell .inventory-list article > b { font-size: 15px; }

.crafting-ledger,
.family-ledger {
  display: grid;
  gap: 10px;
  min-width: 0;
}

.crafting-ledger > header,
.family-ledger > header,
.action-plan-ledger > header,
.family-claim-ledger > header {
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  gap: 12px;
  padding-bottom: 8px;
  border-bottom: 1px solid rgba(183, 145, 75, 0.28);
}

.crafting-ledger > header span,
.family-ledger > header span,
.action-plan-ledger > header span,
.family-claim-ledger > header span { color: var(--folio-muted, #b9944f); font-size: var(--ming-font-small, 14px); letter-spacing: 0.08em; }
.crafting-ledger > header h3,
.family-ledger > header h3,
.action-plan-ledger > header h3 { margin: 2px 0 0; color: var(--folio-ink, #eee1c6); font-family: var(--font-brush); font-size: 23px; font-weight: 400; line-height: 1.1; }
.crafting-ledger > header b,
.family-ledger > header b,
.action-plan-ledger > header b { color: var(--folio-ink, #9fc3b2); font-size: var(--ming-font-small, 14px); }
.crafting-ledger > header > div { min-width: 0; }
.crafting-ledger > header small { display: block; max-width: 520px; margin-top: 3px; color: var(--folio-muted, #89a495); font-size: var(--ming-font-small, 14px); line-height: 1.45; }

.crafting-recipe-list { display: grid; gap: 7px; }
.crafting-recipe-card {
  display: grid;
  grid-template-columns: 66px minmax(0, 1fr);
  gap: 10px;
  min-height: 118px;
  padding: 8px;
  border: 1px solid rgba(172, 139, 76, 0.28);
  background: var(--folio-card, linear-gradient(115deg, rgba(30, 27, 20, 0.82), rgba(7, 12, 10, 0.94)));
}
.crafting-recipe-card.available { border-color: var(--folio-rule, rgba(105, 164, 137, 0.46)); box-shadow: inset 3px 0 rgba(105, 164, 137, 0.44); }
.crafting-recipe-card.unavailable { opacity: 0.78; }
.crafting-recipe-card figure { width: 66px; height: 66px; display: grid; place-items: center; margin: 0; border: 1px solid rgba(181, 148, 82, 0.26); background: rgba(5, 9, 8, 0.72); }
.crafting-recipe-card figure img { width: 58px; height: 58px; object-fit: contain; filter: drop-shadow(0 5px 7px rgba(0, 0, 0, 0.5)); }
.crafting-recipe-card > div { min-width: 0; }
.crafting-recipe-card header { display: grid; grid-template-columns: auto 1fr auto; align-items: baseline; gap: 6px; }
.crafting-recipe-card header span { color: var(--folio-muted, #b49356); font-size: var(--ming-font-small, 14px); }
.crafting-recipe-card header h3 { margin: 0; color: var(--folio-ink, #eee1c7); font-size: 16px; line-height: 1.2; }
.crafting-recipe-card header b { color: var(--folio-ink, #9fc1b0); font-size: var(--ming-font-small, 14px); }
.crafting-recipe-card p { margin: 4px 0 7px; color: var(--folio-muted, #b4a891); font-size: var(--ming-font-body, 16px); line-height: 1.45; }
.crafting-recipe-card dl { display: grid; grid-template-columns: 1fr 1fr; gap: 5px; margin: 0; }
.crafting-recipe-card dl div { min-width: 0; display: flex; gap: 5px; }
.crafting-recipe-card dt { flex: 0 0 auto; color: var(--folio-muted, #907b51); font-size: var(--ming-font-small, 14px); }
.crafting-recipe-card dd { overflow: hidden; margin: 0; color: var(--folio-ink, #c8baa0); font-size: var(--ming-font-small, 14px); text-overflow: ellipsis; white-space: nowrap; }
.crafting-recipe-card footer { display: flex; align-items: center; justify-content: space-between; gap: 8px; margin-top: 6px; }
.crafting-recipe-card footer > small { min-width: 0; color: var(--folio-muted, #958a76); font-size: var(--ming-font-small, 14px); line-height: 1.35; }
.crafting-recipe-card .personal-action-button { min-width: 132px; min-height: 44px; padding: 5px 8px; }
.crafting-recipe-card .personal-action-button span { font-size: var(--ming-font-small, 14px); }
.crafting-recipe-card .personal-action-button small { font-size: var(--ming-font-small, 14px); }
.recipe-action-effects {
  margin: 0 0 7px;
  padding: 6px 8px;
  border-left: 3px solid rgba(104, 160, 133, 0.62);
  background: var(--folio-card, rgba(11, 34, 25, 0.54));
}
.recipe-account-grid { min-width: 0; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 5px; }
.recipe-account-grid > section { min-width: 0; display: grid; grid-template-columns: 35px minmax(0, 1fr); gap: 5px; padding: 5px; border: 1px solid rgba(179, 145, 77, 0.18); background: var(--folio-card, rgba(4, 10, 8, 0.48)); }
.recipe-account-grid label { color: var(--folio-ink, #a4874c); font-size: var(--ming-font-small, 14px); font-weight: 760; letter-spacing: 0.08em; }
.recipe-account-grid section > div { min-width: 0; display: grid; gap: 3px; }
.recipe-account-grid section > div > em { color: var(--folio-muted, #817867); font-size: var(--ming-font-small, 14px); font-style: normal; }
.recipe-item-entry { min-width: 0; display: grid; grid-template-columns: 27px minmax(0, 1fr); align-items: center; gap: 5px; }
.recipe-item-entry > img { width: 27px; height: 27px; object-fit: contain; border: 1px solid rgba(177, 145, 78, 0.22); background: rgba(22, 20, 14, 0.72); }
.recipe-item-entry > i { min-width: 0; display: grid; font-style: normal; }
.recipe-item-entry b { overflow: hidden; color: var(--folio-ink, #d8caae); font-size: var(--ming-font-small, 14px); text-overflow: ellipsis; white-space: nowrap; }
.recipe-item-entry small { color: var(--folio-muted, #82a894); font-size: var(--ming-font-small, 14px); line-height: 1.25; }
.recipe-item-entry.missing small { color: var(--folio-danger, #c77d6a); }
.recipe-skill-account span { min-width: 0; display: flex; align-items: baseline; justify-content: space-between; gap: 4px; }
.recipe-skill-account span b { color: var(--folio-muted, #cdbd99); font-size: var(--ming-font-small, 14px); }
.recipe-skill-account span small { color: var(--folio-muted, #89ad9b); font-size: var(--ming-font-small, 14px); }
.recipe-skill-account span.missing small { color: var(--folio-danger, #cf806c); }
.crafting-expand-note { margin: 0; padding: 7px 9px; color: var(--folio-ink, #aa956a); border-left: 3px solid #ae8b45; background: var(--folio-card, rgba(92, 71, 32, 0.14)); font-size: var(--ming-font-small, 14px); line-height: 1.45; }

.provision-preservation-ledger {
  min-width: 0;
  display: grid;
  gap: 10px;
  padding: 12px;
  border: 1px solid rgba(164, 128, 66, 0.38);
  background:
    linear-gradient(135deg, rgba(94, 65, 25, 0.18), transparent 45%),
    rgba(6, 13, 10, 0.86);
  font-size: var(--ming-font-small, 14px);
}
.provision-preservation-ledger > header {
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  gap: 12px;
  padding-bottom: 9px;
  border-bottom: 1px solid rgba(177, 142, 73, 0.28);
}
.provision-preservation-ledger > header > div { min-width: 0; }
.provision-preservation-ledger > header span { color: #bd9753; font-size: var(--ming-font-small, 14px); letter-spacing: 0.08em; }
.provision-preservation-ledger > header h3 { margin: 2px 0 0; color: #eadcbc; font-size: 19px; }
.provision-preservation-ledger > header small { display: block; margin-top: 4px; color: #9eaa95; font-size: var(--ming-font-small, 14px); line-height: 1.5; }
.provision-preservation-ledger > header > b { flex: 0 0 auto; color: #a8c8b6; font-size: var(--ming-font-small, 14px); }
.provision-preservation-processes,
.provision-preservation-batches { min-width: 0; display: grid; gap: 9px; }
.provision-preservation-process,
.provision-preservation-batch {
  min-width: 0;
  display: grid;
  grid-template-columns: 104px minmax(0, 1fr);
  gap: 12px;
  padding: 10px;
  border: 1px solid rgba(157, 126, 67, 0.28);
  background: rgba(11, 17, 13, 0.8);
}
.provision-preservation-process.is-ready,
.provision-preservation-batch.is-ready { border-color: rgba(97, 158, 128, 0.48); box-shadow: inset 3px 0 rgba(97, 158, 128, 0.46); }
.provision-preservation-process.is-warning,
.provision-preservation-batch.is-attention { border-color: rgba(196, 132, 74, 0.58); box-shadow: inset 3px 0 rgba(196, 132, 74, 0.5); }
.provision-preservation-process > figure,
.provision-preservation-batch > figure {
  position: relative;
  align-self: start;
  width: 104px;
  min-height: 104px;
  display: grid;
  place-items: center;
  align-content: center;
  gap: 4px;
  margin: 0;
  border: 1px solid rgba(177, 141, 72, 0.24);
  background: radial-gradient(circle, rgba(104, 78, 35, 0.22), rgba(4, 9, 7, 0.9));
}
.provision-preservation-process > figure img,
.provision-preservation-batch > figure img { width: 88px; height: 88px; object-fit: contain; filter: drop-shadow(0 7px 8px rgba(0, 0, 0, 0.55)); }
.provision-preservation-process > figure figcaption { padding: 0 5px 6px; color: #a99a79; font-size: var(--ming-font-small, 14px); line-height: 1.35; text-align: center; }
.provision-preservation-batch > figure i { position: absolute; top: 6px; left: 6px; width: 26px; height: 26px; display: grid; place-items: center; color: #eddcb9; border: 1px solid rgba(199, 162, 91, 0.5); border-radius: 50%; background: #4d371b; font-size: var(--ming-font-small, 14px); font-style: normal; }
.provision-preservation-process > div,
.provision-preservation-batch > div { min-width: 0; }
.provision-preservation-process header { display: grid; grid-template-columns: auto minmax(0, 1fr) auto; align-items: baseline; gap: 8px; }
.provision-preservation-process header span,
.provision-preservation-batch > div > span { color: #b89250; font-size: var(--ming-font-small, 14px); }
.provision-preservation-process h4,
.provision-preservation-batch h4 { margin: 0; color: #e9dabc; font-size: 17px; line-height: 1.3; }
.provision-preservation-process header b { color: #9abda9; font-size: var(--ming-font-small, 14px); }
.provision-preservation-process p,
.provision-preservation-batch p { margin: 6px 0 9px; color: #b8ad97; font-size: var(--ming-font-body, 16px); line-height: 1.55; }
.provision-preservation-materials { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 6px; }
.provision-preservation-materials > span { min-width: 0; display: grid; grid-template-columns: 34px minmax(0, 1fr); align-items: center; gap: 6px; padding: 5px; border: 1px solid rgba(161, 131, 73, 0.2); background: rgba(4, 10, 7, 0.56); }
.provision-preservation-materials img { width: 34px; height: 34px; object-fit: contain; }
.provision-preservation-materials i { min-width: 0; display: grid; font-style: normal; }
.provision-preservation-materials b { overflow: hidden; color: #d3c3a3; font-size: var(--ming-font-small, 14px); text-overflow: ellipsis; white-space: nowrap; }
.provision-preservation-materials small { color: #91b49f; font-size: var(--ming-font-small, 14px); line-height: 1.35; }
.provision-preservation-materials .missing small { color: #ca806e; }
.provision-preservation-result { min-width: 0; display: flex; align-items: center; gap: 8px; margin-top: 7px; padding: 6px 8px; border-left: 3px solid rgba(106, 160, 133, 0.58); background: rgba(14, 39, 28, 0.48); }
.provision-preservation-result img { width: 42px; height: 42px; object-fit: contain; }
.provision-preservation-result span { min-width: 0; display: grid; }
.provision-preservation-result small { color: #91ad9e; font-size: var(--ming-font-small, 14px); }
.provision-preservation-result b { color: #dfd0af; font-size: var(--ming-font-small, 14px); }
.provision-preservation-environment { margin: 7px 0 0 !important; padding-left: 9px; border-left: 2px solid rgba(106, 160, 133, 0.48); color: #a8b8aa !important; }
.provision-preservation-trace { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 5px; margin-top: 7px; }
.provision-preservation-trace > span { min-width: 0; display: grid; gap: 2px; padding: 5px 6px; border: 1px solid rgba(161, 131, 73, 0.18); background: rgba(4, 10, 7, 0.48); }
.provision-preservation-trace small,
.provision-preservation-trace b { font-size: var(--ming-font-small, 14px); line-height: 1.4; }
.provision-preservation-trace small { color: #9e9278; }
.provision-preservation-trace b { color: #d4c5a6; overflow-wrap: anywhere; }
.provision-preservation-advice { display: grid; gap: 3px; margin: 7px 0 0 !important; padding: 7px 8px; border-left: 3px solid rgba(196, 132, 74, 0.58); background: rgba(62, 38, 18, 0.42); }
.provision-preservation-advice b,
.provision-preservation-advice span { font-size: var(--ming-font-small, 14px); line-height: 1.45; }
.provision-preservation-advice b { color: #dbb16e; }
.provision-preservation-advice span { color: #c4b79f; }
.provision-preservation-action { width: 100%; min-height: 44px; display: grid; justify-items: start; align-content: center; margin-top: 8px; padding: 7px 10px; text-align: left; }
.provision-preservation-action b,
.provision-preservation-action small { font-size: var(--ming-font-small, 14px); line-height: 1.4; }
.provision-preservation-action b { color: #f0e1c2; }
.provision-preservation-action small { color: #a3b7aa; }
.provision-preservation-process.is-ready .provision-preservation-action:not(:disabled),
.provision-preservation-batch.is-ready .provision-preservation-action:not(:disabled) {
  color: #f1e4c7;
  border-color: rgba(111, 174, 140, 0.66);
  background: linear-gradient(180deg, rgba(37, 78, 57, 0.96), rgba(20, 52, 38, 0.96));
  box-shadow: inset 0 0 0 1px rgba(170, 211, 187, 0.08);
  cursor: pointer;
}
.provision-preservation-process.is-warning .provision-preservation-action:not(:disabled),
.provision-preservation-batch.is-attention .provision-preservation-action:not(:disabled) {
  color: #f3dfbb;
  border-color: rgba(207, 147, 84, 0.72);
  background: linear-gradient(180deg, rgba(91, 57, 25, 0.97), rgba(60, 37, 18, 0.97));
  box-shadow: inset 0 0 0 1px rgba(239, 190, 120, 0.08);
  cursor: pointer;
}
.provision-preservation-process.is-ready .provision-preservation-action:not(:disabled):hover,
.provision-preservation-batch.is-ready .provision-preservation-action:not(:disabled):hover {
  border-color: rgba(151, 205, 174, 0.82);
  background: linear-gradient(180deg, rgba(47, 94, 70, 0.98), rgba(24, 63, 46, 0.98));
}
.provision-preservation-process.is-warning .provision-preservation-action:not(:disabled):hover,
.provision-preservation-batch.is-attention .provision-preservation-action:not(:disabled):hover {
  border-color: rgba(232, 177, 111, 0.86);
  background: linear-gradient(180deg, rgba(109, 68, 29, 0.99), rgba(72, 43, 19, 0.99));
}

.pottery-crafting-ledger {
  min-width: 0;
  display: grid;
  gap: 11px;
  padding: 12px;
  border: 1px solid rgba(178, 139, 68, 0.36);
  background: var(--folio-card, linear-gradient(135deg, rgba(98, 61, 31, 0.16), transparent 44%), rgba(5, 14, 10, 0.9));
  box-shadow: inset 3px 0 rgba(181, 132, 66, 0.42);
}
.pottery-crafting-ledger > header { min-width: 0; display: flex; align-items: end; justify-content: space-between; gap: 12px; padding-bottom: 9px; border-bottom: 1px solid rgba(178, 139, 68, 0.24); }
.pottery-crafting-ledger > header > div { min-width: 0; }
.pottery-crafting-ledger > header span { color: var(--folio-muted, #c49a58); font-size: var(--ming-font-small, 14px); letter-spacing: 0.08em; }
.pottery-crafting-ledger > header h3 { margin: 2px 0 0; color: var(--folio-ink, #ebdcc0); font-size: 19px; line-height: 1.35; }
.pottery-crafting-ledger > header small { display: block; max-width: 620px; margin-top: 4px; color: var(--folio-muted, #9fac99); font-size: var(--ming-font-small, 14px); line-height: 1.55; }
.pottery-crafting-ledger > header > b { flex: 0 0 auto; color: var(--folio-ink, #a9c8b5); font-size: var(--ming-font-small, 14px); }
.pottery-practice-list,
.pottery-workpiece-list { min-width: 0; display: grid; gap: 9px; }
.pottery-practice-card,
.pottery-workpiece-card { min-width: 0; display: grid; grid-template-columns: 120px minmax(0, 1fr); gap: 11px; padding: 9px; border: 1px solid rgba(177, 139, 76, 0.28); background: var(--folio-card, rgba(8, 16, 12, 0.82)); }
.pottery-practice-card.is-ready,
.pottery-workpiece-card.status-tested { border-color: var(--folio-rule, rgba(96, 157, 127, 0.5)); box-shadow: inset 3px 0 rgba(96, 157, 127, 0.5); }
.pottery-practice-card.is-blocked,
.pottery-workpiece-card.status-failed { border-color: var(--folio-rule, rgba(180, 103, 70, 0.48)); }
.pottery-practice-card > figure,
.pottery-workpiece-card > figure { position: relative; min-width: 0; min-height: 118px; margin: 0; display: grid; place-items: center; overflow: hidden; border: 1px solid rgba(177, 139, 76, 0.2); background: radial-gradient(circle at 50% 40%, rgba(116, 76, 42, 0.27), rgba(3, 8, 6, 0.9) 72%); }
.pottery-practice-card > figure img,
.pottery-workpiece-card > figure img { width: 104px; height: 104px; object-fit: contain; filter: drop-shadow(0 8px 8px rgba(0, 0, 0, 0.55)); }
.pottery-practice-card > figure figcaption { position: absolute; right: 5px; bottom: 5px; left: 5px; padding: 3px 5px; color: #dcc9a6; background: rgba(12, 10, 7, 0.78); font-size: var(--ming-font-small, 14px); text-align: center; }
.pottery-workpiece-card > figure i { position: absolute; top: 6px; left: 6px; width: 28px; height: 28px; display: grid; place-items: center; color: #f0dfbd; border: 1px solid rgba(202, 158, 88, 0.56); border-radius: 50%; background: #52391f; font-size: var(--ming-font-small, 14px); font-style: normal; }
.pottery-practice-card > div,
.pottery-workpiece-card > div { min-width: 0; display: grid; align-content: start; gap: 7px; }
.pottery-practice-card header { min-width: 0; display: grid; grid-template-columns: 1fr auto; gap: 2px 10px; }
.pottery-practice-card header span { color: var(--folio-muted, #c09a5c); font-size: var(--ming-font-small, 14px); }
.pottery-practice-card h4,
.pottery-workpiece-card h4 { margin: 0; color: var(--folio-ink, #eadbbc); font-size: 17px; line-height: 1.35; }
.pottery-practice-card header h4 { grid-column: 1; }
.pottery-practice-card header b { grid-column: 2; grid-row: 1 / span 2; align-self: center; color: var(--folio-ink, #a7c6b4); font-size: var(--ming-font-small, 14px); }
.pottery-practice-card > div > p { margin: 0; color: var(--folio-muted, #b8ad98); font-size: var(--ming-font-body, 16px); line-height: 1.55; }
.pottery-workpiece-card > div > span { color: var(--folio-muted, #be995b); font-size: var(--ming-font-small, 14px); }
.pottery-material-row,
.pottery-trace { min-width: 0; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 5px; }
.pottery-material-row > span,
.pottery-trace > span { min-width: 0; display: grid; align-content: center; gap: 2px; padding: 6px 7px; border: 1px solid rgba(151, 125, 76, 0.22); background: var(--folio-card, rgba(3, 10, 7, 0.55)); }
.pottery-material-row > span { grid-template-columns: auto minmax(0, 1fr); }
.pottery-material-row img { width: 28px; height: 28px; object-fit: contain; }
.pottery-material-row b,
.pottery-trace b { min-width: 0; color: var(--folio-ink, #d6c6a8); font-size: var(--ming-font-small, 14px); line-height: 1.4; overflow-wrap: anywhere; }
.pottery-trace small { color: var(--folio-muted, #8fa798); font-size: var(--ming-font-small, 14px); }
.pottery-weather-advice { padding: 6px 8px; border-left: 3px solid rgba(83, 145, 119, 0.54); background: var(--folio-card, rgba(10, 35, 25, 0.52)); color: var(--folio-ink, #b7c9b9) !important; }
.pottery-practice-card button,
.pottery-action-row button { min-width: 0; min-height: 46px; display: grid; align-content: center; justify-items: start; gap: 2px; padding: 7px 10px; color: var(--folio-ink, #eadabd); border: 1px solid rgba(114, 171, 142, 0.5); background: var(--folio-card, rgba(15, 48, 34, 0.65)); cursor: pointer; text-align: left; }
.pottery-practice-card button b,
.pottery-action-row button b { font-size: var(--ming-font-small, 14px); }
.pottery-practice-card button small,
.pottery-action-row button small { color: var(--folio-muted, #a9c0b0); font-size: var(--ming-font-small, 14px); line-height: 1.35; }
.pottery-practice-card button:disabled,
.pottery-action-row button:disabled { opacity: 0.5; cursor: not-allowed; }
.pottery-action-row { min-width: 0; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 6px; }
.pottery-trouble { margin: 0; display: grid; gap: 3px; padding: 7px 9px; border-left: 3px solid #a65e3f; background: var(--folio-card, rgba(75, 33, 21, 0.5)); }
.pottery-trouble b { color: var(--folio-ink, #e3b289); font-size: var(--ming-font-small, 14px); }
.pottery-trouble span,
.pottery-trouble small { color: var(--folio-muted, #c8aa92); font-size: var(--ming-font-small, 14px); line-height: 1.45; }
.pottery-mountain-progress { min-width: 0; display: grid; gap: 8px; padding: 9px; border: 1px solid rgba(131, 154, 131, 0.28); background: rgba(9, 22, 16, 0.58); }
.pottery-mountain-progress > header span { color: var(--folio-muted, #9db8a5); font-size: var(--ming-font-small, 14px); letter-spacing: 0.08em; }
.pottery-mountain-progress > header h4 { margin: 2px 0 0; color: var(--folio-ink, #e3d4b7); font-size: 16px; }
.pottery-mountain-progress > div { min-width: 0; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 7px; }
.pottery-mountain-progress article { min-width: 0; padding: 8px 9px; border-top: 3px solid rgba(131, 137, 119, 0.45); background: rgba(4, 11, 8, 0.65); }
.pottery-mountain-progress article.done { border-top-color: var(--folio-rule, #699a7e); }
.pottery-mountain-progress article.current { border-top-color: var(--folio-rule, #c49b57); }
.pottery-mountain-progress article b { color: var(--folio-ink, #ddcfb1); font-size: var(--ming-font-small, 14px); }
.pottery-mountain-progress article p { margin: 5px 0 0; color: var(--folio-muted, #a9a08d); font-size: var(--ming-font-body, 16px); line-height: 1.5; }

@media (max-width: 760px) {
  .provision-preservation-ledger { padding: 9px; }
  .provision-preservation-ledger > header { align-items: flex-start; }
  .provision-preservation-process,
  .provision-preservation-batch { grid-template-columns: 78px minmax(0, 1fr); gap: 9px; padding: 8px; }
  .provision-preservation-process > figure,
  .provision-preservation-batch > figure { width: 78px; min-height: 86px; }
  .provision-preservation-process > figure img,
  .provision-preservation-batch > figure img { width: 70px; height: 70px; }
  .provision-preservation-process > figure figcaption { display: none; }
  .provision-preservation-process header { grid-template-columns: 1fr auto; }
  .provision-preservation-process header span { grid-column: 1 / -1; }
  .provision-preservation-materials { grid-template-columns: 1fr; }
  .provision-preservation-trace { grid-template-columns: 1fr; }
  .pottery-crafting-ledger { padding: 9px; }
  .pottery-crafting-ledger > header { align-items: flex-start; }
  .pottery-practice-card,
  .pottery-workpiece-card { grid-template-columns: 88px minmax(0, 1fr); gap: 8px; padding: 8px; }
  .pottery-practice-card > figure,
  .pottery-workpiece-card > figure { min-height: 96px; }
  .pottery-practice-card > figure img,
  .pottery-workpiece-card > figure img { width: 78px; height: 78px; }
  .pottery-practice-card > figure figcaption { position: static; align-self: end; width: 100%; }
  .pottery-material-row,
  .pottery-trace,
  .pottery-mountain-progress > div,
  .pottery-action-row { grid-template-columns: 1fr; }
}

.action-plan-ledger { display: grid; gap: 7px; padding-top: 3px; }
.action-plan-list { display: grid; gap: 5px; }
.action-plan-list > p { margin: 0; color: #a99d87; font-size: var(--ming-font-body, 16px); line-height: 1.5; }
.action-plan-list article { display: grid; grid-template-columns: auto 1fr; gap: 2px 8px; padding: 7px 9px; border: 1px solid rgba(129, 158, 141, 0.24); background: rgba(9, 19, 16, 0.46); }
.action-plan-list article span { color: #8fb5a2; font-size: var(--ming-font-small, 14px); }
.action-plan-list article strong { color: #ddcfb2; font-size: var(--ming-font-small, 14px); }
.action-plan-list article p,
.action-plan-list article small { grid-column: 1 / -1; margin: 0; color: #9c927f; font-size: var(--ming-font-small, 14px); line-height: 1.4; }
.action-plan-seeds { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 5px; }
.action-plan-seeds .system-action-seed { min-height: 44px; padding: 6px 8px; }
.action-plan-seeds .system-action-seed span { font-size: var(--ming-font-small, 14px); }
.action-plan-seeds .system-action-seed small { display: none; }

.family-household-summary,
.family-relation-list { display: grid; gap: 9px; }
.household-record {
  min-width: 0;
  padding: 13px 14px;
  border: 1px solid rgba(174, 138, 70, 0.3);
  background: var(--folio-card, linear-gradient(90deg, rgba(119, 81, 34, 0.16), transparent 36%),
    rgba(8, 13, 11, 0.76));
  box-shadow: inset 3px 0 rgba(181, 142, 67, 0.36);
}
.household-record > header { display: flex; align-items: center; justify-content: space-between; gap: 10px; }
.household-record > header span { color: var(--folio-muted, #c19d5b); font-size: var(--ming-font-small, 14px); font-weight: 760; letter-spacing: 0.08em; }
.household-record > header b { padding: 3px 7px; color: var(--folio-ink, #a9cfbd); border: 1px solid rgba(113, 166, 141, 0.34); font-size: var(--ming-font-small, 14px); }
.household-record > strong { display: block; margin-top: 6px; color: var(--folio-ink, #eadcc0); font-family: var(--font-brush); font-size: 21px; font-weight: 400; }
.household-record > p { margin: 6px 0 9px; color: var(--folio-muted, #b8ac95); font-size: var(--ming-font-body, 16px); line-height: 1.55; }
.household-record dl { display: grid; gap: 5px; margin: 0; }
.household-record dl div { display: grid; grid-template-columns: 54px 1fr; gap: 8px; font-size: var(--ming-font-small, 14px); line-height: 1.45; }
.household-record dt { color: var(--folio-muted, #927d53); }
.household-record dd { min-width: 0; margin: 0; color: var(--folio-ink, #d0c1a5); overflow-wrap: anywhere; }
.family-bond-ledger { display: grid; gap: 8px; }
.family-bond-ledger > header { display: flex; align-items: flex-end; justify-content: space-between; gap: 10px; padding: 3px 1px 7px; border-bottom: 1px solid rgba(132, 166, 146, 0.22); }
.family-bond-ledger > header span { color: #b9944f; font-size: var(--ming-font-small, 14px); letter-spacing: 0.08em; }
.family-bond-ledger > header h4 { margin: 2px 0 0; color: #e5d7b8; font-size: 16px; line-height: 1.35; }
.family-bond-ledger > header small { color: #8eaa9a; font-size: var(--ming-font-small, 14px); }
.family-relation-record {
  min-width: 0;
  display: grid;
  grid-template-columns: 88px minmax(0, 1fr);
  overflow: hidden;
  border: 1px solid rgba(111, 161, 137, 0.34);
  background: linear-gradient(120deg, rgba(18, 33, 26, 0.94), rgba(7, 13, 11, 0.96));
}
.family-relation-record.away { border-color: rgba(174, 138, 70, 0.28); }
.family-portrait { position: relative; min-width: 0; margin: 0; overflow: hidden; background: #17170f; }
.family-portrait img { width: 100%; height: 100%; display: block; object-fit: cover; object-position: center top; }
.family-portrait-fallback { display: grid; place-items: center; align-content: center; gap: 7px; background: radial-gradient(circle, rgba(151, 114, 55, 0.3), rgba(10, 15, 12, 0.96) 68%); }
.family-portrait-fallback i { width: 46px; height: 46px; display: grid; place-items: center; color: #e0c783; border: 1px solid rgba(211, 172, 89, 0.68); border-radius: 50%; font-family: var(--font-brush); font-size: 25px; font-style: normal; }
.family-portrait-fallback small { color: #a79469; font-size: var(--ming-font-small, 14px); }
.relation-family-portrait { min-height: 248px; }
.family-relation-story { min-width: 0; display: grid; align-content: start; gap: 7px; padding: 12px; }
.family-relation-story > header { display: flex; align-items: center; justify-content: space-between; gap: 8px; }
.family-relation-kind-label { color: #c6a45f; font-size: var(--ming-font-small, 14px); font-weight: 760; letter-spacing: 0.08em; }
.family-relation-story > header > b { padding: 3px 7px; color: #a8cdbb; border: 1px solid rgba(105, 158, 132, 0.38); font-size: var(--ming-font-small, 14px); }
.family-relation-story > strong { color: #eadabd; font-family: var(--font-brush); font-size: 20px; font-weight: 400; line-height: 1.25; }
.family-relation-story > small { color: #a79b85; font-size: var(--ming-font-small, 14px); line-height: 1.45; }
.family-relation-story > footer { display: grid; gap: 7px; }
.family-relation-story > footer > span { color: #9db4a7; font-size: var(--ming-font-small, 14px); line-height: 1.45; }
.family-relation-story > footer > div { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 6px; }
.family-relation-story > footer button { min-height: 48px; display: grid; align-content: center; gap: 1px; padding: 7px 8px; color: #ead5a5; border: 1px solid rgba(176, 145, 78, 0.42); background: #211c11; text-align: left; cursor: pointer; }
.family-relation-story > footer button:last-child { border-color: rgba(105, 158, 132, 0.48); background: #14271d; }
.family-relation-story > footer button:disabled { opacity: 0.45; cursor: not-allowed; }
.family-relation-story > footer button b { font-size: var(--ming-font-small, 14px); }
.family-relation-story > footer button small { color: #9fb3a7; font-size: var(--ming-font-small, 14px); }
.family-bond-glance { display: grid; gap: 6px; padding: 8px 9px; border-left: 3px solid #7d9b87; background: rgba(8, 25, 18, 0.68); }
.family-bond-glance.warm,
.family-bond-glance.loyal { border-left-color: #a8c489; background: rgba(30, 58, 38, 0.46); }
.family-bond-glance.guarded,
.family-bond-glance.hostile { border-left-color: #b87967; background: rgba(60, 27, 21, 0.35); }
.family-bond-glance > header { display: flex; align-items: baseline; justify-content: space-between; gap: 8px; }
.family-bond-glance > header span { color: #94aa9d; font-size: var(--ming-font-small, 14px); }
.family-bond-glance > header b { color: #d9c99f; font-size: var(--ming-font-small, 14px); }
.family-bond-meters { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 7px; }
.family-bond-meters > span { min-width: 0; display: grid; gap: 3px; }
.family-bond-meters small { overflow: hidden; color: #b6ac95; font-size: var(--ming-font-small, 14px); text-overflow: ellipsis; white-space: nowrap; }
.family-bond-meters i { height: 5px; overflow: hidden; background: rgba(109, 118, 104, 0.22); }
.family-bond-meters i b { display: block; height: 100%; background: linear-gradient(90deg, #6e927e, #bdc68f); }
.family-bond-glance > p { margin: 0; color: #a89e89; font-size: var(--ming-font-body, 16px); line-height: 1.45; }
.family-bond-glance > p > b { margin-right: 6px; color: #c5a65f; font-size: var(--ming-font-body, 16px); }
.family-claim-ledger { display: grid; gap: 7px; }
.family-claim-ledger > header small { color: #9a8f7c; font-size: var(--ming-font-small, 14px); }
.family-claim-ledger > div { display: grid; gap: 5px; }
.family-claim { display: grid; grid-template-columns: 58px 1fr auto; align-items: center; gap: 8px; padding: 9px 10px; border: 1px solid rgba(160, 128, 70, 0.23); }
.family-claim > span { color: #d0ae69; font-size: var(--ming-font-small, 14px); }
.family-claim > p { margin: 0; color: #c0b49d; font-size: var(--ming-font-body, 16px); line-height: 1.45; }
.family-claim > small { color: #9b907e; font-size: var(--ming-font-small, 14px); }
.family-claim.status-confirmed { border-color: rgba(102, 163, 136, 0.35); }
.family-claim.status-refuted { opacity: 0.68; }
.family-empty-claims { display: grid; gap: 3px; margin: 0; padding: 11px 12px; color: #a69b86; border: 1px dashed rgba(170, 138, 75, 0.28); font-size: var(--ming-font-small, 14px); line-height: 1.5; }
.family-empty-claims b { color: #cdbb94; }
.family-empty-claims span { color: #a89d88; }
.family-ledger-empty { margin: 0; padding: 12px; color: #aa9f8a; border: 1px dashed rgba(170, 138, 75, 0.25); font-size: var(--ming-font-small, 14px); line-height: 1.5; }
.family-ledger > header span,
.family-ledger > header b,
.family-claim-ledger > header span,
.family-ledger .system-action-seed span,
.family-ledger .system-action-seed small { font-size: var(--ming-font-small, 14px); }

@media (max-width: 760px) {
  .action-plan-seeds { grid-template-columns: 1fr; }
  .family-household-grid { grid-template-columns: 1fr; }
  .family-ledger > header,
  .family-bond-ledger > header,
  .family-claim-ledger > header { align-items: flex-start; flex-direction: column; }
  .family-relation-record { grid-template-columns: 82px minmax(0, 1fr); }
  .relation-family-portrait { min-height: 286px; }
  .family-bond-meters { grid-template-columns: 1fr; }
  .family-relation-story > footer > div { grid-template-columns: 1fr; }
  .family-relation-story > footer button { min-height: 48px; }
  .family-claim { grid-template-columns: 58px minmax(0, 1fr); }
  .family-claim > small { grid-column: 1 / -1; }
  .family-ledger > header span,
  .family-ledger > header b,
  .household-record > header span,
  .household-record > header b,
  .household-record dl div,
  .family-ledger .system-action-seed span,
  .family-ledger .system-action-seed small,
  .family-bond-ledger > header span,
  .family-bond-ledger > header small,
  .family-relation-kind-label,
  .family-relation-story > header > b,
  .family-relation-story > small,
  .family-relation-story > footer > span,
  .family-relation-story > footer button b,
  .family-relation-story > footer button small,
  .family-bond-glance > header span,
  .family-bond-glance > header b,
  .family-bond-meters small,
  .family-bond-glance > p,
  .family-bond-glance > p > b,
  .family-claim-ledger > header span,
  .family-claim-ledger > header small,
  .family-claim > span,
  .family-claim > small,
  .family-portrait-fallback small { font-size: var(--ming-font-small, 14px); }
  .crafting-recipe-card { grid-template-columns: 56px minmax(0, 1fr); }
  .crafting-recipe-card figure { width: 56px; height: 56px; }
  .crafting-recipe-card figure img { width: 50px; height: 50px; }
  .crafting-recipe-card p {
    overflow: visible;
    font-size: var(--ming-font-body, 16px);
    line-height: 1.5;
    text-overflow: clip;
    white-space: normal;
  }
  .recipe-account-grid { grid-template-columns: 1fr; }
  .recipe-account-grid > section { grid-template-columns: 42px minmax(0, 1fr); }
  .crafting-recipe-card dl { grid-template-columns: 1fr; }
  .crafting-recipe-card dt,
  .crafting-recipe-card dd,
  .crafting-recipe-card footer > small { font-size: var(--ming-font-small, 14px); }
  .crafting-recipe-card footer {
    align-items: stretch;
    flex-direction: column;
  }
  .crafting-recipe-card .personal-action-button {
    width: 100%;
    min-width: 0;
    min-height: 44px;
  }
  .crafting-recipe-card .personal-action-button small { font-size: var(--ming-font-small, 14px); }
}
.campaign-shell .system-empty b,
.campaign-shell .system-empty p,
.campaign-shell .system-empty small { font-size: var(--ming-font-small, 14px); line-height: 1.55; }

.character-identity {
  min-width: 0;
  display: grid;
  grid-template-columns: 86px minmax(0, 1fr);
  align-items: center;
  gap: 13px;
}

.character-state-card .character-state-heading {
  min-width: 0;
  min-height: 0;
  display: grid;
  grid-template-columns: auto minmax(0, 1fr);
  align-items: center;
  justify-content: stretch;
  gap: 2px 12px;
  overflow: visible;
  padding: 0;
  border: 0;
  background: transparent;
}

.character-state-card .character-state-heading > span,
.character-state-card .character-state-heading h2,
.character-state-card .character-state-heading small {
  white-space: nowrap;
}

.character-state-card .character-state-heading h2 {
  margin: 1px 0 0;
  font-size: 32px;
  line-height: 1.05;
  letter-spacing: 0.06em;
}

.character-state-card .character-state-heading small {
  grid-column: 1 / -1;
  margin-top: 3px;
  color: #c7b89d;
  font-size: 14px;
  font-weight: 650;
  line-height: 1.35;
}

.character-state-card .character-state-heading em {
  grid-column: 1 / -1;
  min-width: 0;
  max-width: none;
  overflow: hidden;
  margin-top: 3px;
  color: #a89b84;
  font-size: var(--ming-font-small, 14px);
  font-weight: 560;
  line-height: 1.4;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.character-state-card .character-portrait {
  position: relative;
  right: auto;
  bottom: auto;
  width: 86px;
  height: 92px;
  display: block;
  flex: none;
  overflow: hidden;
  margin: 0;
  border: 1px solid rgba(216, 183, 115, 0.52);
  border-radius: 3px 3px 14px 3px;
  background:
    radial-gradient(circle at 50% 34%, rgba(142, 105, 59, 0.25), transparent 54%),
    linear-gradient(145deg, #17201c, #090d0c);
  box-shadow: inset 0 0 0 4px rgba(7, 11, 10, 0.58), 0 8px 20px rgba(0, 0, 0, 0.32);
  pointer-events: none;
}

.character-state-card .character-portrait::before {
  content: '';
  position: absolute;
  z-index: 2;
  inset: 5px;
  width: auto;
  height: auto;
  border: 1px solid rgba(222, 192, 133, 0.16);
  border-radius: 1px 1px 10px 1px;
  background: none;
  pointer-events: none;
}

.character-state-card .character-portrait img {
  position: absolute;
  z-index: 1;
  top: -3px;
  left: 0;
  width: 86px;
  height: auto;
  object-fit: initial;
  object-position: initial;
  filter: drop-shadow(0 8px 9px rgba(0, 0, 0, 0.42));
}

.character-traits {
  min-width: 0;
  display: grid;
  grid-template-columns: 70px minmax(0, 1fr);
  align-items: center;
  gap: 8px;
  border-top: 1px solid rgba(213, 180, 113, 0.18);
}

.character-traits > span {
  color: var(--gold-400);
  font-size: var(--ming-font-small, 14px);
  font-weight: 700;
  letter-spacing: 0.1em;
}

.character-state-card .character-traits > .trait-list.compact {
  min-width: 0;
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 5px;
  margin: 0;
  padding: 0;
  border: 0;
}

.character-state-card .character-traits .trait-chip {
  width: 100%;
  min-width: 0;
  height: 42px;
  gap: 4px;
  justify-content: center;
  padding: 4px;
}

.character-state-card .character-traits .trait-chip > img {
  width: 28px;
  height: 28px;
  flex-basis: 28px;
}

.character-state-card .character-traits .trait-name {
  overflow: hidden;
  font-size: var(--ming-font-small, 14px);
  font-weight: 750;
  text-overflow: ellipsis;
  white-space: nowrap;
}

:is(.character-traits, .actor-ledger-copy) > .trait-inline-detail {
  grid-column: 1 / -1;
  position: relative;
  min-width: 0;
  margin: 2px 0 8px;
  padding: 14px 15px;
  overflow: hidden;
  color: var(--folio-ink, #cfc2aa);
  border: 1px solid rgba(213, 180, 113, 0.5);
  border-left: 3px solid rgba(213, 180, 113, 0.7);
  border-radius: 3px;
  background: var(--folio-card, linear-gradient(145deg, rgba(34, 29, 20, 0.98), rgba(7, 12, 10, 0.99) 60%),
    #0b0f0d);
  box-shadow: inset 0 0 0 1px rgba(255, 238, 191, 0.025);
  text-align: left;
  text-shadow: none;
  scroll-margin-block: 12px;
  animation: trait-tooltip-in 130ms ease-out both;
}

:is(.character-traits, .actor-ledger-copy) > .trait-inline-detail::before {
  content: '';
  position: absolute;
  top: 0;
  left: 0;
  width: 34%;
  height: 1px;
  background: linear-gradient(90deg, rgba(233, 197, 122, 0.86), transparent);
}

:is(.character-traits, .actor-ledger-copy) > .trait-inline-detail.burden {
  border-color: var(--folio-rule, rgba(168, 83, 70, 0.52));
  border-left-color: var(--folio-rule, rgba(190, 91, 76, 0.82));
  background: var(--folio-card, linear-gradient(145deg, rgba(57, 28, 24, 0.96), rgba(10, 13, 11, 0.99) 62%));
}

:is(.character-traits, .actor-ledger-copy) > .trait-inline-detail .trait-tooltip-heading {
  gap: 10px;
  padding-bottom: 9px;
}

:is(.character-traits, .actor-ledger-copy) > .trait-inline-detail .trait-tooltip-heading > img {
  width: 48px;
  height: 48px;
}

:is(.character-traits, .actor-ledger-copy) > .trait-inline-detail .trait-tooltip-heading small,
:is(.character-traits, .actor-ledger-copy) > .trait-inline-detail .trait-effects > b,
:is(.character-traits, .actor-ledger-copy) > .trait-inline-detail .trait-triggers > b,
:is(.character-traits, .actor-ledger-copy) > .trait-inline-detail .trait-lifecycle > b {
  font-size: var(--ming-font-small, 14px);
}

:is(.character-traits, .actor-ledger-copy) > .trait-inline-detail .trait-tooltip-heading strong { font-size: 25px; }
:is(.character-traits, .actor-ledger-copy) > .trait-inline-detail .trait-summary { font-size: var(--ming-font-small, 14px); }
:is(.character-traits, .actor-ledger-copy) > .trait-inline-detail .trait-effects li,
:is(.character-traits, .actor-ledger-copy) > .trait-inline-detail .trait-lifecycle,
:is(.character-traits, .actor-ledger-copy) > .trait-inline-detail .trait-triggers i { font-size: var(--ming-font-small, 14px); }
:is(.character-traits, .actor-ledger-copy) > .trait-inline-detail .trait-effects li strong { font-size: var(--ming-font-small, 14px); }
:is(.character-traits, .actor-ledger-copy) > .trait-inline-detail.burden .trait-effects li strong { color: var(--folio-ink, #df9c8c); }

.system-pager {
  display: grid;
  grid-template-columns: 1fr auto 1fr;
  align-items: center;
  gap: 10px;
  margin-top: 9px;
  padding-top: 9px;
  border-top: 1px solid rgba(213, 180, 113, 0.17);
}

.system-pager span {
  color: #b9aa90;
  font-size: var(--ming-font-small, 14px);
  font-weight: 650;
}

.system-pager button {
  min-height: 34px;
  padding: 5px 12px;
  color: var(--paper-200);
  border: 1px solid rgba(213, 180, 113, 0.28);
  border-radius: 3px;
  background: rgba(77, 60, 33, 0.22);
  font-size: var(--ming-font-small, 14px);
  font-weight: 650;
  cursor: pointer;
}

.system-pager button:last-child { justify-self: end; }
.system-pager button:disabled { opacity: 0.34; }

@media (min-width: 761px) {
  .character-state-card .trait-tooltip {
    top: calc(100% + 10px);
    bottom: auto;
  }

  .character-state-card .trait-tooltip::after {
    top: -7px;
    bottom: auto;
    border: 0;
    border-top: 1px solid rgba(213, 180, 113, 0.64);
    border-left: 1px solid rgba(213, 180, 113, 0.64);
  }
}

@media (max-width: 760px) {
  .trait-chip:hover,
  .trait-chip:focus-visible,
  .trait-chip.expanded { transform: none; }

  .trait-tooltip {
    top: auto !important;
    right: 18px !important;
    bottom: 20px !important;
    left: 18px !important;
    width: auto !important;
    max-height: min(68dvh, 520px) !important;
    overflow-y: auto !important;
  }
}

@media (min-width: 1080px) and (min-height: 680px) {
  html:has(.campaign-shell),
  body:has(.campaign-shell),
  #app:has(.campaign-shell) {
    height: 100%;
    overflow: hidden;
  }

  .campaign-shell {
    height: 100dvh;
    min-height: 0;
    display: grid;
    grid-template-rows: 72px minmax(0, 1fr);
    overflow: hidden;
  }

  .campaign-header {
    position: relative;
    min-height: 72px;
    padding: 8px 18px;
  }

  .campaign-header .back-to-origins span,
  .campaign-header .campaign-title small,
  .campaign-header .archive-button small,
  .campaign-header .currency-copy small,
  .campaign-header .currency-copy em { font-size: var(--ming-font-small, 14px); }

  .campaign-header .back-to-origins strong { font-size: var(--ming-font-small, 14px); }

  .campaign-layout {
    width: 100%;
    height: 100%;
    min-height: 0;
    grid-template-columns: minmax(0, 1fr) clamp(420px, 31vw, 500px);
    gap: 12px;
    overflow: hidden;
    padding: 11px 14px 13px;
  }

  .campaign-playfield {
    min-height: 0;
    display: grid;
    grid-template-rows: auto auto minmax(0, 1fr) 110px;
    gap: 9px;
    overflow: hidden;
  }

  .campaign-status-stack {
    min-width: 0;
    max-height: min(28dvh, 220px);
    display: grid;
    gap: 8px;
    overflow-y: auto;
    scrollbar-width: thin;
    scrollbar-color: rgba(190, 157, 96, 0.34) transparent;
  }

  .campaign-event-stack {
    min-height: 0;
    display: grid;
    grid-template-rows: minmax(0, 1fr) auto;
    gap: 8px;
    overflow: hidden;
  }

  .campaign-sidebar {
    min-height: 0;
    display: grid;
    grid-template-rows: auto minmax(0, 1fr);
    gap: 9px;
    overflow: hidden;
  }

  .campaign-ended .campaign-layout {
    grid-template-columns: minmax(0, 1fr);
  }

  .campaign-ended .campaign-playfield {
    min-height: 0;
    grid-template-rows: minmax(0, 1fr);
    gap: 0;
    overflow: hidden;
  }

  .campaign-ended .jinyi-ending-terminal,
  .campaign-ended .jinyi-ending-terminal > figure {
    min-height: 0;
    height: 100%;
  }

  .world-strip { height: auto; grid-template-columns: 110px 202px minmax(190px, 1fr) 120px; }
  .world-strip > div:not(.world-tags),
  .world-strip > .weather-location-cell { min-height: 60px; padding: 6px 16px; }
  .world-strip span,
  .world-strip small { line-height: 1.2; }
  .world-strip strong { line-height: 1.3; }
  .world-tags { grid-template-columns: repeat(auto-fit, minmax(170px, 1fr)); }

  .ai-event-card {
    min-height: 0;
    height: 100%;
    display: flex;
    flex-direction: column;
    overflow: hidden;
    padding: clamp(22px, 2.2vw, 38px);
    background-position: 58% center;
  }

  .event-heading h2 { font-size: clamp(40px, 3.2vw, 54px); }
  .event-narrative { max-width: 760px; margin-top: 12px; }
  .event-state-read { margin-top: 12px; }
  .event-state-read span,
  .event-state-read b { padding: 3px 9px; }
  .choice-list { width: 100%; max-width: 850px; margin-top: auto; padding-top: 14px; }
  .choice-list button { min-height: 82px; padding: 9px 10px; }
  .retry-list { width: min(430px, 100%); }
  .retry-list button { min-height: 78px; }

  .inference-report {
    min-height: 58px;
    max-height: 104px;
    overflow: hidden;
    padding: 10px 15px;
  }

  .inference-report.empty {
    display: grid;
    grid-template-columns: 148px minmax(0, 1fr);
    align-items: center;
    gap: 14px;
  }

  .inference-report.empty p { margin: 0; }
  .inference-report h3 { margin-top: 4px; }
  .inference-report:not(.empty) h3 {
    display: -webkit-box;
    overflow: hidden;
    line-height: 1.45;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 2;
  }
  .inference-report:not(.empty) p {
    display: none;
  }
  .change-list { margin-top: 5px; }

  .free-action-panel {
    height: 110px;
    grid-template-columns: minmax(260px, 0.66fr) minmax(470px, 1.34fr);
    gap: 14px;
    padding: 8px 14px;
  }

  .free-action-panel h3 { font-size: 23px; line-height: 1.08; }
  .free-action-panel p { margin: 0; }
  .free-action-composer textarea { min-height: 76px; max-height: 76px; resize: none; padding: 6px 10px; font-size: var(--ming-font-body, 16px); line-height: 1.35; }
  .free-action-composer > div { margin-top: 0; }
  .free-action-composer button { min-height: 40px; font-weight: 650; }

  .character-state-card {
    min-height: 0;
    display: grid;
    grid-template-rows: 92px 44px 54px 43px;
    gap: 7px;
    overflow: visible;
    padding: 10px 12px;
  }

  .character-state-card .need-grid {
    grid-template-columns: repeat(5, minmax(0, 1fr));
    gap: 5px;
    margin: 0;
  }

  .character-state-card .need-cell {
    min-height: 54px;
    padding: 6px 8px;
  }

  .character-state-card .need-cell span { font-size: var(--ming-font-small, 14px); }
  .character-state-card .need-cell strong { font-size: 19px; }
  .character-state-card .need-cell i { height: 4px; margin-top: 1px; }

  .character-state-card .money-ledger {
    height: auto;
    min-height: 43px;
    margin: 0;
    border-top: 0;
  }

  .character-state-card .money-ledger div { min-height: 43px; padding: 6px 12px; }
  .character-state-card .money-ledger span { font-size: var(--ming-font-small, 14px); }
  .character-state-card .money-ledger strong { font-size: 18px; }

  .system-dock {
    min-height: 0;
    display: grid;
    grid-template-rows: 55px minmax(0, 1fr);
  }

  .system-tabs button { min-height: 54px; }
  .system-tabs span { font-size: 21px; line-height: 1; }
  .system-tabs small { font-size: var(--ming-font-small, 14px); line-height: 1; }

  .system-detail {
    min-height: 0;
    max-height: none;
    overflow: hidden;
    padding: 10px 12px;
  }

  .system-detail-heading { margin-bottom: 7px; }
  .inventory-list { gap: 6px; }
  .inventory-list article { padding: 7px 10px; }
  .inventory-list article p { margin-top: 3px; }
  .actor-list article { row-gap: 3px; overflow: visible; }
  .actor-list article > p {
    display: -webkit-box;
    overflow: hidden;
    margin-top: 1px;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 1;
  }
  .actor-facts {
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 4px;
    margin-top: 3px;
  }
  .actor-facts span { min-width: 0; padding: 4px 5px; }
  .actor-facts .actor-obligation {
    grid-column: auto;
    margin: 0;
    padding: 4px 5px;
    border: 1px solid rgba(181, 87, 69, 0.32);
  }
  .actor-action { margin-top: 3px; }
  .actor-action .system-action-seed {
    min-height: 44px;
    padding: 6px 10px;
  }
  .actor-facts span,
  .actor-facts b,
  .actor-obligation { font-size: var(--ming-font-small, 14px); }
  .system-empty { min-height: 0; height: 100%; }
}

@media (min-width: 1080px) and (max-height: 760px) {
  .campaign-title h1 { font-size: 26px; }
  .campaign-wallets .currency-card { height: 50px; min-height: 50px; }
  .campaign-shell .event-narrative { line-height: 1.65; }
  .event-heading h2 { line-height: 1.03; }
  .character-state-card .character-state-heading h2 { font-size: 31px; }
}

@media (max-width: 1079px) {
  .campaign-event-stack { display: contents; }
  .character-traits { grid-template-columns: 1fr; padding-top: 10px; }
  .character-state-card .character-traits > .trait-list.compact { grid-template-columns: repeat(4, minmax(78px, 1fr)); }
}

@media (max-width: 760px) {
  .character-identity { grid-template-columns: 92px minmax(0, 1fr); }
  .character-state-card .character-portrait { width: 92px; height: 104px; }
  .character-state-card .character-portrait img { width: 92px; }
  .character-state-card .character-traits > .trait-list.compact { grid-template-columns: 1fr 1fr; }
  .campaign-shell .event-narrative { font-size: var(--ming-font-body, 16px); }
  .campaign-shell .world-strip small,
  .campaign-shell .world-tags > span,
  .campaign-shell .choice-copy small,
  .campaign-shell .choice-cost,
  .campaign-shell .inventory-list article small,
  .campaign-shell .inventory-list article p { font-size: var(--ming-font-small, 14px); }
}

/* V0.6 · 开局选择页同步收束为单屏档案 */
.dossier-portrait {
  position: relative;
  width: 72px;
  height: 80px;
  flex: 0 0 72px;
  overflow: hidden;
  margin: 0;
  border: 1px solid rgba(216, 183, 115, 0.5);
  border-radius: 3px 3px 13px 3px;
  background:
    radial-gradient(circle at 50% 34%, rgba(142, 105, 59, 0.24), transparent 54%),
    linear-gradient(145deg, #17201c, #090d0c);
  box-shadow: inset 0 0 0 4px rgba(7, 11, 10, 0.55), 0 8px 18px rgba(0, 0, 0, 0.3);
}

.dossier-portrait::after {
  content: '';
  position: absolute;
  z-index: 2;
  inset: 5px;
  border: 1px solid rgba(222, 192, 133, 0.16);
  border-radius: 1px 1px 9px 1px;
  pointer-events: none;
}

.dossier-portrait img {
  position: absolute;
  top: -2px;
  left: 0;
  width: 72px;
  height: auto;
  filter: drop-shadow(0 7px 9px rgba(0, 0, 0, 0.4));
}

.app-shell .brand-lockup p,
.app-shell .brand-lockup h1 small,
.app-shell .currency-copy small,
.app-shell .currency-copy em,
.app-shell .route-copy small,
.app-shell .rail-heading small,
.app-shell .rail-note b,
.app-shell .rail-note p,
.app-shell .method-tab small,
.app-shell .hero-kicker,
.app-shell .panel-heading span,
.app-shell .panel-heading p,
.app-shell .origin-card-copy small,
.app-shell .origin-card-copy em,
.app-shell .origin-card-badge,
.app-shell .prototype-footer { font-size: var(--ming-font-small, 14px); }

.app-shell .hero-identity { font-size: 14px; }
.app-shell .hero-summary { font-size: 15px; line-height: 1.8; }
.app-shell .method-tab strong,
.app-shell .route-copy strong { font-size: 14px; }

@media (min-width: 1180px) and (min-height: 680px) {
  html:has(.app-shell),
  body:has(.app-shell),
  #app:has(.app-shell) {
    height: 100%;
    overflow: hidden;
  }

  .app-shell {
    height: 100dvh;
    min-height: 0;
    grid-template-rows: 78px minmax(0, 1fr) 36px;
    overflow: hidden;
  }

  .game-workspace {
    width: min(1920px, 100%);
    height: 100%;
    min-height: 0;
    overflow: hidden;
  }

  .route-rail {
    min-height: 0;
    overflow-x: hidden;
    overflow-y: auto;
    scrollbar-color: rgba(190, 160, 100, 0.48) rgba(9, 12, 11, 0.42);
    scrollbar-gutter: stable;
    scrollbar-width: thin;
    padding-top: 14px;
    padding-bottom: 14px;
  }

  .route-rail .rail-note { padding: 10px 11px; }
  .route-rail .rail-note p { margin-top: 4px; line-height: 1.55; }

  .origin-stage {
    min-height: 0;
    display: grid;
    grid-template-rows: 54px minmax(0, 1fr) auto;
    gap: 10px;
    overflow-x: hidden;
    overflow-y: auto;
    scrollbar-color: rgba(190, 160, 100, 0.48) rgba(9, 12, 11, 0.42);
    scrollbar-gutter: stable;
    scrollbar-width: thin;
    padding: 10px 14px;
  }

  .origin-stage .method-tabs { height: 54px; }
  .origin-stage .origin-hero { min-height: 0; height: 100%; }
  .origin-stage .hero-copy { min-height: 0; height: 100%; padding-top: 24px; padding-bottom: 24px; }
  .origin-stage .hero-copy h2 { margin-top: 8px; }
  .origin-stage .hero-summary { margin-top: 10px; }
  .origin-stage .hero-copy > .trait-list { margin-top: 12px; }

  .origin-stage .method-panel {
    min-height: 0;
    margin: 0;
    padding: 11px 13px 12px;
  }

  .origin-stage .panel-heading { margin-bottom: 8px; }
  .origin-stage .panel-heading h3 { font-size: 25px; }
  .origin-stage .origin-card { min-height: 96px; }
  .origin-stage .origin-card-copy { min-height: 96px; padding-top: 11px; padding-bottom: 11px; }

  .origin-stage:has(.famous-roster) {
    display: block;
    overflow-x: hidden;
    overflow-y: auto;
    scrollbar-color: rgba(190, 160, 100, 0.48) rgba(9, 12, 11, 0.42);
    scrollbar-gutter: stable;
    scrollbar-width: thin;
  }

  .origin-stage:has(.famous-roster) .origin-hero {
    height: auto;
    min-height: clamp(310px, 34vh, 460px);
    background-position: center top;
  }

  .origin-stage:has(.famous-roster) .hero-copy {
    height: auto;
    min-height: clamp(310px, 34vh, 460px);
    padding-top: 30px;
    padding-bottom: 30px;
  }

  .origin-stage:has(.famous-roster) .method-panel {
    margin-top: 14px;
  }

  .dossier {
    height: 100%;
    min-height: 0;
    overflow-x: hidden;
    overflow-y: auto;
    scrollbar-color: rgba(190, 160, 100, 0.48) rgba(9, 12, 11, 0.42);
    scrollbar-gutter: stable;
    scrollbar-width: thin;
    padding: 12px 14px 13px;
  }

  .dossier::before { inset: 7px; }
  .dossier-heading { min-height: 46px; padding-bottom: 8px; }
  .dossier-heading > span { font-size: 26px; }
  .dossier-status { min-height: 38px; padding: 4px 10px 4px 5px; }
  .dossier-status i { width: 27px; height: 27px; flex-basis: 27px; font-size: 17px; }
  .dossier-status strong { font-size: var(--ming-font-small, 14px); }

  .dossier-name { min-height: 80px; margin-top: 7px; }
  .dossier-name strong { font-size: 33px; }
  .dossier-name span { margin-top: 3px; font-size: var(--ming-font-small, 14px); }
  .dossier-location { margin: 2px 0 0; font-size: var(--ming-font-small, 14px); line-height: 1.5; }

  .dossier .resource-grid {
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 5px;
    margin-top: 8px;
  }

  .dossier .resource-cell { min-height: 52px; padding: 6px 5px; }
  .dossier .resource-cell span { font-size: var(--ming-font-small, 14px); letter-spacing: 0.04em; }
  .dossier .resource-cell strong { margin-top: 2px; font-size: 16px; }

  .dossier .opening-state-ledger { margin-top: 7px; padding: 6px 7px 7px; }
  .dossier .opening-state-ledger > header > span { font-size: var(--ming-font-small, 14px); }
  .dossier .opening-state-ledger > header small { font-size: var(--ming-font-small, 14px); }
  .dossier .opening-state-ledger > header strong { font-size: 15px; }
  .dossier .opening-needs-grid { gap: 4px; margin-top: 5px; }
  .dossier .opening-need { padding: 4px 5px 5px; }
  .dossier .opening-need > span { font-size: var(--ming-font-small, 14px); }
  .dossier .opening-need > strong { font-size: 16px; }
  .dossier .opening-need > i { margin-top: 3px; }

  .dossier .stats-block {
    display: grid;
    grid-template-columns: 1fr 1fr;
    column-gap: 10px;
    margin-top: 9px;
    padding-top: 8px;
  }

  .dossier .stats-block > span { grid-column: 1 / -1; font-size: var(--ming-font-small, 14px); }
  .dossier .opening-capability-ledger > span {
    display: flex;
    align-items: baseline;
    justify-content: space-between;
    gap: 8px;
  }
  .dossier .opening-capability-ledger > span small {
    color: #78998a;
    font-size: var(--ming-font-small, 14px);
    font-weight: 650;
    letter-spacing: 0.03em;
  }
  .dossier .stat-row { grid-template-columns: 36px 1fr 24px; gap: 5px; margin-top: 6px; }
  .dossier .stat-row small { font-size: var(--ming-font-small, 14px); }
  .dossier .stat-row em { font-size: var(--ming-font-small, 14px); }
  .dossier .stat-row i { height: 6px; }

  .dossier .pressure-block { margin-top: 9px; padding-top: 8px; }
  .dossier .pressure-block > span { font-size: var(--ming-font-small, 14px); }
  .dossier .pressure-block ul { gap: 5px; margin-top: 5px; }
  .dossier .pressure-block li { padding: 4px 7px; font-size: var(--ming-font-small, 14px); }

  .dossier .objective-block {
    min-height: 58px;
    grid-template-columns: 43px 1fr;
    gap: 9px;
    margin-top: 9px;
    padding: 7px 9px;
  }

  .dossier .objective-block img { width: 43px; height: 43px; }
  .dossier .objective-block span { font-size: var(--ming-font-small, 14px); }
  .dossier .objective-block strong { margin-top: 0; font-size: var(--ming-font-small, 14px); line-height: 1.45; }

  .dossier .history-note { margin-top: 8px; padding: 7px 9px; }
  .dossier .history-note strong { font-size: var(--ming-font-small, 14px); }
  .dossier .history-note p {
    display: -webkit-box;
    overflow: hidden;
    margin-top: 2px;
    font-size: var(--ming-font-body, 16px);
    line-height: 1.5;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 2;
  }

  .dossier .start-button { min-height: 54px; margin-top: 8px; }
  .dossier .start-button span { font-size: var(--ming-font-small, 14px); }
  .dossier .start-button strong { font-size: 21px; }

  .prototype-footer { min-height: 36px; padding: 5px 18px; }
}

@media (min-width: 1180px) and (max-height: 760px) {
  .dossier .history-note { display: none; }
  .origin-stage .hero-copy h2 { font-size: 48px; }
  .origin-stage .hero-summary { line-height: 1.65; }
}

/* V0.6 · 本机 DeepSeek 游戏设置 */
.settings-button {
  position: relative;
  width: 54px;
  height: 54px;
  flex: 0 0 54px;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 1px;
  padding: 0;
  color: #c9b99b;
  border: 1px solid rgba(205, 179, 123, 0.32);
  border-radius: 6px;
  background:
    radial-gradient(circle at 50% 28%, rgba(146, 109, 57, 0.15), transparent 54%),
    rgba(14, 18, 17, 0.94);
  box-shadow: inset 0 1px rgba(255, 255, 255, 0.035), 0 6px 18px rgba(0, 0, 0, 0.2);
  cursor: pointer;
}

.settings-button:hover {
  color: #f0dfbd;
  border-color: rgba(217, 189, 127, 0.62);
  transform: translateY(-1px);
}

.settings-button > span {
  color: var(--gold-300);
  font-family: var(--font-brush);
  font-size: 25px;
  line-height: 0.9;
}

.settings-button > small {
  font-size: var(--ming-font-small, 14px);
  font-weight: 650;
  line-height: 1;
}

.settings-button > i {
  position: absolute;
  top: 5px;
  right: 5px;
  width: 7px;
  height: 7px;
  border: 1px solid #0a1511;
  border-radius: 50%;
  background: #77aa94;
  box-shadow: 0 0 9px rgba(119, 170, 148, 0.72);
}

.settings-backdrop {
  position: fixed;
  inset: 0;
  z-index: 110;
  display: grid;
  place-items: center;
  padding: 24px;
  background:
    radial-gradient(circle at 52% 18%, rgba(74, 119, 100, 0.15), transparent 32%),
    rgba(2, 5, 5, 0.84);
  backdrop-filter: blur(10px);
  animation: veil-in 180ms ease both;
}

.settings-panel {
  position: relative;
  isolation: isolate;
  width: min(780px, 95vw);
  max-height: 92vh;
  overflow-y: auto;
  padding: 28px 32px 25px 40px;
  color: var(--paper-200);
  border: 1px solid rgba(143, 178, 163, 0.42);
  border-radius: 7px;
  background:
    radial-gradient(circle at 88% 4%, rgba(91, 137, 116, 0.15), transparent 29%),
    linear-gradient(120deg, rgba(104, 73, 35, 0.08), transparent 31%),
    repeating-linear-gradient(92deg, rgba(255, 255, 255, 0.012) 0 1px, transparent 1px 7px),
    #0d1311;
  box-shadow: 0 34px 100px rgba(0, 0, 0, 0.72), inset 0 0 65px rgba(0, 0, 0, 0.2);
  animation: modal-rise 210ms ease both;
}

.settings-panel::before {
  content: '';
  position: absolute;
  z-index: -1;
  inset: 7px auto 7px 8px;
  width: 8px;
  border: 1px solid rgba(80, 137, 113, 0.62);
  border-radius: 8px 2px 2px 8px;
  background: linear-gradient(180deg, #315f50, #173329 47%, #294f43);
}

.settings-panel > header {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 20px;
  padding-bottom: 16px;
  border-bottom: 1px solid var(--line);
}

.settings-panel > header span {
  color: var(--jade-300);
  font-size: var(--ming-font-small, 14px);
  font-weight: 700;
  letter-spacing: 0.18em;
}

.settings-panel > header h2 {
  margin: 1px 0 0;
  color: var(--paper-100);
  font-family: var(--font-brush);
  font-size: 45px;
  font-weight: 400;
  line-height: 1.1;
  letter-spacing: 0.08em;
}

.settings-panel > header p {
  max-width: 580px;
  margin: 5px 0 0;
  color: #a99c84;
  font-size: var(--ming-font-body, 16px);
  line-height: 1.6;
}

.settings-panel > header button,
.settings-panel > footer button {
  min-height: 42px;
  padding: 8px 16px;
  color: var(--paper-200);
  border: 1px solid rgba(205, 179, 123, 0.26);
  border-radius: 3px;
  background: rgba(5, 9, 8, 0.58);
  font-size: var(--ming-font-small, 14px);
  font-weight: 700;
  cursor: pointer;
}

.ai-settings-status {
  min-height: 70px;
  display: grid;
  grid-template-columns: 46px minmax(0, 1fr) auto;
  align-items: center;
  gap: 13px;
  margin-top: 16px;
  padding: 10px 14px 10px 9px;
  border: 1px solid rgba(205, 179, 123, 0.2);
  border-radius: 5px;
  background: rgba(5, 10, 8, 0.54);
}

.ai-settings-status > span {
  width: 42px;
  height: 42px;
  display: grid;
  place-items: center;
  border: 1px solid currentColor;
  border-radius: 50%;
  font-family: var(--font-brush);
  font-size: 24px;
}

.ai-settings-status strong,
.ai-settings-status small { display: block; }
.ai-settings-status strong { color: var(--paper-100); font-size: 16px; }
.ai-settings-status small { margin-top: 2px; color: #a89b84; font-size: var(--ming-font-small, 14px); }
.ai-settings-status > b { color: var(--paper-300); font-size: var(--ming-font-small, 14px); letter-spacing: 0.08em; }
.ai-settings-status.connected { color: #8fc3ac; border-color: rgba(115, 177, 150, 0.5); background: rgba(42, 82, 65, 0.22); }
.ai-settings-status.configured { color: #d0b578; border-color: rgba(208, 181, 120, 0.4); }
.ai-settings-status.offline { color: #c87869; border-color: rgba(184, 82, 66, 0.38); }

.ai-settings-form {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 13px;
  margin-top: 16px;
}

.ai-settings-form label {
  min-width: 0;
  display: flex;
  flex-direction: column;
  gap: 5px;
}

.ai-settings-form label.wide { grid-column: 1 / -1; }
.ai-settings-form label > span,
.ai-provider-lock > span { color: var(--gold-400); font-size: var(--ming-font-small, 14px); font-weight: 700; letter-spacing: 0.1em; }

.ai-settings-form input {
  width: 100%;
  min-height: 45px;
  padding: 9px 12px;
  color: #eee3cb;
  border: 1px solid rgba(143, 178, 163, 0.28);
  border-radius: 3px;
  background: rgba(3, 7, 6, 0.62);
  font-size: var(--ming-font-body, 16px);
}

.ai-settings-form label > small { color: #8f8574; font-size: var(--ming-font-small, 14px); }

.ai-provider-lock {
  min-height: 72px;
  display: flex;
  flex-direction: column;
  justify-content: center;
  padding: 8px 12px;
  border: 1px solid rgba(205, 179, 123, 0.16);
  background: rgba(74, 56, 31, 0.08);
}

.ai-provider-lock strong { color: var(--paper-100); font-size: 18px; }
.ai-provider-lock small { color: #9c907a; font-size: var(--ming-font-small, 14px); }

.settings-boundary {
  display: grid;
  grid-template-columns: 92px 1fr;
  gap: 12px;
  margin-top: 15px;
  padding: 11px 13px;
  border-left: 3px solid var(--gold-600);
  background: rgba(106, 78, 38, 0.09);
}

.settings-boundary b { color: var(--gold-300); font-size: var(--ming-font-small, 14px); }
.settings-boundary span { color: #aa9e88; font-size: var(--ming-font-small, 14px); line-height: 1.6; }
.settings-error { margin: 11px 0 0; padding: 9px 11px; color: #e0a092; border: 1px solid rgba(187, 80, 63, 0.38); background: rgba(100, 35, 28, 0.16); font-size: var(--ming-font-small, 14px); }

.settings-panel > footer {
  display: flex;
  justify-content: flex-end;
  gap: 9px;
  margin-top: 17px;
  padding-top: 15px;
  border-top: 1px solid var(--line);
}

.settings-panel > footer button.primary {
  min-width: 190px;
  color: #d7e7df;
  border-color: rgba(113, 174, 148, 0.58);
  background: linear-gradient(180deg, rgba(61, 105, 86, 0.7), rgba(29, 57, 46, 0.72));
}

.settings-panel button:disabled { opacity: 0.46; }

@media (max-width: 760px) {
  .settings-button { width: 46px; height: 42px; flex-basis: 46px; }
  .settings-button > span { font-size: 23px; }
  .settings-button > small { display: none; }
  .settings-backdrop { align-items: end; padding: 0; }
  .settings-panel { width: 100%; max-height: 94vh; padding: 21px 15px 18px 24px; border-right: 0; border-bottom: 0; border-left: 0; border-radius: 12px 12px 0 0; }
  .settings-panel > header h2 { font-size: 38px; }
  .settings-panel > header p { font-size: var(--ming-font-body, 16px); }
  .ai-settings-status { grid-template-columns: 44px minmax(0, 1fr); }
  .ai-settings-status > b { grid-column: 2; }
  .ai-settings-form { grid-template-columns: 1fr; }
  .ai-settings-form label.wide { grid-column: auto; }
  .settings-boundary { grid-template-columns: 1fr; gap: 3px; }
  .settings-panel > footer { align-items: stretch; flex-direction: column; }
  .settings-panel > footer button { width: 100%; min-height: 44px; }
}

/* 《明末求生录》独立品牌题签 */
.app-shell .topbar {
  isolation: isolate;
  background:
    radial-gradient(circle at 62px 50%, rgba(139, 50, 36, 0.2), transparent 96px),
    linear-gradient(90deg, rgba(121, 48, 36, 0.15), transparent 30%, transparent 72%, rgba(121, 92, 45, 0.07)),
    repeating-linear-gradient(92deg, rgba(255, 244, 214, 0.012) 0, rgba(255, 244, 214, 0.012) 1px, transparent 1px, transparent 6px),
    rgba(9, 12, 11, 0.965);
  box-shadow:
    0 12px 38px rgba(0, 0, 0, 0.34),
    inset 0 -1px rgba(234, 197, 124, 0.05);
}

.app-shell .topbar::after {
  content: '';
  position: absolute;
  z-index: -1;
  right: 0;
  bottom: -1px;
  left: 0;
  height: 3px;
  background:
    linear-gradient(90deg, transparent 0 2%, rgba(164, 75, 54, 0.7) 2% 7%, rgba(213, 177, 107, 0.32) 7% 26%, rgba(213, 177, 107, 0.06) 62%, transparent 96%);
  pointer-events: none;
}

.app-shell .brand-lockup {
  gap: 15px;
}

.brand-emblem {
  width: 58px;
  height: 58px;
  flex: 0 0 58px;
  object-fit: contain;
  filter:
    drop-shadow(0 7px 12px rgba(0, 0, 0, 0.58))
    drop-shadow(0 0 12px rgba(148, 48, 32, 0.15));
}

.brand-copy {
  min-width: 0;
  display: grid;
  gap: 1px;
}

.app-shell .brand-lockup p {
  color: #a99575;
  font-size: var(--ming-font-body, 16px);
  font-weight: 650;
  line-height: 1.2;
  letter-spacing: 0.26em;
  text-shadow: 0 1px 8px rgba(0, 0, 0, 0.7);
}

.app-shell .brand-lockup h1 {
  display: flex;
  align-items: baseline;
  gap: 13px;
  color: #f0e5cf;
  font-size: clamp(27px, 2.25vw, 35px);
  line-height: 1.08;
  letter-spacing: 0.1em;
  text-shadow: 0 3px 14px rgba(0, 0, 0, 0.64);
}

.app-shell .brand-lockup h1 small {
  position: relative;
  display: inline-flex;
  align-items: center;
  min-height: 23px;
  padding: 2px 10px 2px 12px;
  color: #d7bb7e;
  border-left: 1px solid rgba(215, 187, 126, 0.56);
  background: linear-gradient(90deg, rgba(155, 111, 50, 0.11), transparent);
  font-family: var(--font-body);
  font-size: var(--ming-font-small, 14px);
  font-weight: 700;
  line-height: 1;
  letter-spacing: 0.18em;
  white-space: nowrap;
  vertical-align: middle;
}

.app-shell .brand-lockup h1 small::before {
  content: '';
  position: absolute;
  top: 50%;
  left: -3px;
  width: 5px;
  height: 5px;
  border-radius: 50%;
  background: #9b3f31;
  box-shadow: 0 0 0 2px rgba(155, 63, 49, 0.17);
  transform: translateY(-50%);
}

@media (max-width: 760px) {
  .app-shell .brand-lockup { gap: 9px; }
  .brand-emblem { width: 42px; height: 42px; flex-basis: 42px; }
  .app-shell .brand-lockup h1 { display: block; font-size: 23px; letter-spacing: 0.07em; }
}

@media (max-width: 420px) {
  .brand-emblem { display: none; }
  .app-shell .brand-lockup h1 { font-size: 20px; letter-spacing: 0.05em; white-space: nowrap; }
}

/* V0.7.1 · 开局特质详情使用独立视口图层，避免被创建方式导航或视口边缘裁切 */
@media (min-width: 761px) {
  .origin-stage:has(.origin-hero .trait-chip:hover),
  .origin-stage:has(.origin-hero .trait-chip:focus-visible),
  .origin-stage:has(.origin-hero .trait-chip.expanded) {
    position: relative;
    z-index: 240;
    overflow: visible;
  }

  .origin-stage .origin-hero:has(.trait-chip:hover),
  .origin-stage .origin-hero:has(.trait-chip:focus-visible),
  .origin-stage .origin-hero:has(.trait-chip.expanded) {
    z-index: 241;
    overflow: visible;
  }

  .origin-stage .origin-hero .trait-chip:hover,
  .origin-stage .origin-hero .trait-chip:focus-visible,
  .origin-stage .origin-hero .trait-chip.expanded {
    transform: none;
  }

  .origin-stage .origin-hero .trait-tooltip {
    position: fixed;
    z-index: 5000;
    top: 50%;
    right: auto;
    bottom: auto;
    left: 50%;
    width: min(420px, calc(100vw - 56px));
    max-height: calc(100dvh - 96px);
    overflow-y: auto;
    transform: translate(-50%, -50%);
  }

  .origin-stage .origin-hero .trait-tooltip::after { display: none; }

  .origin-stage .origin-hero .trait-chip:hover .trait-tooltip,
  .origin-stage .origin-hero .trait-chip:focus-visible .trait-tooltip,
  .origin-stage .origin-hero .trait-chip.expanded .trait-tooltip {
    animation: origin-trait-tooltip-in 130ms ease-out both;
  }
}

@keyframes origin-trait-tooltip-in {
  from { opacity: 0; transform: translate(-50%, calc(-50% + 6px)); }
  to { opacity: 1; transform: translate(-50%, -50%); }
}

/* 《明末求生录》主菜单 */
html:has(.main-menu-shell),
body:has(.main-menu-shell),
#app:has(.main-menu-shell) {
  min-height: 100%;
}

body:has(.main-menu-shell) {
  overflow: hidden;
}

.main-menu-shell {
  position: relative;
  isolation: isolate;
  width: 100%;
  min-width: 320px;
  min-height: 100vh;
  min-height: 100dvh;
  overflow: hidden;
  color: #eadfc8;
  background: #070a09;
}

.main-menu-background,
.main-menu-atmosphere {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
}

.main-menu-backgrounds {
  position: absolute;
  z-index: -3;
  inset: 0;
  overflow: hidden;
  background: #070a09;
}

.main-menu-background {
  z-index: 0;
  opacity: 0;
  object-fit: cover;
  object-position: center center;
  filter: saturate(0.82) contrast(1.05) brightness(0.86);
  transform: scale(1.012);
}

.main-menu-background.active {
  opacity: 1;
  animation: main-menu-background-reveal 360ms ease-out both;
}

@keyframes main-menu-background-reveal {
  from { opacity: 0.28; transform: scale(1.024); }
  to { opacity: 1; transform: scale(1.012); }
}

.main-menu-atmosphere {
  z-index: -2;
  background:
    radial-gradient(ellipse at 25% 38%, rgba(92, 58, 32, 0.12), transparent 38%),
    linear-gradient(90deg, rgba(4, 7, 7, 0.94) 0%, rgba(5, 8, 7, 0.84) 20%, rgba(7, 9, 8, 0.52) 39%, rgba(7, 9, 8, 0.18) 61%, rgba(5, 7, 7, 0.035) 78%),
    linear-gradient(180deg, rgba(3, 5, 5, 0.62) 0%, transparent 22%, transparent 66%, rgba(3, 5, 5, 0.88) 100%),
    radial-gradient(circle at 72% 42%, transparent 0 18%, rgba(4, 6, 6, 0.17) 76%);
}

.main-menu-atmosphere::after {
  content: '';
  position: absolute;
  inset: 0;
  opacity: 0.18;
  background:
    repeating-linear-gradient(93deg, rgba(255, 244, 216, 0.022) 0, rgba(255, 244, 216, 0.022) 1px, transparent 1px, transparent 7px);
  mix-blend-mode: soft-light;
  pointer-events: none;
}

.main-menu-frame {
  width: 100%;
  min-height: 100vh;
  min-height: 100dvh;
  display: grid;
  grid-template-rows: auto minmax(0, 1fr) auto;
  gap: 12px;
  padding: 24px clamp(26px, 3.6vw, 58px) 18px;
}

.main-menu-header {
  position: relative;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 20px;
}

.main-menu-brand {
  display: flex;
  align-items: center;
  gap: 12px;
}

.main-menu-brand > img.main-menu-survival-seal {
  width: 64px;
  height: 64px;
  flex: 0 0 64px;
  object-fit: contain;
  filter: drop-shadow(0 8px 18px rgba(0, 0, 0, 0.6));
}

.main-menu-product-name,
.main-menu-token > span {
  display: flex;
  flex-direction: column;
}

.main-menu-product-name span {
  color: #a99470;
  font-size: var(--ming-font-small, 14px);
  font-weight: 700;
  line-height: 1;
  letter-spacing: 0.28em;
}

.main-menu-product-name strong {
  margin-top: 7px;
  color: #dfc98f;
  font-size: var(--ming-font-small, 14px);
  font-weight: 650;
  line-height: 1;
  letter-spacing: 0.18em;
}

.main-menu-lineage-divider {
  width: 1px;
  height: 42px;
  margin: 0 2px;
  background: linear-gradient(180deg, transparent, rgba(190, 156, 91, 0.42), transparent);
}

.main-menu-lineage {
  display: grid;
  grid-template-columns: minmax(0, 145px);
  align-items: center;
  justify-items: center;
  gap: 1px;
}

.main-menu-lineage small {
  color: #7f745f;
  font-size: var(--ming-font-small, 14px);
  font-weight: 800;
  letter-spacing: 0.14em;
}

.main-menu-parent-logo {
  width: 145px;
  height: auto;
  object-fit: contain;
  filter: drop-shadow(0 7px 14px rgba(0, 0, 0, 0.48));
}

.main-menu-token-group {
  flex: 0 0 auto;
  display: flex;
  align-items: stretch;
  gap: 6px;
}

.main-menu-token {
  position: relative;
  min-width: 166px;
  min-height: 52px;
  display: flex;
  align-items: center;
  gap: 9px;
  padding: 5px 13px 5px 7px;
  color: #d7cbb4;
  border: 1px solid rgba(202, 175, 117, 0.28);
  overflow: hidden;
  border-radius: 2px;
  background: linear-gradient(90deg, rgba(74, 50, 27, 0.14), rgba(5, 9, 8, 0.66) 34%);
  box-shadow: inset 0 0 0 1px rgba(255, 243, 205, 0.018), 0 12px 30px rgba(0, 0, 0, 0.24);
  backdrop-filter: blur(12px);
  cursor: pointer;
}

.main-menu-token::before {
  content: '';
  align-self: stretch;
  width: 2px;
  margin: -5px 0 -5px -7px;
  background: linear-gradient(180deg, transparent, rgba(157, 64, 49, 0.85), transparent);
}

.main-menu-token:hover {
  border-color: rgba(219, 188, 122, 0.54);
  background: rgba(20, 22, 18, 0.7);
}

.main-menu-token img {
  width: 40px;
  height: 40px;
  object-fit: contain;
}

.main-menu-token small {
  color: #8e826e;
  font-size: var(--ming-font-small, 14px);
  font-weight: 650;
  letter-spacing: 0.08em;
}

.main-menu-token strong {
  margin-top: 2px;
  color: #d9c795;
  font-size: 19px;
  line-height: 1;
}

.main-menu-token-add {
  position: relative;
  min-width: 44px;
  min-height: 44px;
  display: grid;
  place-items: center;
  padding: 0;
  border: 1px solid rgba(202, 175, 117, 0.36);
  border-radius: 2px;
  background: rgba(17, 19, 15, 0.78);
  color: #dfc98f;
  box-shadow: inset 0 0 0 1px rgba(255, 243, 205, 0.018), 0 12px 30px rgba(0, 0, 0, 0.24);
  cursor: pointer;
}

.main-menu-token-add > span {
  font-family: var(--font-brush);
  font-size: 28px;
  font-weight: 400;
  line-height: 1;
  transform: translateY(-1px);
}

.main-menu-token-add > small { display: none; }
.main-menu-token-add:hover,
.main-menu-token-add:focus-visible {
  border-color: rgba(219, 188, 122, 0.72);
  background: #282112;
  outline: 2px solid rgba(219, 188, 122, 0.16);
  outline-offset: 2px;
}

.main-menu-content {
  width: min(535px, 47vw);
  min-width: 420px;
  display: grid;
  align-content: center;
  gap: clamp(18px, 2.7vh, 28px);
  margin-left: clamp(10px, 5.2vw, 82px);
  padding: 4px 0 8px;
}

.main-menu-intro {
  position: relative;
  padding-left: 5px;
}

.main-menu-chapter-switcher {
  width: min(438px, 100%);
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 6px;
  margin: 0 0 15px;
  padding: 5px;
  border: 1px solid rgba(205, 179, 123, 0.18);
  border-radius: 5px;
  background: rgba(4, 8, 8, 0.56);
  box-shadow: inset 0 0 0 1px rgba(255, 245, 214, 0.012), 0 12px 30px rgba(0, 0, 0, 0.2);
  backdrop-filter: blur(12px);
}

.main-menu-chapter-option {
  min-width: 0;
  min-height: 46px;
  display: grid;
  grid-template-columns: 28px minmax(0, 1fr);
  align-items: center;
  gap: 7px;
  padding: 5px 7px;
  color: #a89b85;
  border: 1px solid transparent;
  border-radius: 3px;
  background: transparent;
  text-align: left;
  cursor: pointer;
}

.main-menu-chapter-option:hover,
.main-menu-chapter-option:focus-visible {
  color: #eadbbd;
  border-color: rgba(211, 180, 116, 0.3);
  background: rgba(50, 40, 26, 0.26);
}

.main-menu-chapter-option.active {
  color: #f0e1c2;
  border-color: rgba(207, 172, 102, 0.48);
  background: linear-gradient(90deg, rgba(121, 65, 42, 0.32), rgba(40, 35, 25, 0.28));
  box-shadow: inset 2px 0 rgba(157, 64, 49, 0.88);
}

.main-menu-chapter-option.locked {
  opacity: 0.45;
  cursor: not-allowed;
}

.main-menu-chapter-option > i {
  width: 27px;
  height: 27px;
  display: grid;
  place-items: center;
  color: #c2a66e;
  border: 1px solid rgba(202, 169, 101, 0.28);
  border-radius: 50%;
  background: rgba(4, 8, 7, 0.5);
  font-family: var(--font-brush);
  font-size: 15px;
  font-style: normal;
}

.main-menu-chapter-option > span {
  min-width: 0;
  display: flex;
  flex-direction: column;
}

.main-menu-chapter-option strong {
  overflow: hidden;
  font-size: var(--ming-font-small, 14px);
  letter-spacing: 0.08em;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.main-menu-chapter-option small {
  margin-top: 1px;
  overflow: hidden;
  color: #807665;
  font-size: 8.5px;
  font-weight: 650;
  letter-spacing: 0.06em;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.main-menu-chapter-option.active small { color: #a99978; }

.main-menu-shell[data-menu-chapter="jinyi"] .main-menu-background {
  object-position: center center;
  filter: saturate(0.78) contrast(1.08) brightness(0.82);
}

.main-menu-shell[data-menu-chapter="jinyi"] .main-menu-atmosphere {
  background:
    radial-gradient(ellipse at 26% 38%, rgba(54, 78, 76, 0.12), transparent 39%),
    linear-gradient(90deg, rgba(3, 7, 8, 0.95) 0%, rgba(4, 8, 9, 0.84) 22%, rgba(6, 10, 11, 0.45) 43%, rgba(5, 9, 10, 0.12) 67%, rgba(3, 6, 7, 0.03) 82%),
    linear-gradient(180deg, rgba(2, 5, 6, 0.67) 0%, transparent 24%, transparent 65%, rgba(2, 5, 6, 0.9) 100%);
}

.main-menu-shell[data-menu-chapter="jinyi"] .main-menu-kicker,
.main-menu-shell[data-menu-chapter="jinyi"] .main-menu-brand strong {
  color: #a9c0b8;
}

.main-menu-shell[data-menu-chapter="jinyi"] .main-menu-chapter-option.active {
  border-color: rgba(116, 159, 150, 0.52);
  background: linear-gradient(90deg, rgba(45, 83, 79, 0.36), rgba(29, 43, 40, 0.28));
  box-shadow: inset 2px 0 rgba(112, 160, 149, 0.86);
}

.main-menu-shell[data-menu-chapter="jinyi"] .main-menu-action.primary {
  border-color: rgba(142, 177, 160, 0.52);
  border-left-color: #719c90;
  background:
    linear-gradient(90deg, rgba(45, 82, 75, 0.38), rgba(70, 67, 45, 0.13) 55%, transparent),
    rgba(7, 12, 12, 0.8);
  box-shadow: inset 3px 0 rgba(100, 147, 136, 0.78), 0 12px 30px rgba(0, 0, 0, 0.26);
}

.main-menu-kicker {
  display: block;
  color: #b49b6c;
  font-size: var(--ming-font-small, 14px);
  font-weight: 700;
  letter-spacing: 0.3em;
  text-shadow: 0 2px 12px rgba(0, 0, 0, 0.9);
}

.main-menu-intro h1 {
  margin: 6px 0 0;
  color: #eee2c8;
  font-family: var(--font-brush);
  font-size: clamp(62px, 7vw, 92px);
  font-weight: 400;
  line-height: 0.91;
  letter-spacing: 0.045em;
  text-shadow: 0 5px 22px rgba(0, 0, 0, 0.78), 0 0 42px rgba(204, 166, 100, 0.05);
}

.main-menu-intro h1 span {
  display: block;
  margin-top: 2px;
  color: #f2e6ce;
}

.main-menu-intro p {
  max-width: 455px;
  margin: 17px 0 0;
  color: #c0b5a1;
  font-size: var(--ming-font-body, 16px);
  font-weight: 520;
  line-height: 1.78;
  letter-spacing: 0.035em;
  text-shadow: 0 2px 10px rgba(0, 0, 0, 0.96);
}

.main-menu-intro > i {
  display: block;
  width: min(405px, 88%);
  height: 2px;
  margin-top: 16px;
  background: linear-gradient(90deg, #9d4031 0 12%, rgba(206, 172, 103, 0.52) 12% 54%, transparent 100%);
}

.main-menu-actions {
  width: min(438px, 100%);
  display: grid;
  gap: 7px;
}

.main-menu-mobile-manifesto { display: none; }

.main-menu-action {
  width: 100%;
  min-height: 60px;
  display: grid;
  grid-template-columns: 43px minmax(0, 1fr) 20px;
  align-items: center;
  gap: 12px;
  padding: 7px 14px 7px 8px;
  color: #cfc3aa;
  border: 1px solid rgba(205, 179, 123, 0.22);
  border-left-color: rgba(205, 179, 123, 0.46);
  border-radius: 2px 5px 5px 2px;
  background:
    linear-gradient(90deg, rgba(61, 43, 27, 0.17), transparent 64%),
    rgba(5, 9, 8, 0.62);
  box-shadow: inset 0 0 0 1px rgba(255, 245, 214, 0.015), 0 9px 26px rgba(0, 0, 0, 0.18);
  backdrop-filter: blur(10px);
  text-align: left;
  cursor: pointer;
  transition: transform 150ms ease, border-color 150ms ease, background 150ms ease, color 150ms ease;
}

.main-menu-action:hover,
.main-menu-action:focus-visible {
  color: #f1e4c9;
  border-color: rgba(220, 188, 119, 0.58);
  background:
    linear-gradient(90deg, rgba(111, 70, 34, 0.3), transparent 68%),
    rgba(7, 12, 10, 0.82);
  transform: translateX(6px);
}

.main-menu-action.primary {
  min-height: 66px;
  color: #f1e4c9;
  border-color: rgba(217, 183, 112, 0.56);
  border-left-color: #a64a39;
  background:
    linear-gradient(90deg, rgba(124, 59, 41, 0.34), rgba(92, 65, 34, 0.15) 52%, transparent),
    rgba(9, 13, 11, 0.78);
  box-shadow: inset 3px 0 rgba(154, 61, 46, 0.72), 0 12px 30px rgba(0, 0, 0, 0.24);
}

.main-menu-action.primary strong {
  font-size: 17px;
}

.main-menu-action:disabled {
  color: #776f61;
  border-color: rgba(172, 153, 118, 0.12);
  background: rgba(5, 8, 7, 0.46);
  box-shadow: none;
  cursor: not-allowed;
  filter: saturate(0.35);
  transform: none;
}

.main-menu-action-mark {
  width: 40px;
  height: 40px;
  display: grid;
  place-items: center;
  color: #d5b873;
  border: 1px solid rgba(210, 177, 105, 0.28);
  border-radius: 50%;
  background: rgba(8, 11, 10, 0.62);
  font-family: var(--font-brush);
  font-size: 21px;
}

.main-menu-action.primary .main-menu-action-mark {
  color: #f0d39b;
  border-color: rgba(196, 106, 77, 0.62);
  background: rgba(112, 43, 34, 0.48);
}

.main-menu-action > span:nth-child(2) {
  min-width: 0;
  display: flex;
  flex-direction: column;
  gap: 2px;
}

.main-menu-action strong {
  font-size: 16px;
  font-weight: 700;
  letter-spacing: 0.12em;
}

.main-menu-action small {
  overflow: hidden;
  color: #8f8574;
  font-size: var(--ming-font-small, 14px);
  font-weight: 550;
  letter-spacing: 0.04em;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.main-menu-action > i {
  color: #9f8a63;
  font-family: serif;
  font-size: 25px;
  font-style: normal;
  text-align: right;
}

.main-menu-footer {
  display: flex;
  align-items: center;
  gap: 18px;
  color: #898071;
  font-size: 10.5px;
  font-weight: 600;
  letter-spacing: 0.08em;
  text-shadow: 0 2px 8px rgba(0, 0, 0, 0.9);
}

.main-menu-footer > span + span {
  padding-left: 18px;
  border-left: 1px solid rgba(205, 179, 123, 0.14);
}

.main-menu-ai-status {
  display: inline-flex;
  align-items: center;
  gap: 7px;
  color: #a56f61;
}

.main-menu-ai-status > i {
  width: 6px;
  height: 6px;
  border-radius: 50%;
  background: #955044;
  box-shadow: 0 0 0 3px rgba(149, 80, 68, 0.12);
}

.main-menu-ai-status.connected {
  color: #81ad99;
}

.main-menu-ai-status.connected > i {
  background: #76a48f;
  box-shadow: 0 0 0 3px rgba(118, 164, 143, 0.13);
}

.main-menu-ai-status.configured { color: #c2a664; }
.main-menu-ai-status.configured > i { background: #b7964e; box-shadow: 0 0 0 3px rgba(183, 150, 78, 0.13); }

.menu-home-button {
  position: relative;
  width: 58px;
  height: 54px;
  flex: 0 0 58px;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 1px;
  padding: 0;
  color: #c9b99b;
  border: 1px solid rgba(205, 179, 123, 0.3);
  border-radius: 6px;
  background: rgba(16, 21, 19, 0.76);
  cursor: pointer;
}

.menu-home-button:hover {
  color: #f0dfbd;
  border-color: rgba(219, 185, 116, 0.56);
}

.menu-home-button > span {
  font-family: var(--font-brush);
  font-size: 23px;
  line-height: 1;
}

.menu-home-button > small {
  color: #8f826c;
  font-size: var(--ming-font-small, 14px);
  font-weight: 700;
  line-height: 1;
}

@media (max-width: 760px) {
  body:has(.main-menu-shell) { overflow-y: auto; }

  .main-menu-background {
    object-position: 64% center;
    filter: saturate(0.78) contrast(1.03) brightness(0.72);
  }

  .main-menu-atmosphere {
    background:
      linear-gradient(90deg, rgba(4, 7, 7, 0.92), rgba(5, 8, 7, 0.64) 70%, rgba(4, 6, 6, 0.26)),
      linear-gradient(180deg, rgba(3, 5, 5, 0.76) 0%, rgba(3, 6, 5, 0.28) 18%, rgba(4, 6, 5, 0.24) 52%, rgba(3, 5, 5, 0.97) 100%);
  }

  .main-menu-frame {
    min-height: 100svh;
    gap: 8px;
    padding: 14px 15px 12px;
  }

  .main-menu-brand { gap: 8px; }
  .main-menu-brand > img.main-menu-survival-seal { width: 49px; height: 49px; flex-basis: 49px; }
  .main-menu-product-name span { font-size: var(--ming-font-small, 14px); letter-spacing: 0.18em; }
  .main-menu-product-name strong { margin-top: 5px; font-size: var(--ming-font-small, 14px); }
  .main-menu-lineage-divider { height: 34px; margin: 0; }
  .main-menu-lineage { grid-template-columns: 112px; }
  .main-menu-lineage small { display: block; font-size: var(--ming-font-small, 14px); letter-spacing: 0.06em; }
  .main-menu-parent-logo { width: 112px; }

  .main-menu-token {
    min-width: 108px;
    min-height: 44px;
    gap: 5px;
    padding: 4px 8px 4px 4px;
  }

  .main-menu-token img { width: 34px; height: 34px; }
  .main-menu-token small { display: none; }
  .main-menu-token strong { margin: 0; font-size: 16px; }
  .main-menu-token-add { min-width: 44px; min-height: 44px; }

  .main-menu-content {
    width: 100%;
    min-width: 0;
    align-content: start;
    gap: 13px;
    margin-left: 0;
    padding: 8px 0 6px;
  }

  .main-menu-chapter-switcher {
    width: 100%;
    gap: 5px;
    margin-bottom: 12px;
    padding: 4px;
    background: rgba(4, 8, 7, 0.7);
    box-shadow: 0 10px 28px rgba(0, 0, 0, 0.24);
  }

  .main-menu-chapter-option {
    min-height: 48px;
    grid-template-columns: 27px minmax(0, 1fr);
    gap: 6px;
    padding: 5px 6px;
  }

  .main-menu-chapter-option > i { width: 26px; height: 26px; font-size: 14px; }
  .main-menu-chapter-option strong { font-size: var(--ming-font-small, 14px); letter-spacing: 0.03em; }
  .main-menu-chapter-option small { margin-top: 2px; font-size: var(--ming-font-small, 14px); }

  .main-menu-intro { padding-left: 3px; }
  .main-menu-kicker { font-size: var(--ming-font-small, 14px); letter-spacing: 0.2em; }
  .main-menu-intro h1 { margin-top: 6px; font-size: clamp(50px, 14vw, 60px); line-height: 0.9; }
  .main-menu-intro p { max-width: 355px; margin-top: 11px; font-size: var(--ming-font-body, 16px); line-height: 1.64; }
  .main-menu-intro > i { margin-top: 10px; }

  .main-menu-actions { width: 100%; max-width: 410px; gap: 7px; }
  .main-menu-action { min-height: 60px; grid-template-columns: 42px minmax(0, 1fr) 16px; gap: 10px; padding-right: 11px; background-color: rgba(5, 9, 8, 0.74); }
  .main-menu-action.primary { min-height: 62px; }
  .main-menu-action:hover,
  .main-menu-action:focus-visible { transform: none; }
  .main-menu-action-mark { width: 39px; height: 39px; font-size: 20px; }
  .main-menu-action strong { font-size: 16px; }
  .main-menu-action small { font-size: var(--ming-font-small, 14px); }

  .main-menu-mobile-manifesto {
    width: 100%;
    display: grid;
    gap: 4px;
    padding: 12px 14px 13px;
    border: 1px solid rgba(112, 158, 136, 0.24);
    border-left: 2px solid rgba(122, 172, 148, 0.64);
    border-radius: 2px 5px 5px 2px;
    background: linear-gradient(90deg, rgba(13, 27, 21, 0.82), rgba(4, 9, 7, 0.62));
    box-shadow: 0 10px 28px rgba(0, 0, 0, 0.2);
    backdrop-filter: blur(10px);
  }

  .main-menu-mobile-manifesto > header { display: flex; align-items: center; gap: 8px; }
  .main-menu-mobile-manifesto > header span { color: #9dc9b1; font-size: var(--ming-font-small, 14px); font-weight: 800; letter-spacing: 0.12em; }
  .main-menu-mobile-manifesto > header small { color: #75877d; font-size: var(--ming-font-small, 14px); }
  .main-menu-mobile-manifesto > strong { color: #e2d5b8; font-size: 15px; line-height: 1.45; }
  .main-menu-mobile-manifesto > p { margin: 0; color: #9f9889; font-size: var(--ming-font-body, 16px); line-height: 1.5; }

  .main-menu-footer { gap: 10px; font-size: var(--ming-font-small, 14px); }
  .main-menu-footer > span + span { padding-left: 10px; }
  .main-menu-footer > span:last-child { display: none; }

  .menu-home-button { width: 46px; height: 42px; flex-basis: 46px; }
  .menu-home-button > span { font-size: 21px; }
  .menu-home-button > small { display: none; }
}

@media (max-width: 420px) {
  .main-menu-frame { padding-right: 12px; padding-left: 12px; }
  .main-menu-product-name { display: none; }
  .main-menu-lineage-divider { display: block; }
  .main-menu-lineage { display: grid; }
  .main-menu-parent-logo { width: 106px; }
  .main-menu-token { min-width: 88px; }
  .main-menu-intro h1 { font-size: 52px; }
  .main-menu-intro p { max-width: 315px; }
  .main-menu-action small { max-width: 245px; }
}

@media (max-width: 360px) {
  .app-shell .header-wallets .settings-button { display: none; }
  .main-menu-intro h1 { font-size: 47px; }
  .main-menu-intro p { font-size: var(--ming-font-body, 16px); }
  .main-menu-action { min-height: 55px; }
  .main-menu-action.primary { min-height: 55px; }
  .main-menu-action small { max-width: 205px; }
}

@media (min-width: 761px) and (max-height: 760px) {
  .main-menu-frame { padding-top: 16px; padding-bottom: 12px; }
  .main-menu-brand > img.main-menu-survival-seal { width: 54px; height: 54px; flex-basis: 54px; }
  .main-menu-content { gap: 14px; }
  .main-menu-intro h1 { font-size: 58px; }
  .main-menu-intro p { margin-top: 10px; line-height: 1.55; }
  .main-menu-intro > i { margin-top: 10px; }
  .main-menu-actions { gap: 5px; }
  .main-menu-action { min-height: 52px; }
  .main-menu-action.primary { min-height: 52px; }
}

/* V0.8 · AI 世界回合、可追溯事件与专属背景 */
.ai-event-card {
  background:
    linear-gradient(90deg, rgba(7, 10, 9, 0.98), rgba(7, 10, 9, 0.9) 49%, rgba(7, 10, 9, 0.36)),
    linear-gradient(180deg, transparent 53%, rgba(5, 7, 7, 0.9)),
    var(--event-image, url('/assets/art/events/event-common-road-v2.png')) var(--event-focal, right center) / cover;
}

.ai-event-card.origin-historical { border-color: rgba(211, 177, 105, 0.58); }
.ai-event-card.origin-player-caused { border-color: rgba(129, 177, 157, 0.58); }
.ai-event-card.origin-alternate { border-color: rgba(159, 118, 169, 0.58); }

.event-origin {
  display: flex;
  align-items: center;
  gap: 8px;
}

.event-origin > b {
  padding: 5px 9px;
  color: #e0c88e;
  border: 1px solid rgba(210, 181, 118, 0.38);
  background: rgba(28, 20, 10, 0.65);
  font-size: var(--ming-font-small, 14px);
  font-weight: 650;
  letter-spacing: 0.08em;
  white-space: nowrap;
}

.history-source {
  width: min(760px, 100%);
  display: grid;
  grid-template-columns: auto auto minmax(180px, 1fr);
  align-items: center;
  gap: 8px;
  margin-top: 10px;
  padding: 6px 9px;
  border-left: 2px solid var(--gold-500);
  background: rgba(21, 16, 9, 0.58);
}

.history-source span { color: var(--gold-400); font-size: var(--ming-font-small, 14px); letter-spacing: 0.1em; }
.history-source strong { color: var(--paper-200); font-size: var(--ming-font-small, 14px); }
.history-source > small {
  grid-column: 1 / -1;
  overflow: hidden;
  color: var(--paper-500);
  font-size: var(--ming-font-small, 14px);
  text-overflow: ellipsis;
  white-space: nowrap;
}

.case-scene-signature {
  width: min(860px, 100%);
  display: grid;
  grid-template-columns: auto auto minmax(180px, 1fr);
  align-items: center;
  gap: 7px;
  margin-top: 8px;
  padding: 6px 8px;
  border-left: 2px solid rgba(208, 167, 83, 0.82);
  background: #17140d;
}

.case-scene-signature > span {
  color: #d7ba73;
  font-size: var(--ming-font-small, 14px);
  font-weight: 760;
  letter-spacing: 0.12em;
  white-space: nowrap;
}

.case-scene-signature > div {
  display: flex;
  gap: 5px;
}

.case-scene-signature b {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  padding: 3px 6px;
  color: #e5d7b4;
  border: 1px solid rgba(202, 164, 88, 0.28);
  background: #211b10;
  font-size: var(--ming-font-small, 14px);
  font-weight: 650;
  white-space: nowrap;
}

.case-scene-signature b > i,
.case-scene-signature p > i {
  color: #9aaf9f;
  font-size: var(--ming-font-small, 14px);
  font-style: normal;
  letter-spacing: 0.08em;
}

.case-scene-signature p {
  min-width: 0;
  margin: 0;
  overflow: hidden;
  color: #c8d6cf;
  font-size: var(--ming-font-body, 16px);
  line-height: 1.45;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.case-scene-signature p > i { margin-right: 6px; }

.case-continuity-ledger {
  width: min(860px, 100%);
  display: grid;
  grid-template-columns: auto minmax(0, 1fr);
  align-items: start;
  gap: 8px;
  margin-top: 8px;
  padding: 6px 8px;
  border-left: 2px solid rgba(125, 174, 153, 0.76);
  background: var(--folio-card, rgba(8, 18, 15, 0.76));
}

.case-continuity-ledger > span {
  padding-top: 4px;
  color: var(--folio-muted, #9fc9b5);
  font-size: var(--ming-font-small, 14px);
  letter-spacing: 0.12em;
  white-space: nowrap;
}

.case-continuity-ledger > div {
  min-width: 0;
  display: flex;
  flex-wrap: wrap;
  gap: 5px;
}

.case-continuity-ledger b {
  min-width: 0;
  max-width: min(100%, 360px);
  display: inline-flex;
  align-items: center;
  gap: 5px;
  padding: 3px 7px;
  overflow: hidden;
  color: var(--folio-ink, #c7d8cf);
  border: 1px solid rgba(126, 164, 146, 0.26);
  background: var(--folio-card, #101815);
  font-size: var(--ming-font-small, 14px);
  font-weight: 520;
  line-height: 1.45;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.case-continuity-ledger b.current-action {
  color: var(--folio-ink, #ead7a7);
  border-color: var(--folio-rule, rgba(199, 164, 91, 0.38));
  background: var(--folio-selected-surface, #1a1710);
}

.case-continuity-ledger b > i {
  flex: 0 0 auto;
  color: var(--folio-ink, #83b69e);
  font-size: var(--ming-font-small, 14px);
  font-style: normal;
  letter-spacing: 0.08em;
}

.case-continuity-ledger b.current-action > i { color: var(--folio-ink, #d4b875); }

.history-propagation {
  min-width: 0;
  display: flex;
  align-items: center;
  justify-self: end;
  gap: 6px;
  padding: 3px 7px;
  color: #d8c9ac;
  border: 1px solid rgba(194, 163, 103, 0.3);
  background: rgba(5, 10, 9, 0.76);
  font-size: var(--ming-font-small, 14px);
  white-space: nowrap;
}
.history-propagation > i {
  width: 20px;
  height: 20px;
  display: grid;
  place-items: center;
  color: #ead498;
  border: 1px solid currentColor;
  border-radius: 50%;
  font-family: var(--font-brush);
  font-size: 14px;
  font-style: normal;
}
.history-propagation > em {
  max-width: 128px;
  overflow: hidden;
  color: var(--jade-300);
  font-style: normal;
  text-overflow: ellipsis;
}
.history-propagation.propagation-distant { border-style: dashed; opacity: 0.9; }

.chronicle-ledger {
  display: flex;
  flex-wrap: wrap;
  gap: 7px;
  margin: -12px 0 20px;
  padding: 10px;
  border: 1px solid rgba(210, 181, 118, 0.18);
  background: rgba(12, 17, 15, 0.7);
}

.chronicle-ledger span { width: 100%; color: var(--gold-400); font-size: var(--ming-font-small, 14px); letter-spacing: 0.12em; }
.chronicle-ledger b,
.chronicle-ledger em { padding: 4px 8px; color: var(--paper-300); border: 1px solid rgba(255, 255, 255, 0.08); font-size: var(--ming-font-small, 14px); font-style: normal; }
.chronicle-ledger em { color: var(--jade-300); }

.turn-transition {
  position: fixed;
  inset: 0;
  z-index: 1600;
  display: grid;
  place-items: center;
  overflow: hidden;
  background: #050807 url('/assets/art/events/turn-passage-v1.png') center / cover no-repeat;
  animation: turn-curtain-in 380ms ease-out both;
}

.turn-transition.revealed { animation: turn-curtain-in 280ms ease-out both; }
.turn-transition-shade { position: absolute; inset: 0; background: radial-gradient(circle, rgba(7, 10, 9, 0.35), rgba(3, 5, 4, 0.93)); }
.turn-transition.revealed .turn-transition-shade { background: #050807; }

.turn-transition-copy {
  position: relative;
  width: min(760px, calc(100% - 44px));
  padding: 34px;
  color: var(--paper-100);
  border-top: 1px solid rgba(220, 190, 126, 0.55);
  border-bottom: 1px solid rgba(220, 190, 126, 0.28);
  background: linear-gradient(90deg, transparent, rgba(3, 6, 5, 0.76) 18% 82%, transparent);
  text-align: center;
}

.turn-transition-copy span { color: var(--gold-300); font-size: var(--ming-font-small, 14px); font-weight: 700; letter-spacing: 0.48em; }
.turn-transition-copy h2 { margin: 12px 0 4px; font-family: var(--font-brush); font-size: clamp(46px, 7vw, 82px); font-weight: 400; letter-spacing: 0.12em; }
.turn-transition-copy p { margin: 0; color: var(--paper-300); font-size: var(--ming-font-body, 16px); }
.turn-transition.thinking .turn-transition-copy { width: min(880px, calc(100% - 44px)); }
.turn-transition.thinking .turn-transition-copy h2 { font-size: clamp(40px, 6vw, 70px); }
.turn-thinking-guide {
  width: min(760px, 100%);
  display: grid;
  gap: 13px;
  margin: 18px auto 0;
  padding: 15px;
  border: 1px solid rgba(117, 165, 142, 0.26);
  background: linear-gradient(115deg, rgba(6, 21, 15, 0.82), rgba(8, 12, 10, 0.72));
  box-shadow: inset 3px 0 rgba(102, 164, 134, 0.48), 0 18px 45px rgba(0, 0, 0, 0.2);
  text-align: left;
}
.turn-thinking-guide > p { color: #c4baa6; font-size: var(--ming-font-body, 16px); line-height: 1.7; }
.turn-thinking-guide ol {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 8px;
  margin: 0;
  padding: 0;
  list-style: none;
}
.turn-thinking-guide li {
  min-width: 0;
  display: grid;
  grid-template-columns: 34px minmax(0, 1fr);
  align-items: center;
  gap: 9px;
  padding: 9px;
  border: 1px solid rgba(205, 177, 112, 0.16);
  background: rgba(3, 8, 6, 0.58);
}
.turn-thinking-guide li > i {
  width: 32px;
  height: 32px;
  display: grid;
  place-items: center;
  color: #ddc27f;
  border: 1px solid rgba(216, 185, 116, 0.36);
  border-radius: 50%;
  font-family: var(--font-brush);
  font-size: 19px;
  font-style: normal;
}
.turn-thinking-guide li > span { min-width: 0; display: grid; gap: 3px; color: inherit; letter-spacing: 0; }
.turn-thinking-guide li b { color: #eadfc8; font-size: var(--ming-font-small, 14px); }
.turn-thinking-guide li small { color: #95a99d; font-size: var(--ming-font-small, 14px); line-height: 1.45; }
.turn-time-ledger {
  width: min(680px, 100%);
  display: grid;
  grid-template-columns: minmax(164px, 0.72fr) minmax(0, 1.5fr);
  align-items: stretch;
  gap: 8px;
  margin: 11px auto 0;
  padding: 7px;
  border: 1px solid rgba(203, 171, 107, 0.24);
  background: linear-gradient(105deg, rgba(82, 62, 28, 0.16), rgba(7, 18, 14, 0.72));
  box-shadow: inset 0 0 24px rgba(0, 0, 0, 0.2);
  text-align: left;
}
.turn-time-ledger span { letter-spacing: 0; }
.turn-time-duration {
  min-width: 0;
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  grid-template-rows: auto auto;
  align-items: end;
  gap: 0 8px;
  padding: 7px 11px;
  border-left: 3px solid var(--outcome-accent, var(--gold-300));
  background: var(--outcome-soft, rgba(161, 145, 112, 0.13));
}
.turn-time-duration > small { grid-column: 1 / -1; color: #a99d86; font-size: var(--ming-font-small, 14px); font-weight: 700; letter-spacing: 0.12em; }
.turn-time-duration > b { color: #f0dfb8; font-family: var(--font-display); font-size: 27px; line-height: 1.15; }
.turn-time-duration > b em { margin-left: 4px; color: #c8b68c; font-family: var(--font-serif); font-size: var(--ming-font-small, 14px); font-style: normal; font-weight: 650; }
.turn-time-duration > b.no-time { font-size: 19px; }
.turn-time-duration > span { align-self: center; color: #99b7a8; font-size: var(--ming-font-small, 14px); font-weight: 680; white-space: nowrap; }
.turn-time-range {
  min-width: 0;
  display: grid;
  grid-template-columns: minmax(0, 1fr) 34px minmax(0, 1fr);
  align-items: center;
  gap: 7px;
  padding: 6px 8px;
  border: 1px solid rgba(119, 157, 137, 0.2);
  background: rgba(4, 11, 8, 0.56);
}
.turn-time-range > span { min-width: 0; display: grid; grid-template-columns: 24px minmax(0, 1fr); align-items: center; gap: 7px; color: inherit; }
.turn-time-range small { width: 24px; height: 24px; display: grid; place-items: center; color: #d4b971; border: 1px solid rgba(209, 177, 105, 0.32); border-radius: 50%; font-size: var(--ming-font-small, 14px); font-weight: 800; }
.turn-time-range b {
  min-width: 0;
  color: #d9ceb6;
  font-size: var(--ming-font-small, 14px);
  font-variant-numeric: tabular-nums;
  line-height: 1.35;
  overflow-wrap: anywhere;
}
.turn-time-range > i { color: var(--outcome-accent, #a9bbaa); font-family: var(--font-display); font-size: 23px; font-style: normal; text-align: center; }
.turn-action-summary {
  width: min(680px, 100%);
  display: grid;
  grid-template-columns: auto minmax(0, 1fr);
  align-items: start;
  gap: 10px;
  margin: 14px auto 0;
  padding: 9px 13px;
  border-left: 3px solid var(--outcome-accent, var(--gold-300));
  background: rgba(19, 31, 25, 0.62);
  text-align: left;
}
.turn-action-summary b { color: var(--gold-300); font-size: var(--ming-font-small, 14px); white-space: nowrap; }
.turn-action-summary span { color: var(--paper-200); font-size: var(--ming-font-small, 14px); line-height: 1.6; letter-spacing: 0; }
.turn-transition-copy blockquote {
  width: min(680px, 100%);
  display: grid;
  gap: 5px;
  margin: 18px auto 0;
  padding: 12px 18px;
  border: 1px solid rgba(211, 181, 119, 0.24);
  background: rgba(4, 7, 6, 0.62);
  text-align: left;
}
.turn-transition-copy blockquote b { color: var(--gold-300); font-size: var(--ming-font-body, 16px); }
.turn-transition-copy blockquote span { color: var(--paper-200); font-size: var(--ming-font-body, 16px); line-height: 1.65; }
.turn-transition-copy blockquote small {
  margin-top: 3px;
  color: var(--jade-300);
  font-size: var(--ming-font-small, 14px);
  font-weight: 650;
  line-height: 1.55;
}
.farm-tool-wear-reminder {
  min-width: 0;
  display: grid;
  grid-template-columns: 76px minmax(0, 1fr) 150px;
  align-items: stretch;
  gap: 12px;
  margin-top: 10px;
  padding: 11px;
  color: var(--folio-ink, #d7cdb8);
  border: 1px solid rgba(164, 183, 151, 0.3);
  border-left: 3px solid #86a98f;
  background: var(--folio-card, #0c1711);
  font-size: var(--ming-font-small, 14px);
}
.farm-tool-wear-reminder > figure {
  width: 76px;
  min-height: 94px;
  display: grid;
  place-items: center;
  margin: 0;
  border: 1px solid rgba(202, 172, 104, 0.26);
  background: #11170f;
}
.farm-tool-wear-reminder > figure img { width: 68px; height: 86px; object-fit: contain; filter: drop-shadow(0 6px 9px rgba(0, 0, 0, 0.48)); }
.farm-tool-wear-reminder > div { min-width: 0; display: grid; align-content: center; gap: 4px; }
.farm-tool-wear-reminder > div > header { display: flex; flex-wrap: wrap; align-items: baseline; justify-content: space-between; gap: 4px 9px; }
.farm-tool-wear-reminder > div > header span { color: var(--folio-muted, #92b69e); font-size: var(--ming-font-small, 14px); font-weight: 760; letter-spacing: 0.08em; }
.farm-tool-wear-reminder > div > header b { color: var(--folio-ink, #d8b86f); font-size: var(--ming-font-small, 14px); }
.farm-tool-wear-reminder h3 { margin: 0; color: var(--folio-ink, #efdfbd); font-size: 19px; line-height: 1.25; }
.turn-transition-copy blockquote .farm-tool-wear-reminder p { margin: 0; color: var(--folio-muted, #d2c7b2); font-size: var(--ming-font-body, 16px); line-height: 1.5; }
.farm-tool-wear-reminder > div > i { height: 7px; overflow: hidden; border: 1px solid rgba(143, 174, 153, 0.3); background: var(--folio-card, #030806); }
.farm-tool-wear-reminder > div > i b { display: block; height: 100%; background: var(--folio-card, #789c82); }
.farm-tool-wear-reminder > div > strong { color: var(--folio-ink, #b8cdbf); font-size: var(--ming-font-small, 14px); font-weight: 650; line-height: 1.55; }
.farm-tool-wear-reminder > aside { min-width: 0; display: grid; align-content: center; gap: 5px; padding: 9px; border-left: 1px solid rgba(198, 166, 96, 0.2); background: var(--folio-card, #11150f); }
.farm-tool-wear-reminder > aside b { color: var(--folio-ink, #d7bd79); font-size: var(--ming-font-small, 14px); }
.farm-tool-wear-reminder > aside small { margin: 0; color: var(--folio-muted, #a9a08d); font-size: var(--ming-font-small, 14px); font-weight: 560; line-height: 1.5; }
.turn-change-ledger {
  min-width: 0;
  display: grid;
  gap: 7px;
  margin-top: 7px;
  padding: 9px;
  border: 1px solid rgba(195, 164, 102, 0.2);
  background: linear-gradient(115deg, rgba(23, 35, 29, 0.72), rgba(4, 8, 7, 0.72));
}
.turn-change-ledger > header,
.turn-change-group > header {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 10px;
}
.turn-change-ledger > header { padding-bottom: 6px; border-bottom: 1px solid rgba(198, 166, 102, 0.16); }
.turn-change-ledger > header b { color: #d8bb7a; font-size: var(--ming-font-small, 14px); letter-spacing: 0.08em; }
.turn-change-ledger > header small { margin: 0; color: #779487; font-size: var(--ming-font-small, 14px); font-weight: 600; }
.turn-change-ledger > div {
  min-width: 0;
  max-height: none;
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  align-items: start;
  gap: 7px;
  overflow: visible;
}
.turn-change-group {
  min-width: 0;
  display: grid;
  align-content: start;
  gap: 5px;
  padding: 7px;
  border: 1px solid rgba(255, 255, 255, 0.065);
  background: rgba(1, 5, 4, 0.48);
}
.turn-change-group.survival { border-top-color: rgba(104, 165, 139, 0.48); }
.turn-change-group.materials { border-top-color: rgba(196, 155, 82, 0.52); }
.turn-change-group.results { border-top-color: rgba(133, 179, 157, 0.55); }
.turn-change-group > header b { color: #b9aa8d; font-size: var(--ming-font-small, 14px); }
.turn-change-group > header small { margin: 0; color: #6e796f; font-size: var(--ming-font-small, 14px); font-weight: 600; }
.turn-change-group > div { min-width: 0; display: grid; gap: 4px; }
.turn-change-entry {
  min-width: 0;
  display: grid;
  grid-template-columns: 24px minmax(0, 1fr);
  align-items: center;
  gap: 6px;
  padding: 5px 6px;
  border: 1px solid rgba(255, 255, 255, 0.055);
  background: rgba(255, 255, 255, 0.018);
}
.turn-change-entry > i {
  width: 24px;
  height: 24px;
  display: grid;
  place-items: center;
  color: #c6b386;
  border: 1px solid rgba(198, 171, 112, 0.28);
  border-radius: 50%;
  background: rgba(82, 61, 27, 0.22);
  font: 700 14px/1 var(--font-serif);
}
.turn-change-entry > figure {
  position: relative;
  width: 30px;
  height: 30px;
  display: grid;
  place-items: center;
  overflow: hidden;
  margin: 0;
  border: 1px solid rgba(198, 171, 112, 0.24);
  background: radial-gradient(circle, rgba(124, 91, 40, 0.24), rgba(4, 8, 7, 0.82));
}
.turn-change-entry > figure img { width: 27px; height: 27px; object-fit: contain; }
.turn-change-entry > figure i {
  position: absolute;
  right: -1px;
  bottom: -1px;
  width: 13px;
  height: 13px;
  display: grid;
  place-items: center;
  color: #f0d395;
  border: 1px solid rgba(203, 166, 91, 0.48);
  background: rgba(73, 49, 18, 0.94);
  font: 700 14px/1 var(--font-serif);
  font-style: normal;
}
.turn-change-entry > span { min-width: 0; display: grid; gap: 1px; letter-spacing: 0; }
.turn-change-entry > span b { overflow: hidden; color: #d7cbb3; font-size: var(--ming-font-small, 14px); text-overflow: ellipsis; white-space: nowrap; }
.turn-change-entry > span small { overflow: visible; margin: 0; color: #928a7b; font-size: var(--ming-font-small, 14px); font-weight: 560; line-height: 1.3; white-space: normal; }
.turn-change-entry.positive > i { color: #9fd0b8; border-color: rgba(112, 179, 148, 0.4); background: rgba(49, 100, 78, 0.23); }
.turn-change-entry.negative > i { color: #e09380; border-color: rgba(191, 92, 71, 0.42); background: rgba(112, 43, 33, 0.25); }
.turn-change-entry.spent > i { color: #d8b86f; border-color: rgba(192, 150, 73, 0.44); background: rgba(108, 77, 26, 0.22); }
.turn-change-entry.need > span b,
.turn-change-entry.body > span b { color: #c5d9ce; }
.turn-change-entry.item > span b,
.turn-change-entry.item-condition > span b { color: #ddc589; }
.turn-change-entry.item,
.turn-change-entry.item-condition { grid-template-columns: 30px minmax(0, 1fr); }
.turn-change-entry.vehicle > span b { color: var(--folio-muted, #a9d2bf); }
.turn-transition-copy .turn-change-ledger b,
.turn-transition-copy .turn-change-ledger small,
.turn-transition-copy .turn-outcome-mark small { font-size: var(--ming-font-small, 14px); }
.turn-transition-copy > i { width: 180px; height: 2px; display: block; overflow: hidden; margin: 22px auto 0; background: rgba(212, 181, 117, 0.15); }
.turn-transition-copy > i::after { content: ''; width: 38%; height: 100%; display: block; background: var(--gold-300); animation: turn-progress 1.3s ease-in-out infinite; }

.turn-result-continue {
  min-width: 190px;
  min-height: 48px;
  margin: 18px auto 0;
  padding: 10px 22px;
  color: #f1e3c5;
  border: 1px solid color-mix(in srgb, var(--outcome-accent, var(--gold-300)) 58%, transparent);
  border-radius: 3px;
  background: linear-gradient(180deg, color-mix(in srgb, var(--outcome-accent, #6d8f7d) 28%, #17251f), #111a16);
  box-shadow: 0 9px 24px rgba(0, 0, 0, 0.32), inset 0 1px rgba(255, 255, 255, 0.08);
  font-family: var(--font-display);
  font-size: 16px;
  font-weight: 750;
  letter-spacing: 0.1em;
  cursor: pointer;
}
.turn-result-continue:hover,
.turn-result-continue:focus-visible { border-color: var(--outcome-accent, var(--gold-300)); transform: translateY(-1px); }
.turn-transition.revealed .turn-transition-copy > i { display: none; }

@keyframes turn-curtain-in { from { opacity: 0; transform: scale(1.02); } to { opacity: 1; transform: scale(1); } }
@keyframes turn-reveal { 0% { opacity: 0; } 10%, 88% { opacity: 1; } 100% { opacity: 0; } }
@keyframes turn-progress { 0% { transform: translateX(-110%); } 100% { transform: translateX(370%); } }

@media (min-width: 1080px) and (min-height: 680px) {
  .campaign-shell .ai-event-card { padding: 16px 26px 14px; }
  .campaign-shell .event-heading h2 { margin-top: 2px; font-size: clamp(36px, 2.8vw, 44px); line-height: 1.05; }
  .campaign-shell .event-narrative { max-width: 740px; margin-top: 8px; font-size: var(--ming-font-body, 16px); line-height: 1.58; }
  .campaign-shell .event-state-read { margin-top: 7px; }
  .campaign-shell .event-state-read span,
  .campaign-shell .event-state-read b { padding: 2px 8px; font-size: var(--ming-font-small, 14px); }
  .campaign-shell .history-source { margin-top: 6px; padding-block: 4px; }
  .campaign-shell .choice-list { gap: 4px; padding-top: 4px; }
  .campaign-shell .choice-list.choice-count-4 { max-width: 850px; grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .campaign-shell .choice-list.choice-count-4 button { height: 56px; min-height: 56px; grid-template-rows: auto auto; padding: 6px 9px; }
  .campaign-shell .choice-list.choice-count-4 .choice-copy { justify-content: flex-start; }
  .campaign-shell .choice-list.choice-count-4 .choice-copy strong { display: block; overflow: hidden; font-size: var(--ming-font-body, 16px); line-height: 1.2; text-overflow: ellipsis; white-space: nowrap; }
  .campaign-shell .choice-list.choice-count-4 .choice-copy small { display: block; overflow: hidden; font-size: var(--ming-font-small, 14px); line-height: 1.2; text-overflow: ellipsis; white-space: nowrap; }
  .campaign-shell .choice-list.choice-count-4 .choice-cost { font-size: var(--ming-font-small, 14px); line-height: 1; }
  .campaign-shell .free-action-intro,
  .campaign-shell .free-action-composer { height: 94px; min-height: 0; overflow: visible; }
  .campaign-shell .free-action-intro { align-content: center; }
  .campaign-shell .free-action-panel h3 { margin: 1px 0 0; font-size: 22px; line-height: 1.08; }
  .campaign-shell .free-action-panel p { display: block; font-size: var(--ming-font-body, 16px); line-height: 1.35; }
  .campaign-shell .free-action-flow { font-size: var(--ming-font-small, 14px); }
  .campaign-shell .free-action-composer { grid-template-columns: minmax(0, 1fr) 154px; grid-template-rows: 14px minmax(0, 1fr); column-gap: 8px; row-gap: 4px; }
  .campaign-shell .free-action-label { grid-column: 1; grid-row: 1; font-size: var(--ming-font-small, 14px); line-height: 1.2; }
  .campaign-shell .free-action-label b { font-size: var(--ming-font-small, 14px); }
  .campaign-shell .free-action-composer textarea { grid-column: 1; grid-row: 2; min-height: 76px; max-height: 76px; font-size: var(--ming-font-body, 16px); line-height: 1.35; }
  .campaign-shell .free-action-toolbar { grid-column: 2; grid-row: 1 / 3; align-items: stretch; flex-direction: column; justify-content: space-between; gap: 5px; margin-top: 0; }
  .campaign-shell .free-action-toolbar > small { display: grid; gap: 1px; font-size: var(--ming-font-small, 14px); line-height: 1.2; }
  .campaign-shell .free-action-composer button { width: 100%; min-height: 40px; height: 40px; }
  .campaign-shell .free-action-composer button > small { font-size: var(--ming-font-small, 14px); line-height: 1.05; }
}

@media (max-width: 760px) {
  .event-heading { align-items: flex-start; }
  .event-origin { flex-direction: column; align-items: flex-end; }
  .history-source { grid-template-columns: auto 1fr; }
  .history-source > small { grid-column: 1 / -1; }
  .history-propagation { grid-column: 1 / -1; justify-self: start; }
  .case-scene-signature { grid-template-columns: 1fr; gap: 5px; }
  .case-scene-signature > div { flex-wrap: wrap; }
  .case-scene-signature p { overflow: visible; text-overflow: clip; white-space: normal; }
  .case-continuity-ledger { grid-template-columns: 1fr; gap: 4px; }
  .case-continuity-ledger > span { padding-top: 0; }
  .case-continuity-ledger > div { display: grid; grid-template-columns: 1fr; }
  .case-continuity-ledger b { width: 100%; max-width: none; }
  .choice-list.choice-count-4 { grid-template-columns: 1fr; }
  .choice-cost { flex-wrap: wrap; }
  .turn-transition-copy { padding: 26px 12px; }
}

@media (prefers-reduced-motion: reduce) {
  .turn-transition,
  .turn-transition.revealed,
  .turn-transition-copy i::after { animation-duration: 1ms; animation-iteration-count: 1; }
}

/* V0.9 · 主系统与分支，不再把随从、小队、部队平铺为同级入口 */
.system-dock {
  display: grid;
  grid-template-rows: auto auto minmax(0, 1fr);
}
.system-dock.single-branch { grid-template-rows: auto minmax(0, 1fr); }

.system-groups,
.system-branches {
  display: grid;
  background: rgba(7, 11, 10, 0.7);
}

.system-groups {
  grid-template-columns: repeat(6, minmax(0, 1fr));
  border-bottom: 1px solid rgba(211, 181, 119, 0.2);
}

.system-groups button {
  min-width: 0;
  min-height: 48px;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  padding: 6px 5px;
  color: #9f947f;
  border: 0;
  border-right: 1px solid rgba(211, 181, 119, 0.14);
  background: transparent;
  cursor: pointer;
}

.system-groups button:last-child { border-right: 0; }
.system-groups button.active {
  color: #dec78f;
  background: linear-gradient(180deg, rgba(129, 95, 46, 0.25), rgba(67, 48, 23, 0.14));
  box-shadow: inset 0 -2px #b99753;
}
.system-groups span { font-family: var(--font-brush); font-size: 24px; line-height: 1; }
.system-groups small { font-size: var(--ming-font-small, 14px); font-weight: 700; }

.system-branches {
  grid-auto-flow: column;
  grid-auto-columns: minmax(82px, max-content);
  justify-content: start;
  gap: 6px;
  min-height: 37px;
  overflow-x: auto;
  padding: 5px 10px;
  border-bottom: 1px solid rgba(211, 181, 119, 0.12);
  background: rgba(10, 15, 13, 0.74);
  scrollbar-width: thin;
}

.system-branches button {
  min-height: 27px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 6px;
  padding: 3px 11px;
  color: #978d79;
  border: 1px solid rgba(211, 181, 119, 0.13);
  border-radius: 2px;
  background: rgba(0, 0, 0, 0.18);
  cursor: pointer;
}

.system-branches button.active {
  color: #ead8aa;
  border-color: rgba(211, 181, 119, 0.52);
  background: rgba(113, 82, 39, 0.27);
}
.system-branches span { color: #b89a5f; font-family: var(--font-brush); font-size: 16px; }
.system-branches small { font-size: var(--ming-font-small, 14px); font-weight: 700; }

@media (min-width: 1080px) and (min-height: 680px) {
  .system-dock { grid-template-rows: 49px 38px minmax(0, 1fr); }
  .system-dock.single-branch { grid-template-rows: 49px minmax(0, 1fr); }
  .system-groups button { min-height: 48px; }
  .system-detail { padding-top: 8px; }
}

@media (max-width: 760px) {
  .system-groups {
    min-width: 0;
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }
  .system-groups button { min-height: 46px; border-bottom: 1px solid rgba(211, 181, 119, 0.12); }
  .campaign-sidebar { min-width: 0; width: 100%; }
  .system-dock {
    width: 100%;
    max-width: 100%;
    grid-template-columns: minmax(0, 1fr);
    overflow-x: hidden;
  }
  .system-detail {
    box-sizing: border-box;
    width: 100%;
    min-width: 0;
    overflow-x: hidden;
  }
  .system-groups span { font-size: 21px; }
  .system-groups small { font-size: var(--ming-font-small, 14px); }
}

/* V0.10 · AI 世界状态舆图：真实地点、道路与行政隶属共用一套数据 */
.location-map-panel {
  height: 100%;
  min-height: 0;
  display: grid;
  grid-template-rows: minmax(38px, auto) minmax(25px, auto) minmax(145px, 1fr) minmax(42px, auto);
  color: var(--folio-ink, #ded3ba);
  overflow: hidden;
}

.location-map-panel > header {
  min-width: 0;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
  padding: 0 2px 5px;
  border-bottom: 1px solid rgba(212, 181, 116, 0.24);
}
.location-map-panel > header > div { min-width: 0; display: flex; flex: 1 1 auto; flex-wrap: wrap; align-items: baseline; gap: 3px 9px; }
.location-map-panel > header span { flex: 0 0 auto; color: var(--folio-muted, #b89551); font-size: var(--ming-font-small, 14px); font-weight: 700; letter-spacing: 0.08em; }
.location-map-panel > header h3 { min-width: 0; overflow: visible; margin: 0; color: var(--folio-ink, #f0e6cc); font-family: var(--font-brush); font-size: 23px; font-weight: 400; line-height: 1.15; text-overflow: clip; white-space: normal; overflow-wrap: anywhere; }
.location-map-panel > header > b { flex: 0 0 auto; padding: 3px 7px; color: var(--folio-ink, #a5c9b7); border: 1px solid rgba(118, 169, 147, 0.3); background: var(--folio-card, rgba(45, 92, 75, 0.16)); font-size: var(--ming-font-small, 14px); }

.location-breadcrumb {
  min-width: 0;
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 5px;
  overflow: visible;
  padding: 3px 2px;
  color: #a79b84;
  white-space: normal;
}
.location-breadcrumb span { min-width: 0; overflow: visible; font-size: var(--ming-font-small, 14px); font-weight: 650; text-overflow: clip; white-space: normal; overflow-wrap: anywhere; }
.location-breadcrumb i { color: #7f673d; font-size: var(--ming-font-small, 14px); font-style: normal; }

.location-map-layout {
  min-height: 0;
  display: grid;
  grid-template-columns: minmax(245px, 1.42fr) minmax(142px, 0.78fr);
  gap: 8px;
  padding-top: 5px;
}
.location-map-canvas {
  position: relative;
  min-width: 0;
  min-height: 0;
  overflow: hidden;
  border: 1px solid rgba(202, 168, 101, 0.35);
  background: var(--ming-paper-shade);
  box-shadow: inset 0 0 35px rgba(0, 0, 0, 0.52);
}
.location-map-canvas::after {
  content: '';
  position: absolute;
  inset: 0;
  pointer-events: none;
  background: radial-gradient(circle at 50% 50%, rgba(217, 188, 119, 0.08), transparent 42%);
}
.location-map-canvas svg { position: absolute; z-index: 1; inset: 0; width: 100%; height: 100%; }
.location-map-canvas line { stroke: rgba(225, 194, 123, 0.66); stroke-width: 0.8; stroke-dasharray: 3 2; vector-effect: non-scaling-stroke; filter: drop-shadow(0 0 2px #251a0d); }
.map-current-node,
.map-route-node {
  position: absolute;
  z-index: 3;
  display: grid;
  grid-template-columns: 27px minmax(0, 1fr);
  grid-template-rows: auto auto;
  align-items: center;
  gap: 0 5px;
  border: 1px solid rgba(213, 181, 112, 0.52);
  background: rgba(7, 12, 10, 0.9);
  box-shadow: 0 5px 12px rgba(0, 0, 0, 0.42);
  transform: translate(-50%, -50%);
}
.map-current-node { top: 50%; left: 50%; width: 110px; padding: 5px 7px; border-color: rgba(121, 183, 154, 0.72); background: linear-gradient(110deg, rgba(28, 69, 55, 0.95), rgba(8, 15, 13, 0.95)); }
.map-route-node { top: var(--map-y); left: var(--map-x); width: 98px; min-height: 40px; padding: 4px 6px; color: inherit; cursor: pointer; }
.map-route-node:hover,
.map-route-node:focus-visible { z-index: 5; border-color: #ddbc72; background: rgba(27, 24, 15, 0.96); transform: translate(-50%, -50%) scale(1.04); }
.map-current-node i,
.map-route-node i { grid-row: 1 / 3; width: 27px; height: 27px; display: grid; place-items: center; color: #e7d292; border: 1px solid rgba(216, 184, 113, 0.38); border-radius: 50%; font-family: var(--font-brush); font-size: 16px; font-style: normal; }
.map-current-node i { color: #a7d8c0; border-color: rgba(133, 193, 166, 0.5); }
.map-current-node b,
.map-route-node b { min-width: 0; overflow: hidden; color: #f0e4c8; font-size: var(--ming-font-small, 14px); line-height: 1.2; text-overflow: ellipsis; white-space: nowrap; }
.map-current-node small,
.map-route-node small { min-width: 0; overflow: hidden; color: #a89c84; font-size: var(--ming-font-small, 14px); line-height: 1.2; text-overflow: ellipsis; white-space: nowrap; }
.map-no-route { position: absolute; z-index: 2; inset: auto 8px 7px; margin: 0; color: #b7aa91; font-size: var(--ming-font-small, 14px); text-align: center; }

.location-dossier {
  min-width: 0;
  display: flex;
  flex-direction: column;
  overflow: hidden;
  padding: 9px 10px;
  border: 1px solid rgba(109, 152, 132, 0.26);
  background: linear-gradient(150deg, rgba(25, 51, 42, 0.24), rgba(4, 8, 7, 0.6));
}
.location-dossier > span { color: #b99752; font-size: var(--ming-font-small, 14px); font-weight: 700; }
.location-dossier h4 { margin: 1px 0 0; color: #f1e5ca; font-family: var(--font-brush); font-size: 21px; font-weight: 400; }
.location-dossier > b { overflow: hidden; margin-top: 2px; color: #9fc4b2; font-size: var(--ming-font-small, 14px); text-overflow: ellipsis; white-space: nowrap; }
.location-dossier p { display: -webkit-box; overflow: hidden; margin: 6px 0 0; color: #b8ad97; font-size: var(--ming-font-body, 16px); line-height: 1.45; -webkit-box-orient: vertical; -webkit-line-clamp: 3; }
.location-dossier em { display: -webkit-box; overflow: hidden; margin-top: auto; color: #8d826e; font-size: var(--ming-font-small, 14px); font-style: normal; line-height: 1.35; -webkit-box-orient: vertical; -webkit-line-clamp: 2; }

.location-map-panel > footer {
  min-width: 0;
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  align-items: center;
  gap: 8px;
  padding-top: 5px;
  border-top: 1px solid rgba(212, 181, 116, 0.2);
}
.location-map-panel > footer > div { min-width: 0; display: flex; flex-wrap: wrap; align-items: center; gap: 4px; overflow: visible; white-space: normal; }
.location-map-panel > footer b { flex: 0 0 auto; margin-right: 2px; color: var(--folio-ink, #b99551); font-size: var(--ming-font-small, 14px); }
.location-map-panel > footer span { flex: 0 1 auto; overflow: visible; padding: 2px 5px; color: var(--folio-muted, #a79c86); border: 1px solid rgba(212, 181, 116, 0.13); font-size: var(--ming-font-small, 14px); text-overflow: clip; white-space: normal; overflow-wrap: anywhere; }
.location-map-panel > footer span.current { color: var(--folio-muted, #a8d4bf); border-color: var(--folio-rule, rgba(125, 179, 155, 0.35)); }
.location-map-panel > footer > small { color: var(--folio-muted, #8e836f); font-size: var(--ming-font-small, 14px); white-space: normal; }

.location-ledger-layout {
  min-height: 0;
  display: grid;
  grid-template-columns: minmax(160px, 0.82fr) minmax(230px, 1.18fr);
  gap: 8px;
  padding-top: 5px;
}
.current-location-record {
  min-width: 0;
  display: flex;
  flex-direction: column;
  overflow: hidden;
  padding: 9px 11px;
  border: 1px solid rgba(193, 159, 91, 0.34);
  background:
    linear-gradient(100deg, rgba(5, 10, 8, 0.26), rgba(4, 8, 7, 0.7)),
    url('/assets/art/system-focus/map-folio-v2.png') center / cover no-repeat;
  box-shadow: inset 0 0 28px rgba(0, 0, 0, 0.46);
}
.current-location-record > span { color: #bd9b57; font-size: var(--ming-font-small, 14px); font-weight: 700; letter-spacing: 0.06em; }
.current-location-record h4 { margin: 2px 0 0; color: #f1e6cd; font-family: var(--font-brush); font-size: 23px; font-weight: 400; line-height: 1; }
.current-location-record > b { overflow: visible; margin-top: 4px; color: #9fc4b2; font-size: var(--ming-font-small, 14px); line-height: 1.4; text-overflow: clip; white-space: normal; }
.current-location-record p { display: -webkit-box; overflow: hidden; margin: 6px 0 0; color: #c1b49b; font-size: var(--ming-font-body, 16px); line-height: 1.42; -webkit-box-orient: vertical; -webkit-line-clamp: 3; }
.current-location-record em { display: -webkit-box; overflow: hidden; margin-top: auto; color: #988c77; font-size: var(--ming-font-small, 14px); font-style: normal; line-height: 1.35; -webkit-box-orient: vertical; -webkit-line-clamp: 2; }

.location-route-registry {
  min-width: 0;
  min-height: 0;
  display: grid;
  grid-template-rows: minmax(46px, auto) minmax(0, 1fr);
  overflow: hidden;
  border: 1px solid rgba(113, 160, 139, 0.27);
  background: rgba(5, 10, 8, 0.58);
}
.location-route-registry > header { min-width: 0; display: grid; grid-template-columns: minmax(0, 1fr); align-content: center; gap: 2px; padding: 5px 7px; border-bottom: 1px solid rgba(211, 181, 119, 0.16); }
.location-route-registry > header > div { display: flex; align-items: baseline; gap: 6px; }
.location-route-registry > header span { color: #d0b777; font-size: var(--ming-font-small, 14px); font-weight: 700; }
.location-route-registry > header b { color: #9ec4b2; font-size: var(--ming-font-small, 14px); }
.location-route-registry > header > small { min-width: 0; overflow: visible; color: #aaa08e; font-size: var(--ming-font-small, 14px); line-height: 1.35; text-align: left; white-space: normal; }
.location-route-registry > div { min-height: 0; display: grid; grid-auto-rows: max-content; align-content: start; overflow-x: hidden; overflow-y: auto; }
.location-map-panel.compact .location-route-registry > div { overflow-y: auto; }
.location-route-row {
  min-width: 0;
  min-height: 78px;
  display: grid;
  grid-template-columns: 34px minmax(0, 1fr);
  grid-template-rows: auto auto;
  align-items: center;
  gap: 4px 8px;
  padding: 8px 9px;
  color: inherit;
  border: 0;
  border-bottom: 1px solid rgba(211, 181, 119, 0.11);
  background: transparent;
  cursor: pointer;
  text-align: left;
}
.location-route-row:last-child { border-bottom: 0; }
.location-route-row:hover,
.location-route-row:focus-visible { background: linear-gradient(90deg, rgba(108, 84, 43, 0.24), rgba(50, 94, 76, 0.14)); }
.location-route-row.route-direct-sailing {
  border-left: 3px solid rgba(105, 178, 156, 0.7);
  background: rgba(13, 39, 32, 0.58);
  box-shadow: inset 0 0 0 1px rgba(118, 185, 164, 0.08);
}
.location-route-row.route-direct-sailing:hover,
.location-route-row.route-direct-sailing:focus-visible { background: rgba(19, 52, 43, 0.78); }
.location-route-row.route-blocked,
.location-route-row.route-blocked:hover {
  cursor: not-allowed;
  opacity: 0.72;
  background: rgba(34, 15, 13, 0.62);
}
.location-route-row.route-blocked > i { color: #d58a77; border-color: rgba(195, 91, 73, 0.5); }
.location-route-row.route-blocked > em,
.location-route-row.route-blocked > em small { color: #d58a77; }
.location-route-row > i { grid-column: 1; grid-row: 1 / 3; width: 32px; height: 32px; display: grid; place-items: center; color: #e2c77e; border: 1px solid rgba(214, 181, 109, 0.35); border-radius: 50%; font-family: var(--font-brush); font-size: 17px; font-style: normal; }
.location-route-row > span { min-width: 0; grid-column: 2; grid-row: 1; display: grid; gap: 2px; }
.location-route-row > span b { color: #e7dcc3; font-size: 14px; line-height: 1.35; white-space: normal; }
.location-route-row > span small { color: #aaa08e; font-size: var(--ming-font-small, 14px); line-height: 1.4; white-space: normal; }
.location-route-row > span strong { color: #91cbb3; font-size: var(--ming-font-small, 14px); line-height: 1.45; font-weight: 720; }
.location-route-row > em { grid-column: 2; grid-row: 2; display: flex; flex-wrap: wrap; gap: 3px 10px; color: #accfbe; font-size: 14px; font-style: normal; text-align: left; white-space: normal; }
.location-route-row > em small { color: #9e947f; font-size: var(--ming-font-small, 14px); }
.route-registry-empty { align-self: center; margin: 0; padding: 18px; color: #a69a84; font-size: var(--ming-font-small, 14px); text-align: center; }

@media (max-width: 760px) {
  .location-map-panel {
    height: auto;
    min-width: 0;
    min-height: 0;
    grid-template-rows: auto auto auto auto;
    overflow: visible;
  }
  .location-map-panel > header { min-height: 44px; padding: 6px 4px; }
  .location-map-panel > header > div { display: grid; align-content: start; gap: 4px; }
  .location-map-panel > header span,
  .location-map-panel > header > b,
  .location-breadcrumb span,
  .current-location-record > span,
  .current-location-record > b,
  .current-location-record p,
  .current-location-record em,
  .location-route-registry > header span,
  .location-route-registry > header b,
  .location-route-registry > header > small,
  .location-map-panel > footer b,
  .location-map-panel > footer span,
  .location-map-panel > footer > small { font-size: var(--ming-font-small, 14px); }
  .location-breadcrumb { min-height: 34px; padding: 6px 4px; }
  .location-ledger-layout { grid-template-columns: minmax(0, 1fr); gap: 8px; }
  .current-location-record { min-height: 166px; overflow: visible; }
  .current-location-record p,
  .current-location-record em { display: block; overflow: visible; -webkit-line-clamp: unset; }
  .location-route-registry { grid-template-rows: auto auto; overflow: visible; }
  .location-route-registry > header { min-height: 58px; padding: 8px 10px; }
  .location-route-registry > div { overflow: visible; }
  .location-route-row {
    min-height: 78px;
    grid-template-columns: 36px minmax(0, 1fr);
    align-items: center;
    padding: 8px 10px;
  }
  .location-route-row > i { grid-column: 1; grid-row: 1 / 3; width: 34px; height: 34px; }
  .location-route-row > span { grid-column: 2; grid-row: 1; }
  .location-route-row > span small { overflow: visible; text-overflow: clip; white-space: normal; }
  .location-route-row > em {
    grid-column: 2;
    grid-row: 2;
    display: flex;
    flex-wrap: wrap;
    gap: 4px 10px;
    text-align: left;
  }
  .location-map-panel > footer { min-height: 56px; grid-template-columns: 1fr; align-items: start; }
  .location-map-panel > footer > div { flex-wrap: wrap; overflow: visible; white-space: normal; }
  .location-map-panel > footer > small { white-space: normal; }
}

/* V0.9 · AI 祸福判定及依据可视化 */
.outcome-exceptional-positive { --outcome-accent: #e2c96f; --outcome-soft: rgba(222, 191, 87, 0.22); }
.outcome-positive { --outcome-accent: #80c9a4; --outcome-soft: rgba(89, 161, 126, 0.18); }
.outcome-ordinary { --outcome-accent: #c4b38e; --outcome-soft: rgba(161, 145, 112, 0.13); }
.outcome-negative { --outcome-accent: #d18469; --outcome-soft: rgba(164, 78, 55, 0.17); }
.outcome-catastrophic { --outcome-accent: #e25b4d; --outcome-soft: rgba(145, 27, 21, 0.28); }

.turn-transition.revealed .turn-transition-copy {
  width: min(820px, calc(100% - 44px));
  padding-top: 22px;
}

.turn-outcome-mark {
  width: max-content;
  display: grid;
  grid-template-columns: 66px auto;
  align-items: center;
  gap: 10px;
  margin: 8px auto 4px;
  padding: 5px 14px 5px 6px;
  border: 1px solid color-mix(in srgb, var(--outcome-accent) 45%, transparent);
  background: linear-gradient(90deg, var(--outcome-soft), rgba(2, 5, 4, 0.52));
  text-align: left;
  box-shadow: 0 0 30px var(--outcome-soft);
}

.turn-outcome-mark img {
  width: 62px;
  height: 62px;
  object-fit: contain;
  filter: drop-shadow(0 5px 10px rgba(0, 0, 0, 0.52));
}

.turn-outcome-mark > div { display: grid; grid-template-columns: auto auto; align-items: end; gap: 0 10px; }
.turn-outcome-mark small { grid-column: 1 / -1; color: #a99d86; font-size: var(--ming-font-small, 14px); letter-spacing: 0.08em; }
.turn-outcome-mark b { color: var(--outcome-accent); font-family: var(--font-brush); font-size: 28px; font-weight: 400; }
.turn-outcome-mark em { color: #c8baa0; font-size: var(--ming-font-small, 14px); font-style: normal; }
.turn-transition.revealed .turn-transition-copy h2 { margin-top: 5px; font-size: clamp(38px, 5.6vw, 64px); }

.turn-outcome-basis {
  display: flex;
  flex-wrap: wrap;
  gap: 5px;
  margin-top: 4px;
}

.turn-outcome-basis i {
  width: auto;
  height: auto;
  display: inline-block;
  margin: 0;
  padding: 3px 7px;
  color: #b7ad99;
  border: 1px solid rgba(214, 185, 126, 0.15);
  background: rgba(255, 255, 255, 0.025);
  font-size: var(--ming-font-small, 14px);
  font-style: normal;
  line-height: 1.4;
}

.inference-report { border-left-color: var(--outcome-accent, var(--jade-500)); }
.inference-heading > div:first-child { min-width: 0; display: grid; gap: 3px; }
.inference-heading > div:first-child > small { color: var(--jade-300); font-size: var(--ming-font-small, 14px); }
.inference-verdict {
  flex: 0 0 auto;
  display: flex;
  align-items: center;
  gap: 5px;
  padding: 2px 8px 2px 3px;
  border: 1px solid color-mix(in srgb, var(--outcome-accent) 38%, transparent);
  background: var(--outcome-soft);
}
.inference-verdict img { width: 32px; height: 32px; object-fit: contain; }
.inference-verdict span { display: grid; }
.inference-verdict small { color: #9a907d; font-size: var(--ming-font-small, 14px); }
.inference-verdict b { color: var(--outcome-accent); font-size: var(--ming-font-small, 14px); }

.inference-evidence {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 7px;
  margin-top: 5px;
}
.outcome-basis {
  min-width: 0;
  display: flex;
  gap: 4px;
  overflow: hidden;
}
.outcome-basis span {
  max-width: 230px;
  overflow: hidden;
  padding: 2px 6px;
  color: #afa48f;
  border: 1px solid rgba(211, 181, 119, 0.14);
  background: rgba(255, 255, 255, 0.02);
  font-size: var(--ming-font-small, 14px);
  text-overflow: ellipsis;
  white-space: nowrap;
}
.inference-evidence .change-list { flex: 0 0 auto; margin-top: 0; }

.archive-drawer li .archive-outcome {
  align-self: center;
  padding: 3px 6px;
  color: var(--outcome-accent, #c4b38e);
  border: 1px solid color-mix(in srgb, var(--outcome-accent, #c4b38e) 35%, transparent);
  background: var(--outcome-soft, rgba(161, 145, 112, 0.13));
  font-size: var(--ming-font-small, 14px);
  white-space: nowrap;
}

@media (min-width: 1080px) and (min-height: 680px) {
  .inference-report { min-height: 112px; max-height: 120px; padding-block: 8px; }
  .inference-report h3 { max-width: calc(100% - 140px); font-size: 14px; -webkit-line-clamp: 2; }
}

@media (max-width: 760px) {
  .turn-transition { place-items: start center; overflow-x: hidden; overflow-y: auto; }
  .turn-transition-copy { margin: 12px auto 78px; padding: 14px 12px 76px; }
  .turn-outcome-mark { grid-template-columns: 54px auto; }
  .turn-outcome-mark img { width: 50px; height: 50px; }
  .turn-action-summary { grid-template-columns: 1fr; gap: 3px; }
  .turn-thinking-guide ol { grid-template-columns: 1fr; }
  .turn-time-ledger { grid-template-columns: 1fr; gap: 6px; padding: 6px; }
  .turn-time-duration { grid-template-columns: minmax(0, 1fr) auto; }
  .turn-time-range { grid-template-columns: minmax(0, 1fr) 28px minmax(0, 1fr); padding-inline: 6px; }
  .turn-time-range > span { grid-template-columns: 22px minmax(0, 1fr); gap: 5px; }
  .turn-time-range small { width: 22px; height: 22px; }
  .turn-time-range b { font-size: var(--ming-font-small, 14px); }
  .turn-change-ledger > div { max-height: none; grid-template-columns: 1fr; overflow: visible; }
  .turn-change-group { padding: 8px; }
  .turn-change-entry { min-height: 44px; grid-template-columns: 30px minmax(0, 1fr); }
  .turn-change-entry > i { width: 28px; height: 28px; }
  .turn-change-entry > span b,
  .turn-change-entry > span small { font-size: var(--ming-font-small, 14px); }
  .turn-result-continue {
    position: static;
    width: 100%;
    margin: 18px auto 0;
    box-shadow: 0 12px 34px rgba(0, 0, 0, 0.72), inset 0 1px rgba(255, 255, 255, 0.08);
  }
  .inference-evidence { align-items: flex-start; flex-direction: column; }
  .outcome-basis { width: 100%; }
}

/* V0.8.1 · 单一行动入口、叙事式回合结算与完整换行 */
.event-heading > div:first-child { min-width: 0; }
.event-side {
  min-width: 132px;
  display: grid;
  justify-items: end;
  align-content: start;
  gap: 8px;
}
.event-fortune {
  width: 132px;
  min-height: 54px;
  display: grid;
  grid-template-columns: 42px minmax(0, 1fr);
  align-items: center;
  gap: 6px;
  padding: 5px 7px 5px 4px;
  border: 1px solid color-mix(in srgb, var(--outcome-accent) 42%, transparent);
  border-left: 2px solid var(--outcome-accent);
  background:
    linear-gradient(105deg, var(--outcome-soft), rgba(5, 9, 8, 0.84)),
    rgba(7, 11, 10, 0.88);
  box-shadow: 0 8px 24px rgba(0, 0, 0, 0.22), inset 0 1px rgba(255, 255, 255, 0.025);
}
.event-fortune > img,
.event-fortune > i {
  width: 40px;
  height: 40px;
  display: grid;
  place-items: center;
  object-fit: contain;
  color: var(--outcome-accent);
  border: 1px solid color-mix(in srgb, var(--outcome-accent) 32%, transparent);
  font-family: var(--font-brush);
  font-size: 18px;
  font-style: normal;
}
.event-fortune > span { min-width: 0; display: grid; }
.event-fortune small { color: #aaa08e; font-size: var(--ming-font-small, 14px); line-height: 1.2; letter-spacing: 0.08em; }
.event-fortune strong { color: var(--outcome-accent); font-size: 14px; line-height: 1.25; white-space: nowrap; }
.event-fortune em { color: #cfc0a1; font-size: var(--ming-font-small, 14px); font-style: normal; line-height: 1.2; }
.event-fortune.pending { --outcome-accent: #9d927d; --outcome-soft: rgba(126, 115, 92, 0.12); }

.free-action-panel {
  grid-template-columns: minmax(220px, 0.72fr) minmax(420px, 1.28fr);
  gap: 20px;
  padding: 14px 18px;
  border-color: rgba(211, 181, 119, 0.3);
  background:
    linear-gradient(105deg, rgba(118, 53, 39, 0.16), transparent 29%),
    linear-gradient(180deg, rgba(22, 29, 26, 0.96), rgba(8, 13, 11, 0.96));
  box-shadow: inset 3px 0 #8f4939, inset 0 1px rgba(238, 211, 155, 0.05);
  overflow: visible;
}

.free-action-bridge {
  position: absolute;
  top: -11px;
  left: 50%;
  z-index: 2;
  width: min(270px, calc(100% - 36px));
  display: grid;
  grid-template-columns: minmax(24px, 1fr) auto minmax(24px, 1fr);
  align-items: center;
  gap: 9px;
  color: #bfa86f;
  transform: translateX(-50%);
  pointer-events: none;
}
.free-action-bridge span {
  height: 1px;
  background: linear-gradient(90deg, transparent, rgba(206, 175, 108, 0.5));
}
.free-action-bridge span:last-child { transform: scaleX(-1); }
.free-action-bridge b {
  padding: 2px 9px;
  border: 1px solid rgba(205, 174, 108, 0.28);
  background: #101613;
  box-shadow: 0 0 0 4px rgba(7, 11, 9, 0.78);
  font-size: var(--ming-font-small, 14px);
  font-weight: 700;
  letter-spacing: 0.12em;
  white-space: nowrap;
}

.free-action-intro { gap: 6px; }
.free-action-heading { gap: 11px; }
.free-action-heading > i {
  width: 42px;
  height: 42px;
  flex-basis: 42px;
  border-radius: 3px;
  background: linear-gradient(145deg, rgba(137, 56, 43, 0.58), rgba(74, 34, 29, 0.48));
  box-shadow: inset 0 0 0 2px rgba(232, 185, 121, 0.08);
}
.free-action-heading span { color: #cbb075; font-size: var(--ming-font-small, 14px); }
.free-action-panel h3 { font-size: 22px; }
.free-action-panel p { color: #b7ad9b; font-size: var(--ming-font-body, 16px); line-height: 1.45; }

.free-action-promise {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 5px;
  color: #8f8778;
  font-size: var(--ming-font-small, 14px);
  line-height: 1.35;
}
.free-action-promise > span {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  min-height: 24px;
  padding: 2px 7px 2px 3px;
  border: 1px solid rgba(183, 157, 101, 0.24);
  background: rgba(4, 10, 8, 0.46);
}
.free-action-promise i {
  width: 18px;
  height: 18px;
  display: grid;
  place-items: center;
  color: #d5b86f;
  border: 1px solid rgba(204, 168, 93, 0.36);
  border-radius: 50%;
  font-family: var(--font-brush);
  font-size: var(--ming-font-small, 14px);
  font-style: normal;
}
.free-action-promise b { color: #aeb7a9; font-size: var(--ming-font-small, 14px); font-weight: 650; white-space: nowrap; }
.free-action-promise .tianji { border-color: rgba(104, 166, 139, 0.34); }
.free-action-promise .tianji i { color: #a7cbb9; border-color: rgba(104, 166, 139, 0.48); }

.free-action-label {
  align-items: flex-start;
  justify-content: flex-start;
  flex-wrap: wrap;
  gap: 2px 10px;
  font-size: var(--ming-font-small, 14px);
}
.free-action-label b { font-size: var(--ming-font-small, 14px); }
.free-action-label span { font-size: var(--ming-font-small, 14px); }
.free-action-label span {
  overflow: visible;
  color: #8d8576;
  text-overflow: clip;
  white-space: normal;
}
.free-action-composer textarea {
  min-height: 88px;
  border-color: rgba(218, 190, 132, 0.34);
  background: rgba(2, 6, 5, 0.72);
}
.free-action-composer button {
  position: relative;
  min-width: 180px;
  min-height: 64px;
  grid-template-columns: 34px minmax(0, 1fr);
  grid-template-rows: auto auto;
  gap: 0 10px;
  padding: 8px 27px 8px 9px;
  overflow: hidden;
  color: #f0e4ca;
  border-color: rgba(207, 176, 109, 0.68);
  border-radius: 4px;
  background:
    radial-gradient(circle at 17% 50%, rgba(153, 62, 43, 0.24), transparent 33%),
    linear-gradient(118deg, rgba(39, 60, 50, 0.98), rgba(20, 37, 31, 0.98) 72%, rgba(13, 26, 22, 0.98));
  box-shadow:
    inset 0 0 0 1px rgba(239, 207, 142, 0.07),
    inset 3px 0 #a34d3b,
    inset 0 1px rgba(248, 225, 177, 0.12),
    0 7px 18px rgba(0, 0, 0, 0.28);
  isolation: isolate;
}
.free-action-composer button::before {
  content: '';
  position: absolute;
  inset: 0;
  background: linear-gradient(112deg, transparent 24%, rgba(246, 222, 169, 0.1) 48%, transparent 70%);
  transform: translateX(-115%);
  transition: transform 260ms ease;
  pointer-events: none;
}
.free-action-composer button::after {
  content: '›';
  position: absolute;
  top: 50%;
  right: 10px;
  color: rgba(226, 197, 134, 0.74);
  font-family: serif;
  font-size: 22px;
  line-height: 1;
  transform: translateY(-52%);
  transition: color 160ms ease, transform 160ms ease;
}
.free-action-composer button:hover:not(:disabled)::before,
.free-action-composer button:focus-visible::before { transform: translateX(115%); }
.free-action-composer button > span,
.free-action-composer button > small,
.free-action-composer button > i { position: relative; z-index: 1; }
.free-action-composer button > span {
  grid-column: 2;
  grid-row: 1;
  align-self: end;
  font-size: 15px;
  font-weight: 750;
  line-height: 1.2;
  letter-spacing: 0.06em;
  white-space: nowrap;
}
.free-action-composer button > small {
  grid-column: 2;
  grid-row: 2;
  align-self: start;
  margin-top: 2px;
  color: #a8c0b0;
  font-size: var(--ming-font-small, 14px);
  line-height: 1.2;
  letter-spacing: 0.02em;
  white-space: nowrap;
}
.free-action-composer button > i {
  width: 34px;
  height: 34px;
  grid-column: 1;
  grid-row: 1 / 3;
  display: grid;
  place-items: center;
  align-self: center;
  color: #f0d5a0;
  border: 1px solid rgba(229, 181, 112, 0.48);
  border-radius: 50%;
  background:
    radial-gradient(circle at 40% 35%, rgba(184, 86, 61, 0.5), transparent 55%),
    rgba(91, 35, 29, 0.82);
  box-shadow: inset 0 0 0 2px rgba(48, 17, 14, 0.32), 0 2px 7px rgba(0, 0, 0, 0.28);
  font-family: var(--font-brush);
  font-size: 18px;
  line-height: 1;
}
.free-action-composer button:hover:not(:disabled),
.free-action-composer button:focus-visible {
  border-color: rgba(238, 204, 134, 0.88);
  background:
    radial-gradient(circle at 17% 50%, rgba(174, 68, 47, 0.32), transparent 34%),
    linear-gradient(118deg, rgba(48, 72, 60, 0.99), rgba(23, 45, 37, 0.99) 72%, rgba(14, 30, 25, 0.99));
  box-shadow:
    inset 0 0 0 1px rgba(250, 221, 163, 0.1),
    inset 3px 0 #b45640,
    inset 0 1px rgba(255, 235, 192, 0.16),
    0 9px 22px rgba(0, 0, 0, 0.34);
  transform: translateY(-2px);
}
.free-action-composer button:hover:not(:disabled)::after,
.free-action-composer button:focus-visible::after {
  color: #f2d69b;
  transform: translate(2px, -52%);
}
.free-action-composer button:focus-visible {
  outline: 2px solid rgba(224, 187, 112, 0.3);
  outline-offset: 2px;
}
.free-action-composer button:active:not(:disabled) {
  transform: translateY(0) scale(0.99);
}

.campaign-shell .free-action-heading span { font-size: var(--ming-font-small, 14px); }
.campaign-shell .free-action-panel p { font-size: var(--ming-font-body, 16px); line-height: 1.45; }
.campaign-shell .free-action-promise { font-size: var(--ming-font-small, 14px); }
.campaign-shell .free-action-label {
  flex-wrap: nowrap;
  align-items: baseline;
  font-size: var(--ming-font-small, 14px);
}
.campaign-shell .free-action-label b { font-size: var(--ming-font-small, 14px); }
.campaign-shell .free-action-label span {
  flex: 0 0 auto;
  font-size: var(--ming-font-small, 14px);
  white-space: nowrap;
}
.campaign-shell .free-action-composer button > span { font-size: 15px; }
.campaign-shell .free-action-composer button > small { font-size: var(--ming-font-small, 14px); line-height: 1.2; }

.action-intent-plan {
  grid-column: 1 / -1;
  display: grid;
  gap: 10px;
  padding: 13px 15px;
  border: 1px solid rgba(190, 158, 94, 0.38);
  background: linear-gradient(120deg, rgba(21, 39, 32, 0.98), rgba(9, 16, 13, 0.98));
  box-shadow: inset 3px 0 rgba(113, 177, 145, 0.64);
}
.action-intent-plan.blocked { border-color: rgba(171, 91, 69, 0.5); box-shadow: inset 3px 0 rgba(171, 80, 62, 0.76); }
.action-intent-plan.clarify {
  border-color: rgba(126, 151, 174, 0.48);
  background: linear-gradient(120deg, rgba(25, 34, 40, 0.98), rgba(9, 14, 17, 0.98));
  box-shadow: inset 3px 0 rgba(113, 152, 177, 0.7);
}
.action-intent-plan.confirmation {
  border-color: rgba(202, 166, 91, 0.55);
  background: linear-gradient(120deg, rgba(43, 34, 20, 0.98), rgba(11, 18, 14, 0.98));
  box-shadow: inset 3px 0 rgba(210, 169, 80, 0.78);
}
.action-intent-plan > header { display: flex; align-items: center; gap: 12px; }
.action-intent-plan > header > i {
  width: 42px; height: 42px; flex: 0 0 42px; display: grid; place-items: center;
  color: #e4c781; border: 1px solid rgba(212, 177, 103, 0.5); border-radius: 50%;
  background: rgba(80, 59, 30, 0.38); font-family: var(--font-brush); font-size: 20px; font-style: normal;
}
.action-intent-plan > header > div { min-width: 0; display: grid; gap: 2px; }
.action-intent-plan > header span { color: #9fbba9; font-size: var(--ming-font-small, 14px); letter-spacing: 0.08em; }
.action-intent-plan > header b { color: #f0e2c4; font-size: 18px; }
.action-intent-plan > header p { margin: 0; color: #bcb19d; font-size: var(--ming-font-body, 16px); line-height: 1.5; }
.campaign-shell .action-intent-plan > header span { font-size: var(--ming-font-small, 14px); }
.campaign-shell .action-intent-plan > header p { font-size: var(--ming-font-body, 16px); line-height: 1.55; }
.action-intent-preview {
  display: flex; justify-content: space-between; gap: 14px; align-items: center;
  padding: 10px 12px; border: 1px solid rgba(130, 168, 146, 0.28); background: rgba(3, 10, 7, 0.48);
}
.action-intent-preview span { min-width: 0; display: grid; gap: 2px; }
.action-intent-preview small { color: #a49373; font-size: var(--ming-font-small, 14px); }
.action-intent-preview b { color: #d7cfbb; font-size: var(--ming-font-small, 14px); line-height: 1.45; }
.action-intent-preview em { color: #9db8a8; font-size: var(--ming-font-small, 14px); font-style: normal; white-space: nowrap; }
.campaign-shell .action-intent-preview small,
.campaign-shell .action-intent-preview em { font-size: var(--ming-font-small, 14px); }
.campaign-shell .action-intent-preview b { font-size: 14px; }
.action-intent-candidates { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; }
.action-intent-candidates > button {
  min-height: 58px; display: flex; justify-content: space-between; align-items: center; gap: 12px;
  padding: 9px 12px; color: #dfd3ba; border: 1px solid rgba(143, 178, 156, 0.36); background: rgba(5, 16, 12, 0.68); text-align: left;
}
.action-intent-candidates > button span { min-width: 0; display: grid; gap: 3px; }
.action-intent-candidates > button b { font-size: 14px; }
.action-intent-candidates > button small { color: #a99f8d; font-size: var(--ming-font-small, 14px); line-height: 1.35; }
.action-intent-candidates > button em { color: #a9c7b4; font-size: var(--ming-font-small, 14px); font-style: normal; white-space: nowrap; }
.campaign-shell .action-intent-candidates > button small,
.campaign-shell .action-intent-candidates > button em { font-size: var(--ming-font-small, 14px); }
.action-intent-candidates > button.blocked { opacity: 0.76; border-color: rgba(159, 91, 73, 0.38); }
.action-intent-plan > footer { display: flex; align-items: center; gap: 10px; }
.action-intent-plan > footer > button {
  min-height: 44px; padding: 8px 15px; color: #d8c8aa; border: 1px solid rgba(191, 157, 91, 0.4); background: rgba(18, 24, 20, 0.92);
}
.action-intent-plan > footer > button.confirm {
  display: grid; gap: 2px; color: #f0e3c7; border-color: rgba(111, 178, 144, 0.6); background: linear-gradient(135deg, #254b3b, #142d24);
}
.action-intent-plan.confirmation > footer > button.confirm {
  min-width: 190px;
  border-color: rgba(211, 172, 88, 0.68);
  background: linear-gradient(135deg, #574524, #2c2a1c);
}
.action-intent-plan > footer > button.confirm small { color: #abc4b4; font-size: var(--ming-font-small, 14px); }
.action-intent-plan > footer > small { margin-left: auto; color: #958c7c; font-size: var(--ming-font-small, 14px); }
.campaign-shell .action-intent-plan > footer > button.confirm small,
.campaign-shell .action-intent-plan > footer > small { font-size: var(--ming-font-small, 14px); line-height: 1.4; }

.action-proposal-plan {
  grid-column: 1 / -1;
  display: grid;
  grid-template-columns: minmax(330px, 0.9fr) minmax(430px, 1.25fr);
  gap: 12px 18px;
  padding: 15px 17px;
  border: 1px solid rgba(174, 148, 88, 0.42);
  background: var(--folio-card, linear-gradient(92deg, rgba(111, 77, 36, 0.16), transparent 28%),
    linear-gradient(125deg, rgba(18, 29, 23, 0.98), rgba(7, 14, 11, 0.99)));
  box-shadow: inset 3px 0 #9b7d43;
}
.action-proposal-plan.blocked { border-color: var(--folio-rule, rgba(166, 86, 70, 0.5)); box-shadow: inset 4px 0 rgba(166, 76, 60, 0.76); }
.action-proposal-plan > header { min-width: 0; display: grid; grid-template-columns: 46px minmax(0, 1fr) auto; align-items: center; gap: 12px; }
.action-proposal-plan > header > i {
  width: 44px; height: 44px; display: grid; place-items: center; color: var(--folio-ink, #e2c477);
  border: 1px solid rgba(204, 166, 88, 0.58); border-radius: 50%; background: var(--folio-card, rgba(77, 54, 25, 0.46));
  font-family: var(--font-brush); font-size: 22px; font-style: normal;
}
.action-proposal-plan > header > div { min-width: 0; display: grid; gap: 3px; }
.action-proposal-plan > header span { color: var(--folio-muted, #c4a45d); font-size: var(--ming-font-small, 14px); font-weight: 760; letter-spacing: 0.12em; }
.action-proposal-plan > header b { overflow-wrap: anywhere; color: var(--folio-ink, #eee0bd); font-family: var(--font-brush); font-size: 22px; font-weight: 500; letter-spacing: 0.04em; }
.action-proposal-plan > header p { margin: 0; color: var(--folio-muted, #bbb19d); font-size: var(--ming-font-body, 16px); line-height: 1.5; }
.action-proposal-plan > header > em {
  align-self: start; padding: 5px 8px; color: var(--folio-muted, #d0b674); border: 1px solid rgba(183, 145, 70, 0.4);
  background: var(--folio-card, rgba(56, 42, 21, 0.4)); font-size: var(--ming-font-small, 14px); font-style: normal; white-space: nowrap;
}
.action-proposal-plan.blocked > header > em { color: var(--folio-danger, #e3a59b); border-color: var(--folio-rule, rgba(171, 80, 66, 0.46)); background: var(--folio-danger-surface, rgba(73, 26, 21, 0.48)); }
.action-proposal-plan > dl {
  min-width: 0; display: flex; flex-wrap: wrap; align-content: center; gap: 0;
  margin: 0; border-top: 1px solid rgba(161, 134, 73, 0.24); border-bottom: 1px solid rgba(161, 134, 73, 0.24);
}
.action-proposal-plan > dl > div { min-width: 120px; flex: 1 1 150px; display: grid; gap: 2px; padding: 7px 10px; border-right: 1px solid rgba(161, 134, 73, 0.18); }
.action-proposal-plan > dl > div:last-child { border-right: 0; }
.action-proposal-plan dt { color: var(--folio-muted, #81978b); font-size: var(--ming-font-small, 14px); }
.action-proposal-plan dd { overflow-wrap: anywhere; margin: 0; color: var(--folio-ink, #ddd0af); font-size: var(--ming-font-small, 14px); font-weight: 720; line-height: 1.35; }
.action-proposal-blocker { display: grid; gap: 4px; padding: 10px 12px; border: 1px solid rgba(169, 81, 65, 0.34); background: var(--folio-card, rgba(59, 20, 17, 0.38)); }
.action-proposal-blocker small { color: var(--folio-muted, #b58c82); font-size: var(--ming-font-small, 14px); }
.action-proposal-blocker b { color: var(--folio-ink, #e0b0a6); font-size: 14px; line-height: 1.55; }
.action-proposal-plan > aside { grid-column: 1; display: grid; grid-template-columns: auto minmax(0, 1fr); gap: 8px; padding-left: 58px; color: var(--folio-ink, #9da99f); font-size: var(--ming-font-small, 14px); line-height: 1.45; }
.action-proposal-plan > aside b { color: var(--folio-ink, #c4aa68); }
.action-proposal-plan > footer { grid-column: 2; display: grid; grid-template-columns: minmax(190px, 1fr) minmax(120px, 0.58fr) auto; align-items: stretch; gap: 7px; }
.action-proposal-plan > footer button { min-height: 46px; padding: 7px 13px; color: var(--folio-ink, #d9c9ac); border: 1px solid rgba(189, 155, 88, 0.36); background: var(--folio-card, rgba(12, 20, 16, 0.9)); cursor: pointer; }
.action-proposal-plan > footer button.confirm,
.action-proposal-plan > footer button.edit { display: grid; align-content: center; gap: 2px; text-align: left; }
.action-proposal-plan > footer button.confirm { color: var(--folio-ink, #f0e2c4); border-color: var(--folio-rule, rgba(104, 164, 134, 0.62)); background: var(--folio-card, linear-gradient(135deg, #254b3a, #132a21)); }
.action-proposal-plan > footer button.confirm b { font-size: 14px; }
.action-proposal-plan > footer button.confirm small { color: var(--folio-muted, #a7c1b1); font-size: var(--ming-font-small, 14px); }
.action-proposal-plan > footer button.edit b { color: var(--folio-ink, #d8c8a7); font-size: var(--ming-font-small, 14px); }
.action-proposal-plan > footer button.edit small { color: var(--folio-muted, #8e8779); font-size: var(--ming-font-small, 14px); }
.action-proposal-plan > footer button.cancel { color: var(--folio-ink, #aa9d87); border-color: var(--folio-rule, rgba(145, 123, 82, 0.28)); background: transparent; }
.action-proposal-plan > footer > small { grid-column: 1 / -1; color: var(--folio-muted, #887f70); font-size: var(--ming-font-small, 14px); line-height: 1.35; text-align: right; }

.free-action-panel.has-proposal { grid-template-columns: minmax(0, 1fr); padding: 12px 14px; }
.free-action-panel.has-proposal .free-action-bridge b { background: #121814; }

@media (max-width: 780px) {
  .action-intent-candidates { grid-template-columns: 1fr; }
  .action-intent-plan > footer { align-items: stretch; flex-direction: column; }
  .action-intent-plan > footer > small { margin-left: 0; }
  .action-proposal-plan { grid-template-columns: minmax(0, 1fr); gap: 11px; padding: 14px; }
  .action-proposal-plan > header { grid-template-columns: 38px minmax(0, 1fr); }
  .action-proposal-plan > header > i { width: 36px; height: 36px; }
  .action-proposal-plan > header > em { grid-column: 2; justify-self: start; }
  .action-proposal-plan > header b { font-size: 22px; }
  .action-proposal-plan > header p { font-size: var(--ming-font-body, 16px); }
  .action-proposal-plan > dl { grid-column: 1; }
  .action-proposal-plan > dl > div { flex-basis: 50%; }
  .action-proposal-plan > aside { grid-column: 1; padding: 8px 10px; border-left: 2px solid #8f7440; background: var(--folio-card, rgba(48, 38, 21, 0.32)); }
  .action-proposal-plan > footer { grid-column: 1; grid-template-columns: minmax(0, 1fr) minmax(0, 0.72fr); }
  .action-proposal-plan > footer button.cancel { grid-column: 1 / -1; min-height: 44px; }
  .action-proposal-plan > footer > small { text-align: left; }
}

.inference-report {
  min-height: 0;
  max-height: none;
  overflow: visible;
  padding: 13px 16px 11px;
  background:
    linear-gradient(100deg, var(--outcome-soft, rgba(63, 91, 76, 0.12)), transparent 38%),
    rgba(12, 17, 15, 0.94);
}
.resolution-topline {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 14px;
}
.resolution-title {
  min-width: 0;
  display: grid;
  gap: 5px;
}
.resolution-title > span {
  color: var(--gold-400);
  font-size: var(--ming-font-small, 14px);
  font-weight: 700;
  letter-spacing: 0.15em;
}
.resolution-title > div {
  min-width: 0;
  display: flex;
  flex-wrap: wrap;
  align-items: baseline;
  gap: 4px 9px;
}
.resolution-title b {
  flex: 0 0 auto;
  padding: 2px 6px;
  color: #cdb778;
  border: 1px solid rgba(207, 180, 119, 0.22);
  background: rgba(205, 176, 112, 0.06);
  font-size: var(--ming-font-small, 14px);
  font-weight: 700;
  letter-spacing: 0.08em;
}
.resolution-title strong {
  min-width: 0;
  color: var(--paper-200);
  font-size: var(--ming-font-small, 14px);
  font-weight: 650;
  line-height: 1.45;
  overflow-wrap: anywhere;
}
.resolution-time {
  margin-top: 6px;
  color: #809889;
  font-size: var(--ming-font-small, 14px);
  line-height: 1.4;
}
.inference-report h3 {
  max-width: none;
  display: block;
  overflow: visible;
  margin: 8px 0 0;
  color: #eee6d5;
  font-size: 14px;
  font-weight: 550;
  line-height: 1.62;
  text-overflow: clip;
  white-space: normal;
  overflow-wrap: anywhere;
  -webkit-box-orient: initial;
  -webkit-line-clamp: unset;
}
.inference-evidence {
  display: block;
  margin-top: 7px;
}
.inference-evidence .change-list {
  display: flex;
  flex-wrap: wrap;
  gap: 5px;
  margin: 0;
}
.resolution-details {
  margin-top: 8px;
  border-top: 1px solid rgba(214, 184, 124, 0.12);
  color: #9f9686;
  font-size: var(--ming-font-small, 14px);
  white-space: normal;
}
.resolution-details summary {
  width: max-content;
  padding-top: 7px;
  color: #a99c83;
  cursor: pointer;
  list-style-position: inside;
}
.resolution-details > div {
  display: grid;
  gap: 7px;
  padding: 7px 0 2px;
}
.resolution-details p {
  margin: 0;
  color: #b8ae9d;
  font-size: var(--ming-font-body, 16px);
  line-height: 1.65;
  white-space: normal;
  overflow-wrap: anywhere;
}
.campaign-shell .inference-report .resolution-details p { display: block; }
.resolution-details > div > small { color: #75867c; }
.resolution-details .outcome-basis {
  display: flex;
  flex-wrap: wrap;
  gap: 5px;
  overflow: visible;
  white-space: normal;
}
.resolution-details .outcome-basis span {
  max-width: none;
  overflow: visible;
  text-overflow: clip;
  white-space: normal;
}
.intent-audit {
  display: grid;
  grid-template-columns: auto 1fr;
  gap: 3px 10px;
  align-items: baseline;
  margin: 10px 0;
  padding: 9px 11px;
  border: 1px solid rgba(143, 183, 165, 0.3);
  background: rgba(12, 29, 24, 0.46);
}
.intent-audit span { color: #8fb7a5; font-size: var(--ming-font-small, 14px); letter-spacing: 0.08em; }
.intent-audit b { color: #dfd3b9; font-size: var(--ming-font-small, 14px); }
.intent-audit p { grid-column: 1 / -1; margin: 0; color: #9fa99e; font-size: var(--ming-font-body, 16px); line-height: 1.55; }
.threat-settlement-ledger { display: grid; gap: 6px; margin-top: 10px; padding: 9px 10px; border: 1px solid rgba(181, 74, 60, 0.34); background: #17100e; }
.threat-settlement-ledger > span { color: #c27865; font-size: var(--ming-font-small, 14px); letter-spacing: 0.08em; }
.threat-settlement-ledger article { display: grid; gap: 3px; }
.threat-settlement-ledger b { color: #ddc9a2; font-size: var(--ming-font-small, 14px); }
.threat-settlement-ledger p { margin: 0; color: #a99b87; font-size: var(--ming-font-body, 16px); line-height: 1.5; }
.ai-audit-ledger {
  display: grid;
  gap: 8px;
  margin: 10px 0;
  padding: 10px 11px;
  border: 1px solid rgba(105, 151, 137, 0.28);
  background: rgba(8, 20, 17, 0.58);
}
.ai-audit-ledger header,
.ai-audit-ledger footer {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 12px;
}
.ai-audit-ledger header span,
.ai-audit-ledger footer span {
  color: #8fb7a5;
  font-size: var(--ming-font-small, 14px);
  letter-spacing: 0.08em;
}
.ai-audit-ledger header b,
.ai-audit-ledger footer b {
  color: #d9cfb8;
  font-size: var(--ming-font-small, 14px);
}
.ai-audit-ledger > div {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
}
.ai-audit-ledger > div > span {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 5px 8px;
  border: 1px solid rgba(143, 183, 165, 0.2);
  color: #c9d5cd;
  font-size: var(--ming-font-small, 14px);
}
.ai-audit-ledger i {
  display: inline-grid;
  width: 20px;
  height: 20px;
  place-items: center;
  border: 1px solid rgba(143, 183, 165, 0.32);
  color: #8fb7a5;
  font-size: var(--ming-font-small, 14px);
  font-style: normal;
}
.ai-audit-ledger .failed { color: #d98a7e; }
.ai-audit-ledger footer {
  padding-top: 7px;
  border-top: 1px solid rgba(214, 184, 124, 0.12);
}
.ai-audit-ledger p { margin: 0; color: #909d94; font-size: var(--ming-font-body, 16px); line-height: 1.55; }
.feasibility-ledger {
  display: grid;
  gap: 8px;
  padding: 10px;
  border: 1px solid rgba(126, 173, 153, 0.24);
  background: rgba(8, 18, 15, 0.62);
}
.feasibility-ledger.band-impossible-now,
.feasibility-ledger.band-blocked { border-color: rgba(187, 83, 71, 0.42); background: rgba(38, 14, 12, 0.42); }
.feasibility-ledger > header { display: flex; align-items: baseline; gap: 9px; }
.feasibility-ledger > header span { color: #b99a55; letter-spacing: 0.1em; }
.feasibility-ledger > header b { color: #d9cfb8; font-size: 14px; }
.feasibility-ledger > header em { margin-left: auto; color: #8fb7a5; font-style: normal; font-weight: 700; }
.feasibility-ledger > div { display: grid; gap: 6px; grid-template-columns: repeat(2, minmax(0, 1fr)); }
.feasibility-ledger article { display: grid; grid-template-columns: auto 1fr; gap: 3px 8px; padding: 7px 9px; border: 1px solid rgba(214, 184, 124, 0.12); }
.feasibility-ledger article b { grid-row: 1 / span 2; align-self: center; color: #8fb7a5; }
.feasibility-ledger article span { color: #d0c5b0; font-size: var(--ming-font-small, 14px); line-height: 1.45; }
.feasibility-ledger article small { color: #8d938b; font-size: var(--ming-font-small, 14px); line-height: 1.4; white-space: normal; }
.feasibility-ledger article.hard-missing b { color: #db8075; }
.feasibility-ledger article.soft-missing b { color: #c9a764; }
.feasibility-ledger > div > p { grid-column: 1 / -1; }
@media (max-width: 720px) {
  .feasibility-ledger > div { grid-template-columns: 1fr; }
}

.choice-list.choice-count-4,
.campaign-shell .choice-list.choice-count-4 {
  grid-template-columns: repeat(2, minmax(0, 1fr));
}
.choice-list.choice-count-4 button,
.campaign-shell .choice-list.choice-count-4 button {
  height: auto;
  min-height: 68px;
  overflow: visible;
}
.choice-copy strong,
.campaign-shell .choice-list.choice-count-4 .choice-copy strong {
  display: block;
  overflow: visible;
  text-overflow: clip;
  white-space: normal;
  overflow-wrap: anywhere;
  -webkit-box-orient: initial;
  -webkit-line-clamp: unset;
}
.choice-copy small,
.campaign-shell .choice-list.choice-count-4 .choice-copy small {
  display: block;
  overflow: visible;
  text-overflow: clip;
  white-space: normal;
  overflow-wrap: anywhere;
}
.choice-cost { flex-wrap: wrap; white-space: normal; }

.archive-drawer { width: min(700px, 96vw); padding: 28px 30px; }
.archive-latest {
  margin-top: 18px;
  padding-bottom: 18px;
  border-bottom: 1px solid rgba(218, 187, 126, 0.14);
}
.archive-latest > span,
.archive-history > span {
  color: var(--gold-400);
  font-size: var(--ming-font-small, 14px);
  font-weight: 700;
  letter-spacing: 0.16em;
}
.archive-latest .inference-report {
  margin-top: 8px;
  border-color: rgba(211, 182, 122, 0.22);
  border-left-color: var(--outcome-accent, var(--jade-500));
  background: rgba(7, 12, 10, 0.74);
  box-shadow: inset 0 1px rgba(255, 255, 255, 0.025);
}
.archive-history { margin-top: 18px; }
.archive-drawer .resolution-title strong,
.archive-drawer .resolution-details p { overflow-wrap: anywhere; white-space: normal; }
.archive-drawer .inference-report h3 {
  max-width: none;
  display: block;
  overflow: visible;
  text-overflow: clip;
  white-space: normal;
  overflow-wrap: anywhere;
  -webkit-box-orient: initial;
  -webkit-line-clamp: unset;
}

/* V0.9.1 · 所有行动的持久结算回执与可读卷宗 */
.turn-recap {
  min-width: 0;
  min-height: 94px;
  display: grid;
  grid-template-columns: 156px minmax(190px, 1.25fr) minmax(250px, 1fr) 102px;
  align-items: center;
  gap: 14px;
  padding: 10px 12px;
  border: 1px solid color-mix(in srgb, var(--outcome-accent, #bda36b) 36%, transparent);
  border-left: 4px solid var(--outcome-accent, #bda36b);
  background:
    linear-gradient(92deg, var(--outcome-soft, rgba(161, 145, 112, 0.12)), transparent 38%),
    rgba(10, 15, 13, 0.96);
  box-shadow: inset 0 1px rgba(255, 255, 255, 0.025), 0 7px 20px rgba(0, 0, 0, 0.16);
}
.turn-recap-mark { min-width: 0; display: flex; align-items: center; gap: 9px; }
.turn-recap-mark img { width: 52px; height: 52px; flex: 0 0 auto; object-fit: contain; filter: drop-shadow(0 5px 9px rgba(0, 0, 0, 0.5)); }
.turn-recap-mark span { min-width: 0; display: grid; gap: 2px; }
.turn-recap-mark small { color: #a99f8b; font-size: var(--ming-font-small, 14px); font-weight: 650; line-height: 1.25; white-space: nowrap; }
.turn-recap-mark strong { color: var(--outcome-accent, #d7c49c); font-family: var(--font-brush); font-size: 25px; font-weight: 400; line-height: 1.1; }
.turn-recap-copy { min-width: 0; padding-left: 13px; border-left: 1px solid rgba(214, 184, 124, 0.16); }
.turn-recap-copy b { display: block; overflow: hidden; color: #eadfc8; font-size: 14px; text-overflow: ellipsis; white-space: nowrap; }
.turn-recap-copy p { display: -webkit-box; overflow: hidden; margin: 4px 0 0; color: #bdb4a4; font-size: var(--ming-font-body, 16px); line-height: 1.55; -webkit-box-orient: vertical; -webkit-line-clamp: 2; }
.turn-recap-ledger { min-width: 0; display: grid; gap: 7px; }
.turn-recap-ledger em { overflow: hidden; color: #829b8c; font-size: var(--ming-font-small, 14px); font-style: normal; font-weight: 650; text-overflow: ellipsis; white-space: nowrap; }
.turn-recap-ledger > div { display: flex; flex-wrap: wrap; gap: 4px; }
.turn-recap-ledger span,
.archive-entry-changes span { display: inline-flex; align-items: baseline; gap: 4px; padding: 3px 7px; border: 1px solid rgba(255, 255, 255, 0.08); border-radius: 12px; color: #c9bfae; background: rgba(0, 0, 0, 0.16); font-size: var(--ming-font-small, 14px); line-height: 1.25; }
.turn-recap-ledger span b,
.archive-entry-changes span b { color: inherit; font-size: inherit; }
.turn-recap-ledger .positive,
.archive-entry-changes .positive { color: #8dc4a7; }
.turn-recap-ledger .negative,
.archive-entry-changes .negative { color: #dd8a79; }
.turn-recap-ledger .neutral,
.archive-entry-changes .neutral { color: #d8bd80; }

/* 科技研作等已落账行动的天机补叙：篇幅是软目标，正文永不按行数裁切。 */
.turn-transition.revealed {
  place-items: start center;
  overflow-x: hidden;
  overflow-y: auto;
}
.turn-transition.revealed .turn-transition-copy { margin: max(18px, 4vh) auto 72px; }
.turn-transition.revealed .turn-change-ledger > div {
  max-height: none;
  overflow-y: visible;
}
.action-result-narrative {
  min-width: 0;
  display: grid;
  gap: 8px;
  margin-top: 10px;
  padding: 12px 14px;
  border: 1px solid rgba(119, 166, 143, 0.25);
  border-left: 3px solid #78aa91;
  background: linear-gradient(105deg, rgba(47, 92, 70, 0.18), rgba(5, 10, 8, 0.68));
}
.action-result-narrative > header {
  min-width: 0;
  display: flex;
  flex-wrap: wrap;
  align-items: baseline;
  justify-content: space-between;
  gap: 4px 12px;
}
.action-result-narrative > header b { color: #d7bd79; font-size: 15px; }
.action-result-narrative > header small { color: #85ad98; font-size: var(--ming-font-small, 14px); line-height: 1.5; letter-spacing: 0; }
.action-result-narrative > p,
.turn-transition-copy blockquote .action-result-narrative > p,
.inference-report .action-result-narrative > p {
  max-width: none;
  max-height: none;
  display: block;
  overflow: visible;
  margin: 0;
  color: #ddd3bf;
  font-size: clamp(16px, 1.15vw, 17px);
  line-height: 1.88;
  text-overflow: clip;
  white-space: pre-wrap;
  overflow-wrap: anywhere;
  -webkit-box-orient: initial;
  -webkit-line-clamp: unset;
}
.action-result-narrative.pending { border-left-color: #b79d62; background: rgba(77, 64, 34, 0.18); }
.action-result-narrative.fallback { border-left-color: #8f8065; background: rgba(44, 40, 32, 0.2); }
.inference-report .action-result-narrative { margin-top: 10px; }

/* 结算幕是阅读页，不用缩小正文来换取首屏塞满。 */
.turn-transition.revealed .turn-action-summary b { font-size: var(--ming-font-small, 14px); }
.turn-transition.revealed .turn-action-summary span { font-size: 15px; line-height: 1.72; }
.turn-transition.revealed .turn-transition-copy blockquote > b { font-size: var(--ming-font-body, 16px); }
.turn-transition.revealed .turn-transition-copy blockquote > span { font-size: 16px; line-height: 1.78; }
.turn-transition.revealed .turn-change-ledger > header b { font-size: 14px; }
.turn-transition.revealed .turn-change-ledger > header small { font-size: var(--ming-font-small, 14px); }
.turn-transition.revealed .turn-change-group > header b { font-size: var(--ming-font-small, 14px); }
.turn-transition.revealed .turn-change-group > header small { font-size: var(--ming-font-small, 14px); }
.turn-transition.revealed .turn-change-entry > span b,
.turn-transition.revealed .turn-change-entry > span small { font-size: var(--ming-font-small, 14px); line-height: 1.42; }
.turn-transition.revealed .turn-outcome-basis i { font-size: var(--ming-font-small, 14px); line-height: 1.5; }
.turn-transition.revealed .turn-outcome-mark small,
.turn-transition.revealed .turn-outcome-mark em,
.turn-transition.revealed .turn-time-duration > small,
.turn-transition.revealed .turn-time-duration > span,
.turn-transition.revealed .turn-time-range small,
.turn-transition.revealed .turn-transition-copy blockquote small,
.turn-transition.revealed .turn-change-ledger > header small,
.turn-transition.revealed .turn-change-disclosure > summary small,
.turn-transition.revealed .turn-change-disclosure > summary em { font-size: var(--ming-font-small, 14px); }

.turn-transition.revealed:not(.has-personal-combat) {
  --turn-action-rail-height: 78px;
  place-items: stretch center;
  overflow: hidden;
}
.turn-transition.revealed:not(.has-personal-combat)::after {
  content: '';
  position: absolute;
  right: 0;
  bottom: 0;
  left: 0;
  z-index: 6;
  height: var(--turn-action-rail-height);
  border-top: 1px solid rgba(211, 179, 112, 0.22);
  background: linear-gradient(180deg, rgba(4, 8, 6, 0.82), rgba(3, 6, 5, 0.98) 42%);
  box-shadow: 0 -14px 30px rgba(0, 0, 0, 0.3);
  pointer-events: none;
}
.turn-transition.revealed:not(.has-personal-combat) .turn-transition-copy {
  width: min(820px, calc(100% - 44px));
  height: calc(100dvh - var(--turn-action-rail-height));
  max-height: calc(100dvh - var(--turn-action-rail-height));
  margin: 0 auto;
  padding: 18px 24px 24px;
  overflow-x: hidden;
  overflow-y: auto;
  overscroll-behavior: contain;
  scrollbar-gutter: stable;
}
.turn-transition.revealed:not(.has-personal-combat) .turn-result-continue {
  position: absolute;
  left: 50%;
  bottom: max(14px, env(safe-area-inset-bottom));
  z-index: 8;
  width: min(260px, calc(100vw - 32px));
  min-height: 50px;
  margin: 0;
  transform: translateX(-50%);
  background: #1b3026;
}
.turn-transition.revealed:not(.has-personal-combat) .turn-result-continue:hover,
.turn-transition.revealed:not(.has-personal-combat) .turn-result-continue:focus-visible { transform: translate(-50%, -1px); }

@media (max-width: 760px) {
  .turn-transition.revealed:not(.has-personal-combat) { --turn-action-rail-height: 76px; }
  .turn-transition.revealed:not(.has-personal-combat) .turn-transition-copy {
    width: calc(100% - 14px);
    height: calc(100dvh - var(--turn-action-rail-height));
    max-height: calc(100dvh - var(--turn-action-rail-height));
    padding: 10px 7px 18px;
  }
  .turn-transition.revealed:not(.has-personal-combat) .turn-result-continue {
    width: calc(100vw - 24px);
    min-height: 52px;
  }
}

@media (min-width: 761px) and (max-height: 1050px) {
  .turn-transition.revealed .turn-transition-copy {
    margin-top: 18px;
    padding-top: 14px;
  }
  .turn-transition.revealed .turn-outcome-mark { margin-top: 3px; margin-bottom: 2px; }
  .turn-transition.revealed .turn-outcome-mark img { width: 54px; height: 54px; }
  .turn-transition.revealed .turn-transition-copy h2 { margin-top: 2px; font-size: clamp(38px, 4.8vw, 56px); }
  .turn-transition.revealed .turn-time-ledger { margin-top: 8px; }
  .turn-transition.revealed .turn-action-summary { margin-top: 10px; }
  .turn-transition.revealed .turn-transition-copy blockquote { margin-top: 12px; }
  .turn-transition.revealed .turn-result-continue { margin-top: 12px; }
}

.turn-recap > button {
  min-height: 43px;
  padding: 8px 10px;
  color: #d9c697;
  border: 1px solid rgba(210, 181, 119, 0.28);
  background: rgba(16, 24, 20, 0.86);
  font-size: var(--ming-font-small, 14px);
  font-weight: 700;
  cursor: pointer;
}
.turn-recap > button:hover,
.turn-recap > button:focus-visible { color: #f0ddb0; border-color: rgba(226, 195, 132, 0.66); background: rgba(31, 46, 38, 0.92); }

.archive-drawer header span,
.archive-drawer section > span { font-size: var(--ming-font-small, 14px); line-height: 1.5; }
.archive-drawer h2 { font-size: 40px; }
.archive-drawer header button { min-width: 72px; min-height: 44px; font-size: var(--ming-font-small, 14px); }
.archive-meta div { padding: 12px; }
.archive-meta span { font-size: var(--ming-font-small, 14px); }
.archive-meta strong { margin-top: 5px; font-size: 14px; }
.archive-drawer .chronicle-ledger { margin-top: -8px; }
.archive-latest > span,
.archive-history > span { font-size: var(--ming-font-small, 14px); }
.archive-history { min-width: 0; }
.archive-history-heading {
  min-width: 0;
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 12px;
}
.archive-history-heading > span {
  color: var(--gold-400);
  font-size: var(--ming-font-small, 14px);
  font-weight: 700;
  letter-spacing: 0.16em;
}
.archive-history-heading > small {
  flex: 0 0 auto;
  color: #7f9588;
  font-size: var(--ming-font-small, 14px);
}
.archive-category-filters {
  width: 100%;
  min-width: 0;
  display: flex;
  gap: 8px;
  overflow-x: auto;
  margin-top: 11px;
  padding: 2px 1px 8px;
  scrollbar-width: thin;
  scrollbar-color: rgba(194, 161, 99, 0.28) transparent;
  overscroll-behavior-inline: contain;
}
.archive-category-filters button {
  min-height: 44px;
  flex: 0 0 auto;
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 8px 12px;
  color: #aaa393;
  border: 1px solid rgba(195, 164, 103, 0.2);
  border-radius: 3px;
  background: rgba(12, 18, 15, 0.82);
  font-size: var(--ming-font-small, 14px);
  font-weight: 650;
  cursor: pointer;
}
.archive-category-filters button b {
  min-width: 20px;
  padding: 1px 5px;
  color: #81998a;
  border-radius: 999px;
  background: rgba(111, 147, 126, 0.1);
  font-size: var(--ming-font-small, 14px);
  font-weight: 700;
  text-align: center;
}
.archive-category-filters button:hover,
.archive-category-filters button:focus-visible {
  color: #ead9b5;
  border-color: rgba(219, 183, 113, 0.52);
  background: rgba(28, 39, 32, 0.92);
}
.archive-category-filters button[aria-pressed="true"] {
  color: #f0dfb8;
  border-color: rgba(221, 185, 112, 0.66);
  background: linear-gradient(180deg, rgba(76, 59, 32, 0.82), rgba(34, 38, 29, 0.94));
  box-shadow: inset 0 1px rgba(255, 238, 194, 0.08);
}
.archive-category-filters button[aria-pressed="true"] b {
  color: #e5ca91;
  background: rgba(206, 169, 97, 0.14);
}
.archive-history-recent { margin-top: 6px; }
.archive-history-older {
  margin-top: 10px;
  border-top: 1px solid rgba(210, 181, 118, 0.13);
}
.archive-history-older summary {
  min-height: 44px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  padding: 8px 10px;
  color: #c7b891;
  font-size: var(--ming-font-small, 14px);
  font-weight: 700;
  letter-spacing: 0.08em;
  cursor: pointer;
  list-style: none;
}
.archive-history-older summary::-webkit-details-marker { display: none; }
.archive-history-older summary::after {
  content: '展开';
  color: #7f9588;
  font-size: var(--ming-font-small, 14px);
  letter-spacing: 0;
}
.archive-history-older[open] summary::after { content: '收起'; }
.archive-history-older summary:hover,
.archive-history-older summary:focus-visible { color: #ecd8aa; background: rgba(181, 148, 87, 0.06); }
.archive-history-older > ol { margin-top: 0; }
.archive-drawer li.archive-page-marker {
  min-height: 44px;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 9px;
  padding: 10px;
  color: #82998b;
  border-top: 1px solid rgba(191, 158, 96, 0.2);
  border-bottom: 1px solid rgba(191, 158, 96, 0.12);
  border-left: 0;
  background: linear-gradient(90deg, transparent, rgba(171, 139, 82, 0.07), transparent);
  outline-offset: -2px;
}
.archive-drawer li.archive-page-marker span,
.archive-drawer li.archive-page-marker b { font-size: var(--ming-font-small, 14px); }
.archive-drawer li.archive-page-marker span { color: var(--gold-400); font-weight: 700; letter-spacing: 0.12em; }
.archive-drawer li.archive-page-marker b { color: #8da093; font-weight: 600; }
.archive-load-more {
  width: 100%;
  min-height: 44px;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 12px;
  margin: 12px 0 4px;
  padding: 9px 14px;
  color: #ddc691;
  border: 1px solid rgba(205, 170, 103, 0.34);
  border-radius: 3px;
  background: linear-gradient(180deg, rgba(53, 48, 31, 0.7), rgba(20, 29, 24, 0.94));
  font-size: var(--ming-font-small, 14px);
  font-weight: 700;
  cursor: pointer;
}
.archive-load-more small {
  color: #82998b;
  font-size: var(--ming-font-small, 14px);
  font-weight: 600;
}
.archive-load-more:hover,
.archive-load-more:focus-visible {
  color: #f2ddb0;
  border-color: rgba(224, 188, 116, 0.64);
  background: linear-gradient(180deg, rgba(77, 61, 34, 0.8), rgba(29, 40, 33, 0.96));
}
.archive-history-end {
  min-height: 44px;
  display: flex;
  align-items: center;
  justify-content: center;
  margin: 12px 0 4px;
  color: #789084;
  border-top: 1px solid rgba(191, 158, 96, 0.14);
  font-size: var(--ming-font-small, 14px);
  letter-spacing: 0.08em;
}
.archive-latest .inference-report { padding: 16px 18px 14px; }
.archive-drawer .resolution-title > span { font-size: var(--ming-font-small, 14px); }
.archive-drawer .resolution-title b { font-size: var(--ming-font-small, 14px); }
.archive-drawer .resolution-title strong { font-size: 15px; }
.archive-drawer .inference-verdict small { font-size: var(--ming-font-small, 14px); }
.archive-drawer .resolution-time { font-size: var(--ming-font-small, 14px); }
.archive-drawer .inference-report h3 { font-size: 16px; line-height: 1.72; }
.archive-drawer .change-list span { padding: 4px 8px; font-size: var(--ming-font-small, 14px); }
.archive-drawer .resolution-details { font-size: var(--ming-font-small, 14px); }
.archive-drawer .resolution-details p { font-size: var(--ming-font-body, 16px); }
.archive-drawer ol { margin-top: 12px; }
.archive-drawer li.archive-entry {
  grid-template-columns: 126px minmax(0, 1fr) 126px;
  align-items: start;
  gap: 16px;
  padding: 17px 10px;
  border-top: 1px solid rgba(210, 181, 118, 0.13);
  border-left: 3px solid color-mix(in srgb, var(--outcome-accent, #bda36b) 52%, transparent);
  background: linear-gradient(90deg, var(--outcome-soft, rgba(161, 145, 112, 0.08)), transparent 45%);
}
.archive-entry-time { display: grid; gap: 5px; }
.archive-drawer .archive-entry-time strong { color: #cfbc92; font-size: var(--ming-font-small, 14px); line-height: 1.4; }
.archive-drawer .archive-entry-time small { color: #7e9587; font-size: var(--ming-font-small, 14px); }
.archive-entry-copy { min-width: 0; }
.archive-drawer .archive-entry-copy > span { display: block; margin-bottom: 4px; color: var(--gold-400); font-size: var(--ming-font-small, 14px); font-weight: 700; letter-spacing: 0.1em; }
.archive-drawer .archive-entry-copy > strong { display: block; color: #e6dcc7; font-size: 14px; line-height: 1.4; }
.archive-drawer .archive-entry-copy > p { margin-top: 5px; color: #aaa193; font-size: var(--ming-font-body, 16px); line-height: 1.65; }
.archive-entry-changes { display: flex; flex-wrap: wrap; gap: 4px; margin-top: 8px; }
.archive-drawer .archive-entry-changes span,
.archive-drawer .archive-entry-changes span b { font-size: var(--ming-font-small, 14px); }
.archive-entry-aside { display: grid; justify-items: end; gap: 8px; }
.archive-drawer .archive-entry-aside em { color: #80988a; font-size: var(--ming-font-small, 14px); text-align: right; }
.archive-drawer li .archive-outcome { font-size: var(--ming-font-small, 14px); }
.archive-drawer footer { font-size: var(--ming-font-small, 14px); }

.archive-view-tabs {
  min-width: 0;
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 8px;
  margin: 14px 0 18px;
  padding: 5px;
  border: 1px solid rgba(199, 165, 98, 0.22);
  background: rgba(5, 10, 8, 0.68);
}
.archive-view-tabs button {
  min-width: 0;
  min-height: 48px;
  display: grid;
  align-content: center;
  gap: 2px;
  padding: 8px 11px;
  color: #9b9485;
  border: 1px solid transparent;
  background: transparent;
  text-align: left;
  cursor: pointer;
}
.archive-view-tabs button span { color: inherit; font-size: var(--ming-font-small, 14px); font-weight: 760; letter-spacing: 0.08em; }
.archive-view-tabs button small { overflow: hidden; color: #71877a; font-size: var(--ming-font-small, 14px); text-overflow: ellipsis; white-space: nowrap; }
.archive-view-tabs button:hover,
.archive-view-tabs button:focus-visible { color: #e7d6b1; border-color: rgba(207, 172, 104, 0.34); outline: none; }
.archive-view-tabs button[aria-pressed="true"] {
  color: #f0dfb8;
  border-color: rgba(220, 183, 110, 0.55);
  background: linear-gradient(145deg, rgba(81, 61, 31, 0.62), rgba(24, 37, 30, 0.9));
  box-shadow: inset 3px 0 #b19355;
}
.archive-view-tabs button[aria-pressed="true"] small { color: #9db6a7; }

.archive-drawer.archive-drawer-yearbook { width: min(860px, 96vw); }

.campaign-yearbook { min-width: 0; display: grid; gap: 12px; }
.yearbook-page-source {
  margin: -3px 2px 0;
  color: #7f998a;
  font-size: var(--ming-font-small, 14px);
  line-height: 1.5;
}
.yearbook-page-source::before { content: '卷页 · '; color: #aa8d54; }
.yearbook-page-source.is-fallback { color: #a49a86; }
.yearbook-page-status {
  min-height: 152px;
  display: grid;
  place-items: center;
  align-content: center;
  gap: 10px;
  padding: 24px;
  color: #9d9687;
  border: 1px solid rgba(191, 158, 97, 0.2);
  background: linear-gradient(145deg, rgba(32, 45, 37, 0.62), rgba(9, 14, 12, 0.92));
}
.yearbook-page-status > span {
  width: 42px;
  height: 42px;
  display: grid;
  place-items: center;
  color: #d7bd84;
  border: 1px solid rgba(207, 171, 101, 0.4);
  border-radius: 50%;
  font-family: var(--font-brush);
  font-size: 20px;
  animation: yearbook-page-breathe 1.4s ease-in-out infinite alternate;
}
.yearbook-page-status p { margin: 0; font-size: var(--ming-font-body, 16px); line-height: 1.65; text-align: center; }
@keyframes yearbook-page-breathe { to { border-color: rgba(119, 175, 147, 0.72); box-shadow: 0 0 20px rgba(75, 135, 106, 0.2); transform: translateY(-2px); } }
@media (prefers-reduced-motion: reduce) { .yearbook-page-status > span { animation: none; } }
.yearbook-heading {
  min-width: 0;
  display: flex;
  align-items: end;
  justify-content: space-between;
  gap: 14px;
  padding: 0 2px 10px;
  border-bottom: 1px solid rgba(206, 172, 105, 0.2);
}
.yearbook-heading > div { min-width: 0; }
.yearbook-heading span { color: #aa8c51; font-size: var(--ming-font-small, 14px); font-weight: 720; letter-spacing: 0.14em; }
.yearbook-heading h3 { margin: 2px 0 0; color: #e9ddc3; font-family: var(--font-brush); font-size: 24px; font-weight: 400; letter-spacing: 0.06em; }
.yearbook-heading > small { flex: 0 0 auto; color: #82988a; font-size: var(--ming-font-small, 14px); }
.yearbook-focus-note {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr) auto;
  align-items: center;
  gap: 10px;
  padding: 10px 12px;
  border: 1px solid rgba(111, 157, 135, 0.45);
  background: linear-gradient(90deg, rgba(23, 55, 43, 0.82), rgba(10, 20, 16, 0.88));
}
.yearbook-focus-note span { color: #98bea8; font-size: var(--ming-font-small, 14px); font-weight: 760; letter-spacing: 0.08em; }
.yearbook-focus-note b { overflow: hidden; color: #e2d8bd; font-size: var(--ming-font-small, 14px); text-overflow: ellipsis; white-space: nowrap; }
.yearbook-focus-note small { color: #8aa193; font-size: var(--ming-font-small, 14px); }
.yearbook-browser {
  min-width: 0;
  display: grid;
  grid-template-columns: minmax(172px, 0.32fr) minmax(0, 1fr);
  align-items: start;
  gap: 14px;
}
.yearbook-decade-list {
  min-width: 0;
  display: grid;
  gap: 7px;
  position: sticky;
  top: -16px;
}
.yearbook-decade-list > p,
.yearbook-empty { margin: 0; padding: 18px 14px; color: #9d9687; border: 1px solid rgba(191, 158, 97, 0.18); background: rgba(12, 17, 14, 0.72); font-size: var(--ming-font-body, 16px); line-height: 1.65; }
.yearbook-decade {
  min-width: 0;
  border: 1px solid rgba(191, 158, 97, 0.18);
  background: rgba(10, 15, 13, 0.76);
}
.yearbook-decade.is-current { border-color: rgba(203, 168, 99, 0.42); box-shadow: inset 3px 0 rgba(177, 145, 82, 0.7); }
.yearbook-decade > summary {
  min-height: 44px;
  display: grid;
  align-content: center;
  gap: 2px;
  padding: 7px 10px;
  cursor: pointer;
  list-style: none;
}
.yearbook-decade > summary::-webkit-details-marker { display: none; }
.yearbook-decade > summary span { color: #d1bd8e; font-size: var(--ming-font-small, 14px); font-weight: 740; }
.yearbook-decade > summary small { color: #758b7e; font-size: var(--ming-font-small, 14px); }
.yearbook-decade > summary:hover,
.yearbook-decade > summary:focus-visible { background: rgba(72, 57, 31, 0.28); outline: none; }
.yearbook-year-list { display: grid; gap: 5px; padding: 0 7px 8px; }
.yearbook-year-button {
  min-width: 0;
  min-height: 44px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
  padding: 7px 9px;
  color: #a7a091;
  border: 1px solid rgba(181, 148, 87, 0.14);
  background: rgba(15, 22, 18, 0.84);
  font-size: var(--ming-font-small, 14px);
  cursor: pointer;
}
.yearbook-year-button b { flex: 0 0 auto; color: #789284; font-size: var(--ming-font-small, 14px); }
.yearbook-year-button:hover,
.yearbook-year-button:focus-visible { color: #ead9b5; border-color: rgba(210, 175, 106, 0.45); outline: none; }
.yearbook-year-button[aria-pressed="true"] { color: #f1dfb7; border-color: rgba(214, 178, 106, 0.62); background: rgba(77, 59, 31, 0.55); }
.yearbook-year-button[aria-pressed="true"] b { color: #d5b978; }
.yearbook-year-volume { min-width: 0; }
.archive-drawer .yearbook-entry-list { margin: 0; }
.archive-drawer li.yearbook-entry {
  min-width: 0;
  display: grid;
  grid-template-columns: minmax(164px, 0.42fr) minmax(0, 1fr) 92px;
  align-items: start;
  gap: 14px;
  padding: 15px 11px;
  border-top: 1px solid rgba(207, 174, 108, 0.14);
  border-left: 3px solid rgba(131, 161, 143, 0.38);
  background: linear-gradient(90deg, rgba(63, 89, 73, 0.09), transparent 52%);
}
.archive-drawer li.yearbook-entry:first-child { border-top-color: rgba(207, 174, 108, 0.26); }
.archive-drawer li.yearbook-entry.tone-failed { border-left-color: rgba(171, 83, 69, 0.62); }
.archive-drawer li.yearbook-entry.tone-mixed { border-left-color: rgba(187, 145, 73, 0.62); }
.archive-drawer li.yearbook-entry.memory-source-focus { border-color: rgba(120, 183, 151, 0.72); background: linear-gradient(90deg, rgba(44, 94, 69, 0.28), rgba(18, 29, 23, 0.72)); box-shadow: inset 0 0 0 1px rgba(127, 190, 157, 0.16); }
.yearbook-entry-time { display: grid; gap: 4px; }
.archive-drawer .yearbook-entry-time strong { color: #d0bc8f; font-size: var(--ming-font-small, 14px); line-height: 1.5; }
.archive-drawer .yearbook-entry-time small { color: #81998b; font-size: var(--ming-font-small, 14px); line-height: 1.45; }
.yearbook-entry-copy { min-width: 0; }
.archive-drawer .yearbook-entry-copy > span { display: block; color: #a78a51; font-size: var(--ming-font-small, 14px); font-weight: 680; letter-spacing: 0.06em; }
.archive-drawer .yearbook-entry-copy h4 { margin: 4px 0 0; color: #e8ddc5; font-size: 14px; line-height: 1.4; }
.archive-drawer .yearbook-entry-copy p { margin: 5px 0 0; color: #aaa294; font-size: var(--ming-font-body, 16px); line-height: 1.65; overflow-wrap: anywhere; }
.yearbook-entry-aside { display: grid; justify-items: end; gap: 6px; }
.archive-drawer .yearbook-entry-aside b { color: #a9c1b2; font-size: var(--ming-font-small, 14px); }
.archive-drawer .yearbook-entry-aside small { color: #7b8e83; font-size: var(--ming-font-small, 14px); text-align: right; }
.yearbook-load-more {
  width: 100%;
  min-height: 48px;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 12px;
  margin-top: 12px;
  color: #ddc691;
  border: 1px solid rgba(205, 170, 103, 0.34);
  background: linear-gradient(180deg, rgba(53, 48, 31, 0.7), rgba(20, 29, 24, 0.94));
  font-size: var(--ming-font-small, 14px);
  font-weight: 720;
  cursor: pointer;
}
.yearbook-load-more small { color: #82998b; font-size: var(--ming-font-small, 14px); }
.yearbook-load-more:hover,
.yearbook-load-more:focus-visible { color: #f2ddb0; border-color: rgba(224, 188, 116, 0.64); outline: none; }
.yearbook-load-more:disabled { color: #8e856f; cursor: wait; opacity: 0.74; }
.yearbook-end { min-height: 44px; display: grid; place-items: center; margin: 10px 0 0; color: #789084; border-top: 1px solid rgba(191, 158, 96, 0.14); font-size: var(--ming-font-small, 14px); }

@media (max-width: 1250px) and (min-width: 761px) {
  .turn-recap { grid-template-columns: 144px minmax(180px, 1fr) 96px; }
  .turn-recap-ledger { grid-column: 2; }
  .turn-recap-copy p { -webkit-line-clamp: 1; }
}

@media (max-width: 760px) {
  .turn-recap { grid-template-columns: 1fr auto; gap: 10px; }
  .turn-recap-copy,
  .turn-recap-ledger { grid-column: 1 / -1; padding-left: 0; border-left: 0; }
  .turn-recap > button { grid-column: 2; grid-row: 1; }
  .archive-drawer { width: 100vw; padding: 20px 16px; }
  .archive-drawer li.archive-entry { grid-template-columns: 100px minmax(0, 1fr); }
  .archive-entry-aside { grid-column: 2; justify-items: start; grid-template-columns: auto auto; align-items: center; }
  .archive-view-tabs button { min-height: 52px; }
  .archive-view-tabs button small { white-space: normal; }
  .yearbook-focus-note { grid-template-columns: 1fr; gap: 3px; }
  .yearbook-focus-note b { white-space: normal; }
  .yearbook-browser { grid-template-columns: 1fr; }
  .yearbook-decade-list { position: static; grid-template-columns: 1fr; }
  .yearbook-year-list { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .archive-drawer li.yearbook-entry { grid-template-columns: 1fr; gap: 7px; padding: 15px 10px; }
  .yearbook-entry-aside { display: flex; justify-content: flex-start; gap: 10px; }
}

@media (min-width: 1080px) and (min-height: 680px) {
  .campaign-event-stack {
    display: block;
    overflow-y: auto;
    scrollbar-width: thin;
    scrollbar-color: rgba(190, 157, 96, 0.34) transparent;
  }
  .campaign-shell .ai-event-card {
    height: auto;
    min-height: 100%;
    overflow: visible;
  }
  .campaign-shell .ai-event-card .choice-list {
    margin-top: auto;
    padding-top: 12px;
  }
  .campaign-shell .inference-report {
    min-height: 0;
    max-height: none;
    padding: 11px 15px 9px;
  }
  .campaign-shell .free-action-panel {
    grid-template-columns: minmax(220px, 0.72fr) minmax(420px, 1.28fr);
  }
  .campaign-shell .free-action-intro,
  .campaign-shell .free-action-composer {
    height: 87px;
  }
  .campaign-shell .free-action-composer {
    grid-template-columns: minmax(0, 1fr) 210px;
    grid-template-rows: 18px minmax(0, 1fr);
  }
  .campaign-shell .free-action-toolbar { display: contents; }
  .campaign-shell .free-action-toolbar > small {
    display: flex;
    grid-column: 2;
    grid-row: 1;
    align-self: start;
    justify-self: end;
    width: 210px;
    flex-wrap: nowrap;
    justify-content: space-between;
    gap: 6px;
    font-size: var(--ming-font-small, 14px);
    line-height: 1.15;
    height: 18px;
    align-items: center;
    overflow: visible;
    white-space: nowrap;
  }
  .campaign-shell .free-action-composer textarea {
    min-height: 64px;
    max-height: 64px;
  }
  .campaign-shell .free-action-composer button {
    grid-column: 2;
    grid-row: 2;
    width: 100%;
    height: 64px;
  }
  .campaign-shell .choice-list.choice-count-4 button {
    min-height: 68px;
    padding-block: 7px;
  }
}

/* 草稿回执加入标签行后禁止挤压：主标签永不折行收窄，回执独占整行按网格排布
   （与移动端同契约）。回执过长时省略号截断，不再叠上字数与快捷键提示。 */
.campaign-shell .free-action-label > b {
  white-space: nowrap;
  flex-shrink: 0;
}
.campaign-shell .free-action-label:has(.action-draft-receipt) {
  flex-wrap: wrap;
  row-gap: 4px;
}
.campaign-shell .free-action-label > .action-draft-receipt {
  flex: 1 1 100%;
  display: grid;
  grid-template-columns: 24px minmax(0, 1fr);
  align-items: center;
  gap: 2px 6px;
  min-width: 0;
}
.campaign-shell .free-action-label > .action-draft-receipt > i {
  grid-row: 1 / 3;
}
.campaign-shell .free-action-label > .action-draft-receipt > b,
.campaign-shell .free-action-label > .action-draft-receipt > small {
  grid-column: 2;
  min-width: 0;
  max-width: 100%;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

/* 另拟一策骑跨标签保底：面板上缘恒定留出标签高度，任何前置章节的末行都不会被盖住。 */
.campaign-shell .free-action-panel { margin-top: 14px; }

@media (max-width: 920px) {
  .free-action-panel { grid-template-columns: 1fr; }
}

@media (max-width: 760px) {
  .free-action-panel { gap: 14px; padding: 15px; }
  .free-action-toolbar { align-items: stretch; flex-direction: column; }
  .free-action-composer button { width: 100%; min-height: 62px; }
  .choice-list.choice-count-4,
  .campaign-shell .choice-list.choice-count-4 { grid-template-columns: 1fr; }
  .resolution-topline { align-items: flex-start; }
  .event-side {
    min-width: 0;
    display: flex;
    align-items: flex-end;
    flex-direction: column;
  }
  .event-fortune { width: 132px; }
}

@media (prefers-reduced-motion: reduce) {
  .free-action-composer button,
  .free-action-composer button::before,
  .free-action-composer button::after { transition: none; }
}

/* V0.8.2 · 四策完整展示与自拟行动标题层级 */
.campaign-shell .free-action-heading {
  min-height: 48px;
  align-items: center;
}

.campaign-shell .free-action-heading > div {
  min-width: 0;
  display: grid;
  grid-template-rows: auto auto;
  align-content: center;
  row-gap: 5px;
}

.campaign-shell .free-action-heading span {
  position: static;
  margin: 0;
  line-height: 1.15;
}

.campaign-shell .free-action-heading h3 {
  margin: 0;
  line-height: 1.08;
}

@media (min-width: 1500px) {
  .campaign-shell .choice-list.choice-count-4 {
    max-width: none;
    grid-template-columns: repeat(4, minmax(0, 1fr));
  }

  .campaign-shell .choice-list.choice-count-4 button {
    min-height: 82px;
  }
}

/* V0.8.0 · 特质浮层自动避让视口边缘 */
@media (min-width: 761px) {
  .trait-tooltip {
    max-height: calc(100dvh - 28px);
    overflow-y: auto;
  }

  .actor-list .trait-tooltip {
    z-index: 500;
  }

  .actor-list .trait-chip.expanded {
    transform: none;
  }

  .trait-tooltip::after { left: var(--trait-arrow-left, 31px); }

  .trait-tooltip.placement-above::after {
    top: auto;
    bottom: -7px;
    border: 0;
    border-right: 1px solid rgba(213, 180, 113, 0.64);
    border-bottom: 1px solid rgba(213, 180, 113, 0.64);
  }

  .trait-tooltip.placement-below::after {
    top: -7px;
    bottom: auto;
    border: 0;
    border-top: 1px solid rgba(213, 180, 113, 0.64);
    border-left: 1px solid rgba(213, 180, 113, 0.64);
  }
}

/* V0.9.1 · 顶栏货币可读性 */
@media (min-width: 761px) {
  .currency-card,
  .campaign-wallets .currency-card {
    width: 184px;
    min-width: 184px;
    grid-template-columns: 40px minmax(0, 1fr) auto;
    gap: 7px;
    padding: 5px 10px 5px 5px;
  }

  .currency-card.player-api {
    width: 230px;
    min-width: 230px;
    grid-template-columns: 40px minmax(104px, 1fr) auto;
  }

  .campaign-wallets .currency-card.player-api {
    width: 230px;
    min-width: 230px;
    grid-template-columns: 40px minmax(104px, 1fr) auto;
  }

  .currency-card.player-api .currency-copy em {
    overflow: visible;
    text-overflow: clip;
  }

  .currency-icon,
  .currency-icon img {
    width: 40px;
    height: 40px;
  }

  .currency-copy small {
    overflow: visible;
    font-size: 16px;
    letter-spacing: 0.025em;
    text-overflow: clip;
  }

  .app-shell .currency-copy small,
  .campaign-header .currency-copy small {
    font-size: 16px;
  }

  .currency-card > strong,
  .campaign-wallets .currency-card > strong {
    font-size: 27px;
  }

  .currency-card.player-api > strong {
    font-size: 23px;
    letter-spacing: 0.035em;
  }
}

@media (min-width: 1181px) and (max-width: 1400px) {
  .currency-card.player-api,
  .campaign-wallets .currency-card.player-api {
    width: 194px;
    min-width: 194px;
    grid-template-columns: 40px minmax(66px, 1fr) auto;
  }
}

@media (min-width: 761px) and (max-width: 1180px) {
  .header-wallets .currency-card,
  .campaign-wallets .currency-card,
  .header-wallets .currency-card.player-api,
  .campaign-wallets .currency-card.player-api {
    width: 146px;
    min-width: 146px;
    grid-template-columns: 38px minmax(0, 1fr);
    grid-template-rows: 18px 20px;
    column-gap: 7px;
    row-gap: 0;
    padding: 6px 8px 5px 5px;
  }

  .header-wallets .currency-icon,
  .header-wallets .currency-icon img,
  .campaign-wallets .currency-icon,
  .campaign-wallets .currency-icon img {
    width: 38px;
    height: 38px;
  }

  .header-wallets .currency-icon,
  .campaign-wallets .currency-icon {
    grid-column: 1;
    grid-row: 1 / 3;
  }

  .header-wallets .currency-copy,
  .campaign-wallets .currency-copy {
    grid-column: 2;
    grid-row: 1;
    align-self: end;
  }

  .header-wallets .currency-copy small,
  .campaign-header .currency-copy small,
  .app-shell .currency-copy small {
    font-size: 14px;
    line-height: 1;
  }

  .header-wallets .currency-card > strong,
  .campaign-wallets .currency-card > strong,
  .header-wallets .currency-card.player-api > strong,
  .campaign-wallets .currency-card.player-api > strong {
    grid-column: 2;
    grid-row: 2;
    align-self: start;
    justify-self: start;
    font-size: 19px;
    line-height: 1;
    letter-spacing: 0.02em;
  }
}

@media (min-width: 761px) and (max-width: 920px) {
  .campaign-wallets .currency-card,
  .campaign-wallets .currency-card.player-api {
    width: 132px;
    min-width: 132px;
    grid-template-columns: 34px minmax(0, 1fr);
    column-gap: 6px;
  }

  .campaign-wallets .currency-icon,
  .campaign-wallets .currency-icon img {
    width: 34px;
    height: 34px;
  }

  .campaign-header .currency-copy small {
    font-size: var(--ming-font-small, 14px);
  }
}

/* V0.9.2 · 战局品牌顶栏与安全返回入口 */
.campaign-header {
  isolation: isolate;
  grid-template-columns: minmax(360px, 1fr) auto;
  background:
    radial-gradient(circle at 62px 50%, rgba(139, 50, 36, 0.2), transparent 96px),
    linear-gradient(90deg, rgba(121, 48, 36, 0.15), transparent 30%, transparent 72%, rgba(121, 92, 45, 0.07)),
    repeating-linear-gradient(92deg, rgba(255, 244, 214, 0.012) 0, rgba(255, 244, 214, 0.012) 1px, transparent 1px, transparent 6px),
    rgba(9, 12, 11, 0.965);
}

.campaign-header::after {
  content: '';
  position: absolute;
  z-index: -1;
  right: 0;
  bottom: -1px;
  left: 0;
  height: 3px;
  background: linear-gradient(90deg, transparent 0 2%, rgba(164, 75, 54, 0.7) 2% 7%, rgba(213, 177, 107, 0.32) 7% 26%, rgba(213, 177, 107, 0.06) 62%, transparent 96%);
  pointer-events: none;
}

.campaign-brand {
  min-width: 0;
  gap: 15px;
}

.campaign-brand p,
.campaign-brand h1 {
  margin: 0;
}

.campaign-brand p {
  color: #a99575;
  font-size: var(--ming-font-body, 16px);
  font-weight: 650;
  line-height: 1.2;
  letter-spacing: 0.26em;
  text-shadow: 0 1px 8px rgba(0, 0, 0, 0.7);
}

.campaign-brand h1 {
  display: flex;
  align-items: baseline;
  gap: 13px;
  color: #f0e5cf;
  font-family: var(--font-brush);
  font-size: clamp(27px, 2.25vw, 35px);
  font-weight: 400;
  line-height: 1.08;
  letter-spacing: 0.1em;
  white-space: nowrap;
  text-shadow: 0 3px 14px rgba(0, 0, 0, 0.64);
}

.campaign-brand h1 small {
  position: relative;
  display: inline-flex;
  align-items: center;
  min-height: 23px;
  padding: 2px 10px 2px 12px;
  color: #d7bb7e;
  border-left: 1px solid rgba(215, 187, 126, 0.56);
  background: linear-gradient(90deg, rgba(155, 111, 50, 0.11), transparent);
  font-family: var(--font-body);
  font-size: var(--ming-font-small, 14px);
  font-weight: 700;
  line-height: 1;
  letter-spacing: 0.18em;
  white-space: nowrap;
}

.campaign-brand h1 small::before {
  content: '';
  position: absolute;
  top: 50%;
  left: -3px;
  width: 5px;
  height: 5px;
  border-radius: 50%;
  background: #9b3f31;
  box-shadow: 0 0 0 2px rgba(155, 63, 49, 0.17);
  transform: translateY(-50%);
}

.settings-save-actions {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: 9px;
  margin-left: auto;
}

.settings-save-actions button {
  min-height: 42px;
  padding: 8px 16px;
  color: var(--paper-200);
  border: 1px solid rgba(205, 179, 123, 0.26);
  border-radius: 3px;
  background: rgba(5, 9, 8, 0.58);
  font-size: var(--ming-font-small, 14px);
  font-weight: 700;
  cursor: pointer;
}

.settings-save-actions button.primary {
  min-width: 190px;
  color: #d7e7df;
  border-color: rgba(113, 174, 148, 0.58);
  background: linear-gradient(180deg, rgba(61, 105, 86, 0.7), rgba(29, 57, 46, 0.72));
}

@media (min-width: 761px) and (max-width: 1180px) {
  .campaign-header {
    grid-template-columns: minmax(330px, 1fr) auto;
    gap: 14px;
    padding-right: 14px;
    padding-left: 14px;
  }

  .campaign-brand {
    gap: 11px;
  }

  .campaign-brand .brand-emblem {
    width: 50px;
    height: 50px;
    flex-basis: 50px;
  }

  .campaign-brand h1 {
    gap: 9px;
    font-size: 27px;
  }

  .campaign-brand h1 small {
    padding-right: 7px;
    padding-left: 9px;
    font-size: var(--ming-font-small, 14px);
  }
}

@media (max-width: 920px) {
  .campaign-header {
    grid-template-columns: minmax(250px, 1fr) auto;
    gap: 10px;
  }

  .campaign-brand p {
    font-size: var(--ming-font-body, 16px);
    letter-spacing: 0.18em;
  }

  .campaign-brand h1 {
    font-size: 24px;
  }

  .campaign-brand h1 small {
    display: none;
  }
}

@media (max-width: 760px) {
  .campaign-header {
    grid-template-columns: minmax(0, 1fr) auto;
    gap: 8px;
  }

  .campaign-brand {
    gap: 9px;
  }

  .campaign-brand .brand-emblem {
    width: 42px;
    height: 42px;
    flex-basis: 42px;
  }

  .campaign-brand p {
    display: none;
  }

  .campaign-brand h1 {
    display: block;
    overflow: hidden;
    font-size: 22px;
    letter-spacing: 0.06em;
    text-overflow: clip;
  }

  .settings-save-actions {
    width: 100%;
    align-items: stretch;
    flex-direction: column;
    margin-left: 0;
  }

  .settings-save-actions button {
    width: 100%;
  }
}

@media (max-width: 420px) {
  .campaign-brand {
    gap: 0;
  }

  .campaign-brand h1 {
    font-size: 20px;
  }
}

/* V0.9.3 · 历法校对与二级游戏菜单 */
.game-menu-button {
  width: 76px;
  height: 54px;
  flex: 0 0 76px;
  display: grid;
  grid-template-columns: 31px 1fr;
  align-items: center;
  gap: 7px;
  padding: 6px 9px 6px 7px;
  color: #d8c7a7;
  border: 1px solid rgba(205, 179, 123, 0.38);
  border-radius: 6px;
  background:
    linear-gradient(115deg, rgba(129, 73, 42, 0.18), transparent 45%),
    rgba(14, 18, 17, 0.96);
  box-shadow: inset 0 1px rgba(255, 255, 255, 0.04), 0 6px 18px rgba(0, 0, 0, 0.24);
  cursor: pointer;
  transition: color 150ms ease, border-color 150ms ease, transform 150ms ease;
}

.game-menu-button > span {
  width: 31px;
  height: 31px;
  display: grid;
  place-items: center;
  color: #e2c681;
  border: 1px solid rgba(211, 175, 105, 0.46);
  border-radius: 50%;
  background: rgba(105, 58, 37, 0.34);
  font-family: var(--font-brush);
  font-size: 21px;
  line-height: 1;
}

.game-menu-button > small {
  color: inherit;
  font-size: var(--ming-font-small, 14px);
  font-weight: 760;
  line-height: 1;
  letter-spacing: 0.08em;
  white-space: nowrap;
}

.game-menu-button:hover,
.game-menu-button:focus-visible {
  color: #f2dfb8;
  border-color: rgba(226, 198, 129, 0.72);
  transform: translateY(-1px);
  outline: none;
}

.game-menu-backdrop {
  position: fixed;
  inset: 0;
  z-index: 115;
  display: grid;
  place-items: center;
  padding: 24px;
  background:
    radial-gradient(circle at 50% 26%, rgba(139, 87, 51, 0.14), transparent 34%),
    rgba(2, 5, 5, 0.84);
  backdrop-filter: blur(10px);
  animation: veil-in 180ms ease both;
}

.game-menu-panel {
  position: relative;
  isolation: isolate;
  width: min(470px, 94vw);
  overflow: hidden;
  padding: 27px 28px 24px 37px;
  color: var(--paper-200);
  border: 1px solid rgba(211, 178, 113, 0.42);
  border-radius: 7px;
  background:
    radial-gradient(circle at 94% 2%, rgba(128, 87, 45, 0.17), transparent 31%),
    repeating-linear-gradient(92deg, rgba(255, 255, 255, 0.012) 0 1px, transparent 1px 7px),
    #0e1311;
  box-shadow: 0 34px 100px rgba(0, 0, 0, 0.74), inset 0 0 60px rgba(0, 0, 0, 0.18);
  animation: modal-rise 210ms ease both;
}

.game-menu-panel::before {
  content: '';
  position: absolute;
  z-index: -1;
  inset: 7px auto 7px 8px;
  width: 8px;
  border: 1px solid rgba(172, 81, 63, 0.5);
  border-radius: 8px 2px 2px 8px;
  background: linear-gradient(180deg, #7c3028, #3d1c19 44%, #713128);
}

.game-menu-panel > header {
  display: flex;
  flex-wrap: wrap;
  align-items: flex-start;
  justify-content: space-between;
  gap: 18px;
  padding-bottom: 16px;
  border-bottom: 1px solid var(--line);
}

/* 病态缩放下说明文字不得被挤成一字一行：文字列至少保留可读宽度，收起按钮换行。 */
.game-menu-panel > header > div {
  flex: 1 1 220px;
  min-width: 0;
}

.game-menu-panel > header span,
.game-menu-exit span {
  color: var(--gold-400);
  font-size: var(--ming-font-small, 14px);
  font-weight: 750;
  letter-spacing: 0.18em;
}

.game-menu-panel > header h2 {
  margin: 2px 0 0;
  color: #f0e4cc;
  font-family: var(--font-brush);
  font-size: 43px;
  font-weight: 400;
  line-height: 1.08;
  letter-spacing: 0.1em;
}

.game-menu-panel > header p {
  margin: 5px 0 0;
  color: #a99c84;
  font-size: var(--ming-font-body, 16px);
  line-height: 1.55;
}

.game-menu-panel > header button {
  min-width: 58px;
  min-height: 38px;
  padding: 7px 12px;
  color: #cabb9e;
  border: 1px solid rgba(205, 179, 123, 0.26);
  border-radius: 3px;
  background: rgba(5, 9, 8, 0.58);
  cursor: pointer;
}

.game-menu-actions {
  display: grid;
  gap: 9px;
  margin-top: 17px;
}

.game-menu-actions > button {
  min-height: 65px;
  display: grid;
  grid-template-columns: 42px minmax(0, 1fr) auto;
  align-items: center;
  gap: 13px;
  padding: 9px 13px 9px 10px;
  color: #d8ccb6;
  border: 1px solid rgba(203, 177, 122, 0.24);
  border-radius: 4px;
  background: rgba(5, 10, 8, 0.54);
  text-align: left;
  cursor: pointer;
}

.game-menu-actions > button.primary {
  border-color: rgba(114, 176, 149, 0.52);
  background: linear-gradient(100deg, rgba(47, 91, 73, 0.5), rgba(14, 30, 25, 0.58));
}

.game-menu-actions > button > i {
  width: 40px;
  height: 40px;
  display: grid;
  place-items: center;
  color: #e3c680;
  border: 1px solid rgba(213, 180, 113, 0.42);
  border-radius: 50%;
  background: rgba(105, 60, 37, 0.27);
  font-family: var(--font-brush);
  font-size: 24px;
  font-style: normal;
}

.game-menu-actions > button.primary > i {
  color: #b9decf;
  border-color: rgba(115, 177, 150, 0.5);
  background: rgba(48, 93, 74, 0.32);
}

.game-menu-actions strong,
.game-menu-actions small {
  display: block;
}

.game-menu-actions strong {
  color: #eee1c9;
  font-size: 17px;
  letter-spacing: 0.04em;
}

.game-menu-actions small {
  margin-top: 3px;
  color: #968b78;
  font-size: var(--ming-font-small, 14px);
}

.game-menu-actions > button > b {
  color: #c7a964;
  font-size: 28px;
  font-weight: 400;
}

.game-menu-actions > button:hover,
.game-menu-actions > button:focus-visible,
.game-menu-panel > header button:hover,
.game-menu-panel > header button:focus-visible {
  color: #f1dfbd;
  border-color: rgba(218, 184, 115, 0.62);
  background-color: rgba(45, 36, 24, 0.46);
  outline: none;
}

.game-menu-exit {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  align-items: center;
  gap: 14px;
  margin-top: 17px;
  padding-top: 16px;
  border-top: 1px solid rgba(173, 87, 66, 0.28);
}

.game-menu-exit small {
  display: block;
  margin-top: 3px;
  color: #918573;
  font-size: var(--ming-font-small, 14px);
  line-height: 1.45;
}

.game-menu-exit > button {
  min-height: 44px;
  padding: 8px 14px;
  color: #d9b6aa;
  border: 1px solid rgba(182, 84, 67, 0.48);
  border-radius: 4px;
  background: rgba(75, 32, 26, 0.42);
  font-size: var(--ming-font-small, 14px);
  font-weight: 720;
  cursor: pointer;
}

.game-menu-exit > button:hover,
.game-menu-exit > button:focus-visible {
  color: #f0c9bb;
  border-color: rgba(209, 104, 84, 0.72);
  background: rgba(104, 41, 32, 0.56);
  outline: none;
}

@media (max-width: 760px) {
  .game-menu-button {
    width: 52px;
    height: 42px;
    flex-basis: 52px;
    grid-template-columns: 1fr;
    padding: 4px;
  }

  .game-menu-button > span {
    width: 31px;
    height: 31px;
    justify-self: center;
  }

  .game-menu-button > small { display: none; }
  .game-menu-backdrop { align-items: end; padding: 0; }
  .game-menu-panel { width: 100%; padding: 22px 16px 18px 25px; border-right: 0; border-bottom: 0; border-left: 0; border-radius: 12px 12px 0 0; }
  .game-menu-panel > header h2 { font-size: 37px; }
  .game-menu-exit { grid-template-columns: 1fr; }
  .game-menu-exit > button { width: 100%; }
}

/* V0.11 · 据点、建筑与发展使用真实世界账本 */
.domain-empty-state {
  min-height: 226px;
  display: grid;
  grid-template-columns: 58px minmax(0, 1fr);
  grid-template-rows: minmax(0, 1fr) auto;
  align-items: center;
  gap: 10px 13px;
  padding: 14px 16px;
  border: 1px solid rgba(204, 171, 104, 0.24);
  background:
    linear-gradient(100deg, rgba(8, 14, 11, 0.9), rgba(7, 11, 9, 0.72) 55%, rgba(5, 8, 7, 0.93)),
    url('/assets/art/events/settlement-refuge-v2.png') center 56% / cover no-repeat;
  box-shadow: inset 0 0 28px rgba(0, 0, 0, 0.2);
}

.domain-empty-state.compact { min-height: 208px; }
.domain-empty-state > i {
  width: 54px;
  height: 54px;
  display: grid;
  place-items: center;
  color: #dfc77f;
  border: 1px solid rgba(215, 181, 111, 0.42);
  border-radius: 50%;
  background: radial-gradient(circle, rgba(111, 77, 38, 0.3), rgba(10, 15, 12, 0.76));
  font-family: var(--font-brush);
  font-size: 30px;
  font-style: normal;
}

.domain-empty-state > div { min-width: 0; }
.domain-empty-state > div > span {
  color: #c3a45f;
  font-size: var(--ming-font-small, 14px);
  font-weight: 760;
  letter-spacing: 0.12em;
}
.domain-empty-state h3 {
  margin: 5px 0 0;
  color: #eee1c6;
  font-size: 18px;
  line-height: 1.45;
}
.domain-empty-state p {
  margin: 7px 0 0;
  color: #a99e88;
  font-size: var(--ming-font-body, 16px);
  line-height: 1.65;
}

.system-action-seed {
  min-width: 0;
  min-height: 62px;
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  justify-content: center;
  gap: 4px;
  padding: 10px 13px;
  color: var(--folio-ink, #d9c69c);
  border: 1px solid rgba(111, 174, 146, 0.42);
  border-radius: 3px;
  background: var(--folio-card, linear-gradient(110deg, rgba(41, 84, 67, 0.42), rgba(9, 20, 16, 0.74)));
  text-align: left;
  cursor: pointer;
}
.domain-empty-state > .system-action-seed {
  grid-column: 1 / -1;
  min-height: 50px;
  display: grid;
  grid-template-columns: auto minmax(0, 1fr);
  align-content: center;
  align-items: center;
  gap: 3px 10px;
}
.domain-empty-state > .system-action-seed small { text-align: right; }
.system-action-seed span { font-size: var(--ming-font-small, 14px); font-weight: 760; line-height: 1.35; }
.system-action-seed small { color: var(--folio-muted, #8fb3a3); font-size: var(--ming-font-small, 14px); line-height: 1.35; }
.system-action-seed:hover,
.system-action-seed:focus-visible { color: var(--folio-ink, #f0e2c6); border-color: var(--folio-rule, rgba(130, 197, 168, 0.72)); background: var(--folio-hover, linear-gradient(110deg, rgba(53, 105, 83, 0.56), rgba(12, 27, 21, 0.82))); outline: none; }

/* V0.52 · 家宅是家庭生存资产，与据点建筑分账。 */
.domain-empty-state.has-home {
  min-height: 228px;
  background: linear-gradient(100deg, rgba(7, 13, 10, 0.98), rgba(7, 12, 10, 0.76) 65%, rgba(5, 8, 7, 0.92));
}
.domain-home-context {
  position: relative;
  min-width: 0;
  min-height: 116px;
  display: grid;
  align-content: center;
  padding: 10px 42% 10px 0;
  overflow: hidden;
}
.domain-home-context::before {
  content: '';
  position: absolute;
  top: 0;
  right: 0;
  bottom: 0;
  width: 46%;
  background: linear-gradient(90deg, rgba(7, 13, 10, 0.96), rgba(7, 13, 10, 0.12)), var(--residence-art) center / cover no-repeat;
  opacity: 0.78;
  pointer-events: none;
}
.domain-home-context > * { position: relative; z-index: 1; }
.domain-home-context > span { color: #cfaf64; font-size: var(--ming-font-small, 14px); font-weight: 780; letter-spacing: 0.1em; }
.domain-home-context h3 { margin: 4px 0 2px; font-size: 20px; }
.domain-home-context p { margin: 0; color: #d5c7aa; font-size: var(--ming-font-body, 16px); font-weight: 700; }
.domain-home-context small { margin-top: 6px; color: #a99e88; font-size: var(--ming-font-small, 14px); line-height: 1.55; }

.residence-heading { margin-bottom: 8px; }
.residence-ledger-list { display: grid; gap: 10px; }
.residence-ledger-card {
  position: relative;
  min-height: 226px;
  display: grid;
  align-content: start;
  gap: 9px;
  padding: 14px 42% 14px 15px;
  overflow: hidden;
  border: 1px solid rgba(194, 158, 84, 0.34);
  background: var(--folio-card, linear-gradient(95deg, rgba(7, 13, 10, 0.98) 0 53%, rgba(7, 12, 10, 0.62) 72%, rgba(4, 7, 6, 0.3)), var(--residence-art) 82% center / cover no-repeat);
  box-shadow: inset 4px 0 rgba(157, 122, 56, 0.46), inset 0 0 35px rgba(0, 0, 0, 0.2);
}
.residence-ledger-card > * { position: relative; z-index: 1; }
.residence-ledger-card > header { display: flex; justify-content: space-between; gap: 12px; padding-bottom: 7px; border-bottom: 1px solid rgba(198, 164, 92, 0.22); }
.residence-ledger-card > header div { min-width: 0; }
.residence-ledger-card > header span { color: var(--folio-muted, #b89b59); font-size: var(--ming-font-small, 14px); font-weight: 760; letter-spacing: 0.08em; }
.residence-ledger-card > header h3 { margin: 2px 0; color: var(--folio-ink, #eee0c2); font-size: 18px; line-height: 1.25; }
.residence-ledger-card > header p { margin: 0; color: var(--folio-muted, #9d927b); font-size: var(--ming-font-body, 16px); }
.residence-ledger-card > header strong { align-self: start; padding: 4px 8px; color: var(--folio-ink, #e1c77e); border: 1px solid rgba(202, 164, 83, 0.38); background: var(--folio-card, rgba(62, 43, 19, 0.48)); font-size: var(--ming-font-small, 14px); }
.residence-ledger-card > p { margin: 0; color: var(--folio-muted, #b8ad98); font-size: var(--ming-font-body, 16px); line-height: 1.55; }
.residence-metrics { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 7px 10px; }
.residence-metrics > span { display: grid; grid-template-columns: 62px minmax(28px, 1fr) 22px; align-items: center; gap: 6px; }
.residence-metrics small { color: var(--folio-muted, #b7a98b); font-size: var(--ming-font-small, 14px); }
.residence-metrics i { height: 5px; overflow: hidden; background: var(--folio-card, rgba(255, 255, 255, 0.08)); }
.residence-metrics i b { display: block; height: 100%; background: var(--folio-card, linear-gradient(90deg, #806a36, #d1b86f)); }
.residence-metrics em { color: var(--folio-muted, #d6c7a6); font-size: var(--ming-font-small, 14px); font-style: normal; text-align: right; }
.residence-facilities,
.residence-repairs { display: flex; flex-wrap: wrap; align-items: center; gap: 5px; }
.residence-facilities b,
.residence-repairs b { color: var(--folio-ink, #8fae9f); font-size: var(--ming-font-small, 14px); margin-right: 2px; }
.residence-facilities span,
.residence-repairs span { padding: 3px 6px; color: var(--folio-muted, #cbbda2); border: 1px solid rgba(255, 255, 255, 0.09); background: var(--folio-card, rgba(0, 0, 0, 0.28)); font-size: var(--ming-font-small, 14px); }
.residence-boundary-note { margin: 8px 0 0; padding: 8px 10px; color: var(--folio-ink, #9e927d); border-left: 2px solid rgba(116, 166, 143, 0.48); background: var(--folio-card, rgba(15, 31, 24, 0.35)); font-size: var(--ming-font-small, 14px); line-height: 1.5; }
.residence-repair-actions { display: grid; gap: 7px; margin-top: 3px; }
.residence-repair-actions > span { color: var(--folio-muted, #c7a75f); font-size: var(--ming-font-small, 14px); font-weight: 760; }
.residence-repair-actions > div { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; }
.residence-repair-actions .system-action-seed { min-height: 50px; padding: 7px 9px; }
.building-boundary { margin-top: 12px; }
.system-focus-body .residence-ledger-card { min-height: 390px; padding: 20px 43% 20px 22px; gap: 14px; }
.system-focus-body .residence-ledger-card > header h3 { font-size: 25px; }
.system-focus-body .residence-ledger-card > header span,
.system-focus-body .residence-ledger-card > header p,
.system-focus-body .residence-ledger-card > p,
.system-focus-body .residence-metrics small,
.system-focus-body .residence-metrics em,
.system-focus-body .residence-facilities b,
.system-focus-body .residence-facilities span,
.system-focus-body .residence-repairs b,
.system-focus-body .residence-repairs span { font-size: var(--ming-font-small, 14px); }

.system-focus-body .residence-ledger-card.expanded {
  min-height: 0;
  padding: 22px;
  gap: 13px;
  overflow: visible;
  background: var(--folio-card, linear-gradient(90deg, rgba(7, 13, 10, 0.98) 0 48%, rgba(7, 12, 10, 0.76) 68%, rgba(4, 7, 6, 0.46)),
    var(--residence-art) right top / auto 400px no-repeat,
    #08100c);
}
.system-focus-body .residence-ledger-card.expanded > header,
.system-focus-body .residence-ledger-card.expanded > p,
.system-focus-body .residence-ledger-card.expanded > .residence-metrics,
.system-focus-body .residence-ledger-card.expanded > .residence-facilities,
.system-focus-body .residence-ledger-card.expanded > .residence-repairs { width: min(620px, 58%); }
.residential-construction {
  position: relative;
  z-index: 2;
  min-height: 44px;
  display: grid;
  gap: 14px;
  margin-top: 10px;
  padding: 16px;
  color: #c9bea7;
  border: 1px solid rgba(181, 148, 79, 0.38);
  background:
    linear-gradient(125deg, rgba(45, 35, 19, 0.52), transparent 42%),
    rgba(5, 12, 9, 0.96);
  box-shadow: inset 4px 0 rgba(180, 132, 57, 0.5), 0 14px 30px rgba(0, 0, 0, 0.2);
  font-size: var(--ming-font-small, 14px);
}
.residential-construction > header { display: grid; grid-template-columns: 138px minmax(0, 1fr) auto; align-items: center; gap: 14px; }
.residential-construction > header figure { width: 138px; height: 96px; margin: 0; overflow: hidden; border: 1px solid rgba(212, 177, 96, 0.42); background: #070c09; box-shadow: inset 0 0 24px rgba(0, 0, 0, 0.45); }
.residential-construction > header figure img { width: 100%; height: 100%; display: block; object-fit: cover; }
.residential-construction > header > div { min-width: 0; }
.residential-construction > header span { color: #caa95f; font-size: var(--ming-font-small, 14px); font-weight: 800; letter-spacing: 0.08em; }
.residential-construction > header h4 { margin: 4px 0 3px; color: #f0e2c5; font-size: 20px; line-height: 1.25; }
.residential-construction > header p { margin: 0; color: #b7ac97; font-size: var(--ming-font-body, 16px); line-height: 1.55; }
.residential-construction > header > strong { align-self: start; padding: 7px 10px; color: #d9c284; border: 1px solid rgba(202, 166, 85, 0.4); background: rgba(62, 46, 24, 0.56); font-size: var(--ming-font-small, 14px); white-space: nowrap; }
.residential-construction-stages { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); border: 1px solid rgba(197, 164, 91, 0.24); background: rgba(0, 0, 0, 0.24); }
.residential-construction-stages > span { position: relative; min-height: 50px; display: flex; align-items: center; justify-content: center; gap: 8px; color: #827b6c; font-size: var(--ming-font-small, 14px); }
.residential-construction-stages > span + span { border-left: 1px solid rgba(197, 164, 91, 0.18); }
.residential-construction-stages i { width: 24px; height: 24px; display: grid; place-items: center; border: 1px solid rgba(150, 139, 112, 0.35); border-radius: 50%; font-style: normal; }
.residential-construction-stages .done { color: #a8c7b8; background: rgba(28, 66, 49, 0.28); }
.residential-construction-stages .done i { color: #c6e0d2; border-color: rgba(110, 169, 141, 0.52); }
.residential-construction-stages .current { color: #ead9ad; background: linear-gradient(90deg, rgba(120, 82, 31, 0.35), rgba(73, 54, 27, 0.24)); }
.residential-construction-stages .current i { color: #f0d48e; border-color: rgba(216, 174, 83, 0.64); box-shadow: 0 0 0 3px rgba(164, 116, 39, 0.12); }
.residential-construction-stages .locked { color: #c8a08d; background: rgba(96, 46, 34, 0.2); }
.residential-construction-right { display: grid; grid-template-columns: 40px minmax(0, 1fr); align-items: center; gap: 11px; padding: 10px 12px; border: 1px solid rgba(112, 164, 139, 0.34); background: rgba(20, 51, 39, 0.44); }
.residential-construction.right-blocked .residential-construction-right { border-color: rgba(176, 104, 74, 0.46); background: rgba(74, 37, 29, 0.38); }
.residential-construction-right > i { width: 38px; height: 38px; display: grid; place-items: center; color: #d8be78; border: 1px solid rgba(203, 166, 84, 0.46); border-radius: 50%; font-family: var(--font-brush); font-size: 22px; font-style: normal; }
.residential-construction-right b { color: #e3d4b4; font-size: 14px; }
.residential-construction-right p { margin: 2px 0 0; color: #acbdb4; font-size: var(--ming-font-body, 16px); line-height: 1.5; }
.residential-construction.right-blocked .residential-construction-right p { color: #c6a99c; }
.residential-construction-body { display: grid; grid-template-columns: minmax(0, 1.35fr) minmax(260px, 0.65fr); gap: 12px; }
.residential-construction-body > section { min-width: 0; padding: 12px; border: 1px solid rgba(194, 159, 86, 0.22); background: rgba(0, 0, 0, 0.2); }
.residential-construction-body > section > header { display: flex; justify-content: space-between; align-items: center; gap: 12px; margin-bottom: 9px; }
.residential-construction-body > section > header span { color: #dfc376; font-size: 14px; font-weight: 800; }
.residential-construction-body > section > header b { color: #99b6a8; font-size: var(--ming-font-small, 14px); text-align: right; }
.residential-construction-materials { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 7px; }
.residential-construction-materials article { min-width: 0; display: grid; grid-template-columns: 44px minmax(0, 1fr) auto; align-items: center; gap: 8px; padding: 7px; border: 1px solid rgba(255, 255, 255, 0.08); background: rgba(8, 16, 12, 0.68); }
.residential-construction-materials article.ready { border-color: rgba(92, 148, 121, 0.34); background: rgba(20, 49, 37, 0.5); }
.residential-construction-materials img { width: 44px; height: 44px; object-fit: cover; border: 1px solid rgba(196, 160, 87, 0.28); }
.residential-construction-materials span { min-width: 0; display: grid; gap: 2px; }
.residential-construction-materials b { overflow: hidden; color: #ded1b6; font-size: var(--ming-font-small, 14px); text-overflow: ellipsis; white-space: nowrap; }
.residential-construction-materials small { color: #a89e8b; font-size: var(--ming-font-small, 14px); line-height: 1.35; }
.residential-construction-materials em { color: #ce9c72; font-size: var(--ming-font-small, 14px); font-style: normal; white-space: nowrap; }
.residential-construction-materials .ready em { color: #91bba6; }
.residential-construction-work { display: grid; gap: 10px; }
.residential-construction-work > i { height: 10px; overflow: hidden; border: 1px solid rgba(205, 169, 89, 0.24); background: rgba(0, 0, 0, 0.34); }
.residential-construction-work > i b { display: block; height: 100%; background: linear-gradient(90deg, #88622e, #d0ad5b 72%, #e4cf91); }
.residential-construction-work p { margin: 0; color: #aea28e; font-size: var(--ming-font-body, 16px); line-height: 1.62; }
.residential-construction > footer { display: grid; grid-template-columns: minmax(240px, 0.7fr) minmax(0, 1.3fr); align-items: stretch; gap: 12px; padding-top: 12px; border-top: 1px solid rgba(194, 159, 86, 0.2); }
.residential-construction > footer > p { margin: 0; padding: 9px 10px; color: #aa9d88; border-left: 2px solid rgba(170, 126, 57, 0.56); background: rgba(45, 34, 19, 0.32); font-size: var(--ming-font-body, 16px); line-height: 1.55; }
.residential-construction > footer > div { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; }
.residential-construction > footer button { min-height: 52px; display: grid; align-content: center; gap: 3px; padding: 8px 11px; color: #e1eee7; border: 1px solid rgba(100, 161, 134, 0.5); background: rgba(28, 67, 51, 0.7); font: inherit; font-size: var(--ming-font-small, 14px); text-align: left; cursor: pointer; }
.residential-construction > footer button b { color: inherit; font-size: 14px; }
.residential-construction > footer button small { color: #adc9bb; font-size: var(--ming-font-small, 14px); line-height: 1.4; }
.residential-construction > footer button[data-personal-action^="employment:cancel-residential-work"] { color: #ead7ca; border-color: rgba(178, 107, 77, 0.56); background: rgba(84, 44, 35, 0.52); }
.residential-construction > footer button:disabled { color: #aa9d88; border-color: rgba(143, 117, 77, 0.3); background: rgba(46, 39, 28, 0.62); cursor: not-allowed; }
.residential-construction > footer button:disabled small { color: #9f917d; }
.residential-construction-complete { min-height: 52px; display: grid; place-items: center; color: #accbbb; border: 1px solid rgba(100, 157, 130, 0.34); background: rgba(23, 54, 41, 0.44); font-size: var(--ming-font-small, 14px); }
.home-operation-ledger,
.residence-maintenance-ledger,
.dwelling-storage {
  position: relative;
  z-index: 2;
  display: grid;
  gap: 12px;
  margin-top: 8px;
  padding: 16px;
  border: 1px solid rgba(192, 157, 87, 0.3);
  background: var(--folio-card, rgba(6, 12, 9, 0.94));
  box-shadow: inset 4px 0 rgba(143, 108, 50, 0.38), 0 12px 28px rgba(0, 0, 0, 0.16);
}
.home-operation-ledger > header,
.residence-maintenance-ledger > header,
.dwelling-storage > header {
  display: flex;
  justify-content: space-between;
  align-items: end;
  gap: 18px;
  padding-bottom: 11px;
  border-bottom: 1px solid rgba(192, 157, 87, 0.22);
}
.home-operation-ledger > header span,
.residence-maintenance-ledger > header span,
.dwelling-storage > header span { color: var(--folio-muted, #c5a45c); font-size: var(--ming-font-small, 14px); font-weight: 800; letter-spacing: 0.12em; }
.home-operation-ledger > header h4,
.residence-maintenance-ledger > header h4,
.dwelling-storage > header h4 { margin: 4px 0 0; color: var(--folio-ink, #eee0c2); font-size: 18px; line-height: 1.35; }
.home-operation-ledger > header > b,
.residence-maintenance-ledger > header > b,
.dwelling-storage > header > b { color: var(--folio-ink, #a9cbbb); font-size: var(--ming-font-small, 14px); white-space: nowrap; }
.home-operation-ledger > header > button,
.residence-maintenance-ledger > header > button {
  min-height: 44px;
  padding: 7px 13px;
  color: var(--folio-ink, #e4ca87);
  border: 1px solid rgba(203, 167, 88, 0.46);
  background: var(--folio-card, rgba(54, 43, 21, 0.58));
  font: inherit;
  font-size: var(--ming-font-small, 14px);
  font-weight: 760;
  cursor: pointer;
}
.residence-maintenance-ledger {
  position: relative;
  z-index: 2;
  display: grid;
  gap: 12px;
  margin-top: 8px;
  padding: 16px;
  border: 1px solid rgba(183, 132, 69, 0.36);
  background: var(--folio-card, linear-gradient(120deg, rgba(49, 33, 17, 0.62), rgba(6, 12, 9, 0.96)));
  box-shadow: inset 4px 0 rgba(153, 82, 52, 0.42), 0 12px 28px rgba(0, 0, 0, 0.16);
}
.residence-maintenance-ledger .home-action-grid.single { grid-template-columns: minmax(0, 620px); }
.home-action-card.maintenance { border-color: rgba(181, 102, 68, 0.4); background: linear-gradient(135deg, rgba(69, 35, 24, 0.58), rgba(6, 13, 10, 0.94)); }
.dwelling-hired-repair {
  display: grid;
  grid-template-columns: 112px minmax(0, 1fr);
  gap: 14px;
  padding: 12px;
  border: 1px solid rgba(103, 158, 132, 0.42);
  background: var(--folio-card, linear-gradient(130deg, rgba(17, 47, 35, 0.78), rgba(42, 30, 16, 0.68)));
}
.dwelling-hired-repair > figure { width: 112px; height: 112px; margin: 0; overflow: hidden; border: 1px solid rgba(202, 168, 91, 0.42); background: #080d0a; }
.dwelling-hired-repair > figure img { width: 100%; height: 100%; display: block; object-fit: cover; }
.dwelling-hired-repair > div { min-width: 0; display: grid; gap: 8px; }
.dwelling-hired-repair header span { color: var(--folio-muted, #9bc9b3); font-size: var(--ming-font-small, 14px); font-weight: 800; letter-spacing: 0.04em; }
.dwelling-hired-repair h5 { margin: 3px 0 0; color: var(--folio-ink, #efe1bc); font-size: 17px; line-height: 1.35; }
.dwelling-hired-repair p { margin: 0; color: var(--folio-muted, #b7ad98); font-size: var(--ming-font-body, 16px); line-height: 1.55; }
.dwelling-hired-repair > div > div { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; }
.home-interior-ledger .dwelling-hired-repair button { min-height: 58px; display: grid; align-content: center; gap: 4px; padding: 9px 12px; color: var(--folio-ink, #e4f0e9); border: 1px solid rgba(104, 170, 140, 0.5); background: var(--folio-card, rgba(27, 68, 51, 0.7)); font-size: var(--ming-font-body, 16px); text-align: left; cursor: pointer; }
.dwelling-hired-repair button b { font-size: var(--ming-font-body, 16px); }
.dwelling-hired-repair button small { color: var(--folio-muted, #b7cbbf); font-size: var(--ming-font-small, 14px); line-height: 1.45; }
.dwelling-hired-repair button[data-personal-action^="employment:cancel-dwelling-repair"] { color: var(--folio-ink, #ead8c8); border-color: var(--folio-rule, rgba(178, 111, 79, 0.58)); background: var(--folio-card, rgba(91, 48, 38, 0.42)); }
.dwelling-hired-repair button[data-personal-action^="employment:cancel-dwelling-repair"] small { color: var(--folio-muted, #cfb2a0); }
.dwelling-hired-repair button:disabled { color: var(--folio-ink, #a89c87); border-color: var(--folio-rule, rgba(142, 113, 73, 0.34)); background: var(--folio-card, rgba(50, 40, 27, 0.58)); cursor: not-allowed; }
.dwelling-hired-repair button:disabled small { color: var(--folio-muted, #9e907b); }
.home-fire-aftermath {
  display: grid;
  grid-template-columns: minmax(220px, 0.34fr) minmax(0, 1fr);
  gap: 15px;
  margin-top: 12px;
  padding: 13px;
  border: 1px solid rgba(176, 102, 65, 0.54);
  border-left: 4px solid #a8583b;
  background: linear-gradient(125deg, rgba(55, 28, 19, 0.92), rgba(13, 25, 18, 0.96));
  box-shadow: 0 14px 32px rgba(0, 0, 0, 0.24);
}
.home-fire-aftermath > figure { min-height: 226px; margin: 0; overflow: hidden; border: 1px solid rgba(203, 157, 91, 0.38); background: #080b08; }
.home-fire-aftermath > figure img { width: 100%; height: 100%; display: block; object-fit: cover; object-position: center; }
.home-fire-aftermath > div { min-width: 0; display: grid; align-content: start; gap: 10px; }
.home-fire-aftermath header { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 3px 12px; align-items: end; }
.home-fire-aftermath header span { color: #d49469; font-size: var(--ming-font-small, 14px); font-weight: 800; letter-spacing: 0.08em; }
.home-fire-aftermath h5 { margin: 0; color: #f0dfbd; font-family: var(--font-brush); font-size: 21px; font-weight: 400; line-height: 1.35; }
.home-fire-aftermath header b { grid-row: 1 / 3; grid-column: 2; align-self: center; padding: 6px 9px; color: #b8d5c2; border: 1px solid rgba(112, 164, 135, 0.38); background: rgba(25, 57, 41, 0.52); font-size: var(--ming-font-small, 14px); }
.home-fire-aftermath p { margin: 0; color: #c9bba3; font-size: var(--ming-font-body, 16px); line-height: 1.62; }
.home-fire-aftermath-damage { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 7px; }
.home-fire-aftermath-damage > span { min-width: 0; display: grid; gap: 3px; padding: 8px 9px; border: 1px solid rgba(183, 119, 78, 0.36); background: rgba(42, 25, 17, 0.68); }
.home-fire-aftermath-damage small { color: #c8b99f; font-size: var(--ming-font-small, 14px); }
.home-fire-aftermath-damage b { color: #ead8b5; font-size: 15px; }
.home-fire-aftermath-damage em { color: #db9670; font-size: var(--ming-font-small, 14px); font-style: normal; }
.home-fire-aftermath-damage .settled { border-color: rgba(99, 151, 124, 0.38); background: rgba(22, 53, 38, 0.55); }
.home-fire-aftermath-damage .settled em { color: #a9ceb7; }
.home-fire-aftermath-actions { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; }
.home-interior-ledger .home-fire-aftermath-actions button { min-height: 58px; display: grid; align-content: center; gap: 4px; padding: 9px 12px; color: #f0dfbd; border: 1px solid rgba(190, 132, 80, 0.54); background: rgba(69, 42, 25, 0.78); font: inherit; text-align: left; cursor: pointer; }
.home-fire-aftermath-actions button b { font-size: 15px; }
.home-fire-aftermath-actions button small { color: #cbbba1; font-size: var(--ming-font-small, 14px); line-height: 1.45; }
.home-fire-aftermath-actions button:not(:disabled):hover,
.home-fire-aftermath-actions button:not(:disabled):focus-visible { border-color: #dcad6d; background: rgba(91, 56, 31, 0.9); }
.home-fire-aftermath-actions button:disabled { color: #c2b49c; border-color: rgba(169, 122, 78, 0.38); background: rgba(55, 39, 27, 0.7); cursor: not-allowed; }
.home-fire-aftermath-actions button:disabled small { color: #b7aa95; }
.home-action-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; }
.home-action-card {
  min-width: 0;
  min-height: 126px;
  display: grid;
  grid-template-columns: 88px minmax(0, 1fr);
  gap: 12px;
  padding: 10px;
  border: 1px solid rgba(193, 160, 91, 0.28);
  background: linear-gradient(135deg, rgba(39, 33, 20, 0.52), rgba(6, 13, 10, 0.9));
}
.home-action-card.scavenge { border-color: rgba(92, 147, 122, 0.34); background: linear-gradient(135deg, rgba(20, 48, 36, 0.44), rgba(6, 13, 10, 0.92)); }
.home-action-card.unavailable { opacity: 0.6; filter: saturate(0.65); }
.home-action-card figure { width: 88px; height: 88px; margin: 0; overflow: hidden; border: 1px solid rgba(200, 166, 92, 0.32); background: #070b09; }
.home-action-card figure img { width: 100%; height: 100%; display: block; object-fit: cover; }
.home-action-card > div { min-width: 0; display: grid; align-content: start; gap: 4px; }
.home-action-card span { color: #8fb8a5; font-size: var(--ming-font-small, 14px); font-weight: 760; letter-spacing: 0.04em; }
.home-action-card h4 { margin: 0; color: #eee2c8; font-size: 16px; line-height: 1.3; }
.home-action-card p { margin: 0; color: #a99f8b; font-size: var(--ming-font-body, 16px); line-height: 1.5; }
.gathering-source-status {
  min-width: 0;
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 6px;
  margin-top: 5px;
}
.gathering-source-status > span {
  min-width: 0;
  display: grid;
  gap: 2px;
  padding: 8px 9px;
  border: 1px solid rgba(113, 157, 128, 0.28);
  background: linear-gradient(135deg, rgba(23, 57, 43, 0.62), rgba(10, 24, 18, 0.72));
  letter-spacing: 0;
}
.gathering-source-status small { color: #a8c5b5; font-size: var(--ming-font-small, 14px); line-height: 1.35; }
.gathering-source-status b { color: #e1d2a7; font-size: var(--ming-font-small, 14px); line-height: 1.4; font-weight: 720; }
.activity-water-forecast {
  min-width: 0;
  display: grid;
  grid-template-columns: 32px minmax(0, 1fr) auto;
  align-items: center;
  gap: 8px;
  margin-top: 4px;
  padding: 8px 9px;
  color: #b9d8ca;
  border: 1px solid rgba(83, 147, 126, 0.34);
  background: rgba(13, 43, 34, 0.48);
  font-size: var(--ming-font-small, 14px);
}
.activity-water-forecast > i { width: 30px; height: 30px; display: grid; place-items: center; color: #d8c680; border: 1px solid rgba(201, 174, 98, 0.38); border-radius: 50%; font-family: var(--font-brush); font-style: normal; }
.activity-water-forecast > span { min-width: 0; display: grid; gap: 1px; }
.activity-water-forecast small { color: #a9cbbd; font-size: var(--ming-font-small, 14px); }
.activity-water-forecast b { color: #eadcb9; font-size: var(--ming-font-small, 14px); }
.activity-water-forecast em { color: #c49e57; font-size: var(--ming-font-small, 14px); font-style: normal; white-space: nowrap; }
.home-action-card footer { align-self: end; display: flex; justify-content: space-between; align-items: center; gap: 8px; margin-top: 4px; }
.home-action-card footer b { color: #c7a964; font-size: var(--ming-font-small, 14px); }
.action-effect-summary {
  min-width: 0;
  color: var(--folio-ink, #a9cbb9) !important;
  font-size: var(--ming-font-small, 14px);
  font-weight: 650;
  line-height: 1.45;
  overflow-wrap: anywhere;
  text-overflow: clip;
  white-space: normal;
}
@media (max-width: 760px) {
  .system-focus-panel .action-effect-summary { font-size: var(--ming-font-small, 14px); }
  .gathering-source-status { grid-template-columns: 1fr; }
}
.home-action-card footer { flex-wrap: wrap; align-items: stretch; }
.home-action-card footer .action-effect-summary { flex: 1 1 180px; align-self: center; }
.home-action-card footer button { margin-left: auto; }
.home-action-card footer button {
  min-width: 86px;
  min-height: 44px;
  padding: 5px 9px;
  color: #d8eee3;
  border: 1px solid rgba(101, 163, 137, 0.5);
  background: rgba(26, 66, 50, 0.68);
  font: inherit;
  font-size: var(--ming-font-small, 14px);
  font-weight: 760;
  cursor: pointer;
}
.home-action-card footer button:disabled { color: #9f9786; border-color: rgba(152, 132, 91, 0.25); background: rgba(40, 37, 29, 0.6); cursor: not-allowed; }
.dwelling-storage-columns { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; }
.dwelling-storage-columns > div { min-width: 0; display: grid; align-content: start; gap: 7px; }
.dwelling-storage-columns h5 { margin: 0 0 3px; color: var(--folio-ink, #d2b56f); font-size: var(--ming-font-small, 14px); }
.dwelling-storage-columns article {
  min-width: 0;
  display: grid;
  grid-template-columns: 46px minmax(0, 1fr) auto;
  align-items: center;
  gap: 9px;
  padding: 7px;
  border: 1px solid rgba(255, 255, 255, 0.08);
  background: var(--folio-card, rgba(0, 0, 0, 0.22));
}
.dwelling-storage-columns article img { width: 46px; height: 46px; object-fit: cover; border: 1px solid rgba(195, 159, 85, 0.25); }
.dwelling-storage-columns article div { min-width: 0; display: grid; gap: 2px; }
.dwelling-storage-columns article b { overflow: hidden; color: var(--folio-ink, #ddd0b5); font-size: var(--ming-font-small, 14px); text-overflow: ellipsis; white-space: nowrap; }
.dwelling-storage-columns article small { color: var(--folio-muted, #938a78); font-size: var(--ming-font-small, 14px); line-height: 1.4; }
.dwelling-storage-columns article button {
  min-height: 44px;
  padding: 5px 8px;
  color: var(--folio-ink, #b9d7c9);
  border: 1px solid rgba(91, 145, 122, 0.42);
  background: var(--folio-card, rgba(14, 39, 29, 0.72));
  font: inherit;
  font-size: var(--ming-font-small, 14px);
  cursor: pointer;
}
.dwelling-storage-columns > div > p { margin: 0; padding: 14px; color: var(--folio-muted, #8f8778); border: 1px dashed rgba(190, 156, 86, 0.2); font-size: var(--ming-font-body, 16px); }

/* V0.61 · 日常行动从建筑账中拆出：本地结算与天机突发分层。 */
.daily-activity-summary,
.daily-activity-ledger {
  min-width: 0;
  display: grid;
  gap: 12px;
  border: 1px solid rgba(173, 142, 79, 0.32);
  background:
    linear-gradient(100deg, rgba(7, 14, 11, 0.97), rgba(7, 13, 10, 0.86) 58%, rgba(5, 9, 7, 0.94)),
    url('/assets/art/system-focus/daily-actions-folio-v1.png') center / cover no-repeat;
  box-shadow: inset 4px 0 rgba(112, 160, 137, 0.45), inset 0 0 40px rgba(0, 0, 0, 0.25);
}
.daily-activity-summary { min-height: 246px; padding: 14px; }
.daily-activity-summary > header,
.daily-activity-ledger > header,
.activity-section > header {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 16px;
}
.daily-activity-summary > header span,
.daily-activity-ledger > header span,
.activity-section > header span { color: #c7a55d; font-size: var(--ming-font-small, 14px); font-weight: 800; letter-spacing: 0.12em; }
.daily-activity-summary > header span { font-size: var(--ming-font-small, 14px); }
.daily-activity-summary > header h3,
.daily-activity-ledger > header h3 { margin: 3px 0 0; color: #f0e3c7; font-family: var(--font-brush); font-size: 25px; font-weight: 400; line-height: 1.15; }
.daily-activity-summary > header > b { flex: 0 0 auto; padding: 5px 9px; color: #add3c1; border: 1px solid rgba(101, 161, 136, 0.42); background: rgba(29, 66, 51, 0.38); font-size: var(--ming-font-small, 14px); }
.activity-boundary-strip {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  overflow: hidden;
  border: 1px solid rgba(190, 157, 87, 0.22);
  background: rgba(3, 8, 6, 0.7);
}
.activity-boundary-strip > span {
  min-width: 0;
  display: grid;
  grid-template-columns: 34px minmax(0, 1fr);
  grid-template-rows: auto auto;
  gap: 1px 8px;
  align-items: center;
  padding: 9px 11px;
}
.activity-boundary-strip > span + span { border-left: 1px solid rgba(190, 157, 87, 0.18); }
.activity-boundary-strip i { grid-row: 1 / 3; width: 31px; height: 31px; display: grid; place-items: center; color: #e1ca8f; border: 1px solid rgba(202, 170, 98, 0.38); border-radius: 50%; font-family: var(--font-brush); font-size: 18px; font-style: normal; }
.activity-boundary-strip b { color: #ded1b6; font-size: var(--ming-font-small, 14px); }
.activity-boundary-strip small { overflow: visible; color: #8e9f92; font-size: var(--ming-font-small, 14px); line-height: 1.4; text-overflow: clip; white-space: normal; }
.activity-summary-grid { display: grid; gap: 5px; }
.activity-summary-grid article {
  min-width: 0;
  display: grid;
  grid-template-columns: 42px minmax(0, 1fr) auto;
  align-items: center;
  gap: 9px;
  padding: 6px 7px;
  border: 1px solid rgba(255, 255, 255, 0.08);
  background: rgba(3, 8, 6, 0.62);
}
.activity-summary-grid img { width: 42px; height: 42px; display: block; object-fit: cover; border: 1px solid rgba(194, 160, 88, 0.28); }
.activity-summary-grid article > div { min-width: 0; display: grid; gap: 1px; }
.activity-summary-grid b { overflow: visible; color: #dfd2b8; font-size: var(--ming-font-small, 14px); line-height: 1.35; text-overflow: clip; white-space: normal; }
.activity-summary-grid small { color: #8fa897; font-size: var(--ming-font-small, 14px); line-height: 1.4; }
.activity-summary-grid button {
  min-width: 62px;
  min-height: 44px;
  padding: 4px 7px;
  color: #c9e3d6;
  border: 1px solid rgba(99, 158, 133, 0.45);
  background: rgba(25, 61, 46, 0.65);
  font: inherit;
  font-size: var(--ming-font-small, 14px);
  font-weight: 760;
  cursor: pointer;
}
.activity-summary-grid button:disabled { color: #928a7b; border-color: rgba(145, 124, 84, 0.24); background: rgba(36, 33, 27, 0.65); cursor: not-allowed; }
.activity-summary-grid .action-effect-summary { overflow: visible; text-overflow: clip; white-space: normal; }
.daily-activity-summary > footer { display: flex; flex-wrap: wrap; align-items: center; gap: 5px 8px; color: #988d79; font-size: var(--ming-font-small, 14px); line-height: 1.4; }
.daily-activity-summary > footer span { color: #c4a45e; font-weight: 760; }
.daily-activity-summary > footer b { color: #aecdbd; font-size: var(--ming-font-small, 14px); }
.daily-activity-summary > footer small { margin-left: auto; font-size: var(--ming-font-small, 14px); text-align: right; }

.daily-activity-ledger { padding: 18px; background: rgba(5, 11, 8, 0.96); }
.daily-activity-ledger > header { padding: 6px 4px 14px; border-bottom: 1px solid rgba(193, 159, 88, 0.24); }
.daily-activity-ledger > header p { max-width: 680px; margin: 7px 0 0; color: #a99e89; font-size: var(--ming-font-body, 16px); line-height: 1.6; }
.daily-activity-ledger > header dl { display: grid; grid-template-columns: repeat(4, minmax(92px, 1fr)); gap: 7px; margin: 0; }
.daily-activity-ledger > header dl div { padding: 7px 9px; border: 1px solid rgba(191, 157, 85, 0.18); background: rgba(2, 7, 5, 0.54); }
.daily-activity-ledger dt { color: #8e8575; font-size: var(--ming-font-small, 14px); }
.daily-activity-ledger dd { margin: 2px 0 0; color: #d9c590; font-size: var(--ming-font-small, 14px); font-weight: 760; }
.activity-section,
.dwelling-storage { background: var(--folio-card, rgba(6, 12, 9, 0.97)); }
.activity-section { display: grid; gap: 12px; padding: 16px; border: 1px solid rgba(190, 156, 85, 0.28); box-shadow: inset 4px 0 rgba(143, 108, 50, 0.3); }
.activity-section > header { padding-bottom: 10px; border-bottom: 1px solid rgba(190, 156, 85, 0.2); }
.activity-section > header h4 { margin: 3px 0 0; color: #eee1c5; font-size: 19px; }
.activity-section > header > b { color: #9fc7b5; font-size: var(--ming-font-small, 14px); }
.daily-activity-ledger > header span,
.daily-activity-ledger .activity-section > header span,
.daily-activity-ledger .activity-boundary-strip b,
.daily-activity-ledger .activity-boundary-strip small { font-size: var(--ming-font-small, 14px); }
.daily-activity-ledger .activity-boundary-strip small { overflow: visible; line-height: 1.45; text-overflow: clip; white-space: normal; }
.system-focus-body .activity-section .home-action-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.system-focus-body .activity-section .home-action-card { min-height: 318px; grid-template-columns: 1fr; grid-template-rows: 190px minmax(0, 1fr); }
.system-focus-body .activity-section .home-action-card figure {
  width: 100%;
  height: 190px;
  display: grid;
  place-items: center;
  background:
    radial-gradient(circle at center, rgba(124, 93, 45, 0.18), transparent 62%),
    repeating-linear-gradient(135deg, rgba(255, 255, 255, 0.018) 0 1px, transparent 1px 6px),
    #050a08;
}
.system-focus-body .activity-section .home-action-card figure img {
  width: 190px;
  max-width: 100%;
  height: auto;
  max-height: 100%;
  object-fit: contain;
  object-position: center;
}
.activity-no-home { margin: 0; padding: 16px; color: #9c927f; border: 1px dashed rgba(190, 156, 85, 0.25); }

/* 据点、住宅和公共建筑各自展示成立条件，不再混用空状态。 */
.settlement-readiness { grid-template-rows: auto auto auto; }
.settlement-readiness-list { grid-column: 1 / -1; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 7px; }
.settlement-readiness-list > span { min-width: 0; display: grid; grid-template-columns: 30px minmax(0, 1fr); grid-template-rows: auto auto; align-items: center; gap: 1px 7px; padding: 8px; border: 1px solid rgba(191, 157, 86, 0.18); background: var(--folio-card, rgba(3, 8, 6, 0.58)); }
.settlement-readiness-list i { grid-row: 1 / 3; width: 27px; height: 27px; display: grid; place-items: center; color: var(--folio-ink, #d5b96d); border: 1px solid rgba(200, 166, 89, 0.3); border-radius: 50%; font-style: normal; font-size: var(--ming-font-small, 14px); }
.settlement-readiness-list b { color: var(--folio-ink, #d8c9ab); font-size: var(--ming-font-small, 14px); }
.settlement-readiness-list small { overflow: hidden; color: var(--folio-muted, #8e8778); font-size: var(--ming-font-small, 14px); text-overflow: ellipsis; white-space: nowrap; }
.building-ledger-shell { display: grid; gap: 10px; }
.building-ledger-shell > header { display: flex; justify-content: space-between; align-items: end; gap: 12px; padding: 11px 13px; border: 1px solid rgba(191, 157, 86, 0.23); background: var(--folio-card, linear-gradient(90deg, rgba(91, 64, 30, 0.2), rgba(5, 11, 8, 0.75))); }
.building-ledger-shell > header span { color: var(--folio-muted, #bd9a50); font-size: var(--ming-font-small, 14px); font-weight: 780; letter-spacing: 0.1em; }
.building-ledger-shell > header h3 { margin: 3px 0 0; color: var(--folio-ink, #e7d9bb); font-size: 18px; }
.building-ledger-shell > header > b { color: var(--folio-ink, #a8c8b8); font-size: var(--ming-font-small, 14px); }
.building-scope-strip { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)) auto; border: 1px solid rgba(190, 156, 85, 0.2); background: var(--folio-card, rgba(3, 8, 6, 0.68)); }
.building-scope-strip > span { display: grid; grid-template-columns: 31px minmax(0, 1fr); grid-template-rows: auto auto; gap: 1px 7px; align-items: center; padding: 8px 10px; }
.building-scope-strip > span + span { border-left: 1px solid rgba(190, 156, 85, 0.17); }
.building-scope-strip i { grid-row: 1 / 3; width: 29px; height: 29px; display: grid; place-items: center; color: var(--folio-ink, #d7be78); border: 1px solid rgba(199, 165, 89, 0.34); border-radius: 50%; font-family: var(--font-brush); font-style: normal; }
.building-scope-strip b { color: var(--folio-ink, #d9cbaa); font-size: var(--ming-font-small, 14px); }
.building-scope-strip small { color: var(--folio-muted, #8e8778); font-size: var(--ming-font-small, 14px); }
.building-scope-strip > button { padding: 7px 11px; color: var(--folio-ink, #a9c9b9); border: 0; border-left: 1px solid rgba(101, 159, 134, 0.25); background: var(--folio-card, rgba(22, 52, 40, 0.46)); font: inherit; font-size: var(--ming-font-small, 14px); cursor: pointer; }
.building-empty-account { display: grid; grid-template-columns: minmax(0, 1fr) minmax(250px, 0.7fr); align-items: center; gap: 12px; padding: 14px; border: 1px solid rgba(190, 156, 85, 0.25); background: var(--folio-card, linear-gradient(110deg, rgba(54, 39, 20, 0.36), rgba(4, 9, 7, 0.9))); }
.building-empty-account > div { display: grid; grid-template-columns: 48px minmax(0, 1fr); align-items: center; gap: 12px; }
.building-empty-account > div > i { width: 46px; height: 46px; display: grid; place-items: center; color: var(--folio-ink, #d9bd71); border: 1px solid rgba(198, 164, 88, 0.35); border-radius: 50%; font-family: var(--font-brush); font-size: 24px; font-style: normal; }
.building-empty-account span { display: grid; gap: 3px; }
.building-empty-account b { color: var(--folio-ink, #e2d5b9); font-size: 14px; }
.building-empty-account small { color: var(--folio-muted, #988e7b); font-size: var(--ming-font-small, 14px); line-height: 1.55; }

.settlement-ledger {
  min-height: 226px;
  display: grid;
  grid-template-columns: minmax(0, 1.1fr) minmax(190px, 0.9fr);
  grid-template-rows: auto auto minmax(0, 1fr) auto;
  gap: 8px 15px;
  padding: 14px 16px;
  border: 1px solid rgba(202, 170, 104, 0.33);
  background:
    linear-gradient(100deg, rgba(9, 16, 13, 0.96), rgba(7, 12, 10, 0.8) 58%, rgba(5, 9, 8, 0.94)),
    url('/assets/art/events/settlement-refuge-v2.png') center 58% / cover no-repeat;
}
.settlement-ledger > header {
  grid-column: 1 / -1;
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding-bottom: 7px;
  border-bottom: 1px solid rgba(206, 175, 111, 0.2);
}
.settlement-ledger > header span,
.settlement-ledger > footer span,
.settlement-location span { color: var(--folio-muted, #b99a58); font-size: var(--ming-font-small, 14px); font-weight: 740; letter-spacing: 0.1em; }
.settlement-ledger > header h3 { margin: 1px 0 0; color: var(--folio-ink, #f1e5ca); font-family: var(--font-brush); font-size: 27px; font-weight: 400; line-height: 1; }
.settlement-ledger > header > b { padding: 4px 10px; color: var(--folio-ink, #aad2bf); border: 1px solid rgba(113, 177, 149, 0.4); background: var(--folio-card, rgba(39, 84, 66, 0.28)); font-size: var(--ming-font-small, 14px); }
.settlement-location { display: grid; align-content: start; gap: 2px; }
.settlement-location strong { overflow: hidden; color: var(--folio-ink, #e2d6bd); font-size: 15px; text-overflow: ellipsis; white-space: nowrap; }
.settlement-location small { color: var(--folio-muted, #958a77); font-size: var(--ming-font-small, 14px); }
.settlement-metrics { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 5px; }
.settlement-metrics > div { padding: 7px 5px; border: 1px solid rgba(211, 180, 115, 0.15); background: var(--folio-card, rgba(3, 7, 6, 0.42)); text-align: center; }
.settlement-metrics span { display: block; color: var(--folio-muted, #948875); font-size: var(--ming-font-small, 14px); }
.settlement-metrics b { color: var(--folio-ink, #dfca98); font-size: 16px; }
.settlement-ledger > p { margin: 0; color: var(--folio-muted, #b7aa93); font-size: var(--ming-font-body, 16px); line-height: 1.55; }
.settlement-ledger > footer { display: grid; align-content: end; gap: 2px; }
.settlement-ledger > footer b { color: var(--folio-ink, #a79b86); font-size: var(--ming-font-small, 14px); font-weight: 500; line-height: 1.45; }
.settlement-ledger > .system-action-seed { grid-column: 2; grid-row: 3 / 5; align-self: end; }

.progression-card-list { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; }
.progression-card {
  min-width: 0;
  min-height: 180px;
  display: grid;
  grid-template-rows: auto minmax(0, 1fr) auto auto;
  gap: 7px;
  padding: 12px 13px;
  border: 1px solid rgba(203, 171, 105, 0.24);
  background: linear-gradient(145deg, rgba(18, 27, 22, 0.88), rgba(5, 9, 8, 0.9));
}
.progression-card > header { display: flex; align-items: flex-start; justify-content: space-between; gap: 8px; }
.progression-card > header span { color: var(--folio-muted, #b49654); font-size: var(--ming-font-small, 14px); font-weight: 730; }
.progression-card > header h3 { margin: 2px 0 0; color: var(--folio-ink, #eee1c6); font-size: 16px; line-height: 1.25; }
.progression-card > header > b { flex: 0 0 auto; padding: 3px 6px; color: var(--folio-ink, #a9cfbd); border: 1px solid rgba(113, 177, 149, 0.3); font-size: var(--ming-font-small, 14px); }
.progression-card > p { display: -webkit-box; overflow: hidden; margin: 0; color: var(--folio-muted, #aa9f89); font-size: var(--ming-font-body, 16px); line-height: 1.5; -webkit-box-orient: vertical; -webkit-line-clamp: 3; }
.progression-meter { display: grid; grid-template-columns: auto minmax(0, 1fr); align-items: center; gap: 7px; }
.progression-meter > span { color: var(--folio-muted, #b9ab8e); font-size: var(--ming-font-small, 14px); white-space: nowrap; }
.progression-meter > i { height: 5px; overflow: hidden; background: rgba(255, 255, 255, 0.08); }
.progression-meter > i > b { display: block; height: 100%; background: linear-gradient(90deg, #8b7138, #d5bd7d); }
.progression-card > footer { min-width: 0; display: grid; gap: 2px; padding-top: 5px; border-top: 1px solid rgba(203, 171, 105, 0.13); }
.progression-card > footer span,
.progression-card > footer small { overflow: hidden; color: var(--folio-muted, #8f8573); font-size: var(--ming-font-small, 14px); text-overflow: ellipsis; white-space: nowrap; }

@media (max-width: 760px) {
  .domain-empty-state { min-width: 500px; }
  .domain-empty-state > i { width: 48px; height: 48px; font-size: 27px; }
  .domain-empty-state > .system-action-seed { grid-column: 1 / -1; }
  .settlement-ledger { min-width: 500px; }
  .progression-card-list { min-width: 500px; }
}

/* V0.12 · 个人行动、负重与装备账簿 */
.inventory-ledger {
  min-width: 0;
  height: 100%;
  display: grid;
  grid-template-rows: auto auto minmax(0, 1fr) auto;
  gap: 5px;
}

.inventory-ledger.has-money-house-summary {
  grid-template-rows: auto auto auto minmax(0, 1fr) auto;
}

.vehicle-system-summary,
.vehicle-system-ledger {
  min-width: 0;
  display: grid;
  gap: 9px;
}

.vehicle-system-summary {
  padding: 10px;
  border: 1px solid rgba(101, 172, 154, 0.34);
  background: var(--folio-card, linear-gradient(120deg, rgba(22, 42, 34, 0.9), rgba(5, 12, 10, 0.96)),
    repeating-linear-gradient(90deg, transparent 0 28px, rgba(211, 177, 104, 0.035) 28px 29px));
}

.vehicle-system-summary > header,
.vehicle-system-summary > footer,
.vehicle-system-heading,
.vehicle-system-empty {
  min-width: 0;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
}

.vehicle-system-summary > header { padding-bottom: 7px; border-bottom: 1px solid rgba(202, 169, 99, 0.22); }
.vehicle-system-summary > header > div { display: flex; align-items: baseline; gap: 9px; }
.vehicle-system-summary > header span,
.vehicle-system-summary > header small,
.vehicle-system-summary > footer span,
.vehicle-system-summary > footer small { color: var(--folio-muted, #9db7aa); font-size: var(--ming-font-small, 14px); line-height: 1.45; }
.vehicle-system-summary > header strong { color: var(--folio-ink, #e3ce91); font-size: 15px; }
.vehicle-system-summary > footer { align-items: baseline; padding-top: 7px; border-top: 1px solid rgba(202, 169, 99, 0.18); }
.vehicle-system-summary > footer span { color: var(--folio-muted, #cfb973); font-weight: 730; }
.vehicle-system-summary-list { min-width: 0; display: grid; grid-template-columns: repeat(auto-fit, minmax(310px, 1fr)); gap: 8px; }

.vehicle-system-ledger { align-content: start; }
.vehicle-system-heading {
  align-items: stretch;
  padding: 13px 15px;
  border: 1px solid rgba(198, 160, 82, 0.32);
  border-left: 3px solid #b5924b;
  background: var(--folio-card, linear-gradient(100deg, rgba(35, 31, 20, 0.92), rgba(9, 20, 17, 0.96)));
}
.vehicle-system-heading > div { min-width: 0; display: grid; align-content: center; gap: 3px; }
.vehicle-system-heading > div > span,
.vehicle-system-heading > div > p,
.vehicle-system-heading > aside span,
.vehicle-system-heading > aside small { margin: 0; color: var(--folio-muted, #9fb7aa); font-size: var(--ming-font-small, 14px); line-height: 1.45; }
.vehicle-system-heading > div > span { color: var(--folio-muted, #c7a95e); font-weight: 760; letter-spacing: 0.08em; }
.vehicle-system-heading h3 { margin: 0; color: var(--folio-ink, #eee0bf); font-family: var(--font-display); font-size: clamp(23px, 2vw, 30px); font-weight: 500; }
.vehicle-system-heading > aside {
  min-width: 134px;
  display: grid;
  place-items: center;
  align-content: center;
  padding: 8px 14px;
  border: 1px solid rgba(105, 170, 151, 0.38);
  background: var(--folio-card, rgba(7, 24, 19, 0.72));
  text-align: center;
}
.vehicle-system-heading > aside b { color: var(--folio-ink, #e1c879); font-size: 27px; line-height: 1; }

.vehicle-system-empty {
  justify-content: flex-start;
  padding: 15px;
  border: 1px dashed rgba(135, 172, 153, 0.42);
  background: var(--folio-card, rgba(8, 21, 17, 0.7));
}
.vehicle-system-empty > i {
  width: 50px;
  height: 50px;
  flex: 0 0 auto;
  display: grid;
  place-items: center;
  color: var(--folio-ink, #d3b769);
  border: 1px solid rgba(196, 159, 82, 0.48);
  border-radius: 50%;
  font-family: var(--font-display);
  font-size: 25px;
  font-style: normal;
}
.vehicle-system-empty > div { min-width: 0; display: grid; gap: 2px; }
.vehicle-system-empty span,
.vehicle-system-empty small { color: var(--folio-muted, #98b1a5); font-size: var(--ming-font-small, 14px); line-height: 1.45; }
.vehicle-system-empty b { color: var(--folio-ink, #ead9b4); font-size: 15px; }

.vehicle-compact-facts {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 5px;
}
.vehicle-compact-facts > span { min-width: 0; display: grid; gap: 1px; padding: 5px 7px; border: 1px solid rgba(112, 166, 150, 0.22); background: var(--folio-card, rgba(7, 18, 15, 0.66)); }
.vehicle-compact-facts small { color: var(--folio-muted, #8ea99c); font-size: var(--ming-font-small, 14px); }
.vehicle-compact-facts b { overflow-wrap: anywhere; color: var(--folio-ink, #d9ccb0); font-size: var(--ming-font-small, 14px); }

.system-focus-panel-vehicles .system-focus-shade {
  background: var(--folio-card, linear-gradient(90deg, rgba(4, 10, 8, 0.98) 0%, rgba(5, 13, 11, 0.88) 50%, rgba(5, 13, 11, 0.36) 100%));
}
.system-focus-panel-vehicles .system-focus-body { padding-bottom: 26px; }
.system-focus-panel-vehicles :where(p, small, span, em, dt, dd) { font-size: var(--ming-font-small, 14px); }
.system-focus-panel-vehicles .system-focus-authority { font-size: var(--ming-font-small, 14px); }
.system-focus-panel-vehicles .system-focus-close b,
.system-focus-panel-vehicles .system-focus-close small { font-size: var(--ming-font-small, 14px); }

.vehicle-registry {
  display: grid;
  gap: 7px;
  padding: 9px 11px;
  border: 1px solid rgba(101, 172, 154, 0.34);
  background: var(--folio-card, rgba(7, 18, 15, 0.86));
}

.vehicle-registry > header {
  display: flex;
  align-items: end;
  justify-content: space-between;
  gap: 12px;
}

.vehicle-registry > header div { display: flex; align-items: baseline; gap: 9px; }
.vehicle-registry > header span,
.vehicle-registry > header small { color: var(--folio-muted, #9db7aa); font-size: var(--ming-font-small, 14px); line-height: 1.4; }
.vehicle-registry > header strong { color: var(--folio-ink, #e0c986); font-size: 14px; }
.vehicle-registry > div { display: grid; grid-template-columns: repeat(auto-fit, minmax(380px, 1fr)); gap: 7px; }
.vehicle-registry article { min-width: 0; padding: 8px 10px; border: 1px solid rgba(197, 161, 90, 0.2); background: var(--folio-card, rgba(4, 10, 8, 0.72)); }
.vehicle-registry article.active { border-color: var(--folio-rule, rgba(104, 181, 160, 0.62)); box-shadow: inset 3px 0 rgba(79, 151, 132, 0.72); }
.vehicle-registry-hero {
  display: grid;
  grid-template-columns: 126px minmax(0, 1fr);
  align-items: stretch;
  gap: 11px;
  margin-bottom: 8px;
}
.vehicle-registry-visual {
  min-height: 116px;
  margin: 0;
  position: relative;
  display: grid;
  place-items: center;
  overflow: hidden;
  border: 1px solid rgba(196, 159, 82, 0.38);
  background: var(--folio-card, radial-gradient(circle at 50% 58%, rgba(50, 104, 91, 0.26), transparent 68%),
    linear-gradient(145deg, rgba(34, 31, 21, 0.86), rgba(4, 13, 11, 0.96)));
}
.vehicle-registry-visual::after {
  content: '';
  position: absolute;
  inset: auto 8px 25px;
  height: 1px;
  background: linear-gradient(90deg, transparent, rgba(135, 193, 174, 0.65), transparent);
}
.vehicle-registry-visual img {
  width: 112px;
  height: 86px;
  object-fit: contain;
  filter: drop-shadow(0 8px 9px rgba(0, 0, 0, 0.62));
  transform: translateY(-5px);
}
.vehicle-registry-visual > span {
  color: var(--folio-muted, #d5bd72);
  font-family: var(--font-display);
  font-size: 42px;
}
.vehicle-registry-visual figcaption {
  position: absolute;
  inset: auto 6px 5px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 5px;
}
.vehicle-status-seal {
  min-width: 40px;
  padding: 2px 6px;
  color: var(--folio-ink, #b9d9c9);
  border: 1px solid rgba(104, 181, 160, 0.56);
  background: var(--folio-card, rgba(9, 34, 28, 0.92));
  font-size: var(--ming-font-small, 14px);
  line-height: 1.35;
  text-align: center;
}
.vehicle-status-seal.warning { color: var(--folio-ink, #e0b099); border-color: var(--folio-rule, rgba(190, 103, 78, 0.7)); background: var(--folio-card, rgba(52, 20, 16, 0.94)); }
.vehicle-status-seal.active { color: var(--folio-ink, #f0d992); border-color: var(--folio-rule, rgba(209, 174, 86, 0.72)); background: var(--folio-selected-surface, rgba(45, 35, 16, 0.94)); }
.vehicle-registry-visual figcaption small { color: #8fa89d; font-size: var(--ming-font-small, 14px); white-space: nowrap; }
.vehicle-registry-summary { min-width: 0; display: grid; align-content: start; gap: 8px; }
.vehicle-registry-summary > header { display: grid; grid-template-columns: auto 1fr; align-items: baseline; gap: 3px 9px; }
.vehicle-registry-summary > header span { color: var(--folio-muted, #b49758); font-size: var(--ming-font-small, 14px); font-weight: 750; }
.vehicle-registry-summary > header b { color: var(--folio-ink, #eadab6); font-family: var(--font-display); font-size: 20px; letter-spacing: 0.04em; }
.vehicle-registry-summary > header small { grid-column: 1 / -1; color: var(--folio-muted, #9e9381); font-size: var(--ming-font-small, 14px); }
.vehicle-registry article > header { display: flex; align-items: center; justify-content: space-between; gap: 8px; }
.vehicle-registry article > header > div { min-width: 0; display: grid; gap: 2px; }
.vehicle-registry article > header > div > b { color: var(--folio-ink, #eadab6); font-size: 14px; }
.vehicle-registry article > header > div > small { color: var(--folio-muted, #918674); font-size: var(--ming-font-small, 14px); }
.vehicle-registry article > header > .vehicle-registry-actions {
  min-width: 0;
  display: flex;
  justify-content: flex-end;
  gap: 6px;
  flex-wrap: wrap;
}
.vehicle-registry-action {
  min-width: 88px;
  min-height: 44px;
  display: grid;
  align-content: center;
  gap: 1px;
  padding: 5px 9px;
  color: var(--folio-ink, #d6e3da);
  border: 1px solid rgba(104, 181, 160, 0.5);
  background: var(--folio-card, rgba(17, 51, 42, 0.9));
  cursor: pointer;
}
.vehicle-registry-action span { font-size: var(--ming-font-small, 14px); font-weight: 760; }
.vehicle-registry-action small { color: var(--folio-muted, #9fc2b1); font-size: var(--ming-font-small, 14px); line-height: 1.35; }
.vehicle-registry-action.refuel { border-color: var(--folio-rule, rgba(197, 161, 90, 0.5)); background: var(--folio-card, rgba(48, 38, 19, 0.86)); }
.vehicle-registry-action.refuel small { color: var(--folio-muted, #cdbb8e); }
.vehicle-registry-action.care { min-width: 210px; border-color: var(--folio-rule, rgba(123, 166, 102, 0.72)); background: var(--folio-card, #172a1c); }
.vehicle-registry-action.care small { color: var(--folio-muted, #bed1a9); }
.vehicle-registry-action.care.provided { border-color: var(--folio-rule, rgba(197, 161, 90, 0.72)); background: var(--folio-card, #272116); }
.vehicle-registry-action.care.provided span { color: var(--folio-muted, #ead39a); }
.vehicle-registry-action.care.provided small { color: var(--folio-muted, #d2c39d); }
.vehicle-registry-action.repair { min-width: 210px; border-color: var(--folio-rule, rgba(203, 166, 84, 0.68)); background: var(--folio-card, #2b2618); }
.vehicle-registry-action.repair small { color: var(--folio-muted, #d6c38e); }
.vehicle-registry-action.equipment { min-width: 210px; border-color: var(--folio-rule, rgba(92, 151, 137, 0.72)); background: var(--folio-card, #142a24); }
.vehicle-registry-action.equipment.remove { border-color: var(--folio-rule, rgba(183, 145, 76, 0.58)); background: var(--folio-card, #292317); }
.vehicle-registry-action.equipment small { color: var(--folio-muted, #b8d4c6); }
.vehicle-registry-action:disabled { cursor: not-allowed; opacity: 0.48; }

.vehicle-mount-care {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  align-items: stretch;
  gap: 8px;
  margin-top: 7px;
  padding: 8px;
  border: 1px solid rgba(123, 166, 102, 0.42);
  border-left: 3px solid rgba(145, 181, 112, 0.78);
  background: var(--folio-card, #101b13);
}
.vehicle-mount-care > header { min-width: 0; display: grid; align-content: center; gap: 3px; }
.vehicle-mount-care > header span { color: var(--folio-muted, #d5c783); font-size: 14px; font-weight: 760; }
.vehicle-mount-care > header small { color: var(--folio-muted, #9eaf90); font-size: var(--ming-font-small, 14px); line-height: 1.45; }
.vehicle-mount-care > .vehicle-registry-action.care { width: 100%; min-width: 0; min-height: 48px; }

.vehicle-transaction-list {
  display: grid;
  gap: 6px;
  padding-top: 7px;
  border-top: 1px solid rgba(104, 181, 160, 0.2);
}

.vehicle-transaction-list > header { display: flex; align-items: baseline; justify-content: space-between; gap: 10px; }
.vehicle-transaction-list > header span { color: var(--folio-muted, #d9c27d); font-size: var(--ming-font-small, 14px); font-weight: 750; }
.vehicle-transaction-list > header small { color: var(--folio-muted, #9db7aa); font-size: var(--ming-font-small, 14px); }
.vehicle-transaction-card {
  min-height: 82px;
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  align-items: center;
  gap: 10px;
  padding: 8px 10px;
  border: 1px solid rgba(197, 161, 90, 0.2);
  background: var(--folio-card, rgba(4, 10, 8, 0.72));
}
.vehicle-transaction-card.has-visual { grid-template-columns: 88px minmax(0, 1fr) auto; }
.vehicle-transaction-card > figure {
  width: 88px;
  height: 76px;
  margin: 0;
  display: grid;
  place-items: center;
  border: 1px solid rgba(197, 161, 90, 0.3);
  background: rgba(16, 29, 24, 0.82);
}
.vehicle-transaction-card > figure img { width: 82px; height: 68px; object-fit: contain; filter: drop-shadow(0 6px 6px rgba(0, 0, 0, 0.55)); }
.vehicle-transaction-card > div { min-width: 0; display: grid; gap: 3px; }
.vehicle-transaction-card > div > span,
.vehicle-transaction-card > div > small { color: var(--folio-muted, #9db7aa); font-size: var(--ming-font-small, 14px); line-height: 1.45; }
.vehicle-transaction-card > div > b { color: var(--folio-ink, #eadab6); font-size: 14px; }
.vehicle-transaction-card > div > p { margin: 0; color: var(--folio-muted, #c8bea9); font-size: var(--ming-font-body, 16px); line-height: 1.5; }
.vehicle-transaction-card > div > em { color: var(--folio-muted, #c8af70); font-size: var(--ming-font-small, 14px); line-height: 1.45; font-style: normal; }
.vehicle-acquisition-inspection {
  display: grid;
  gap: 6px;
  margin-top: 8px;
  padding: 8px;
  border: 1px solid rgba(126, 165, 143, 0.3);
  border-left: 3px solid #668e79;
  background: var(--folio-card, #0e1914);
}
.vehicle-acquisition-inspection > header,
.vehicle-acquisition-dialogue { display: flex; align-items: center; justify-content: space-between; gap: 10px; }
.vehicle-acquisition-inspection > header span,
.vehicle-acquisition-dialogue > span b { color: var(--folio-muted, #dec882); font-size: var(--ming-font-small, 14px); font-weight: 760; }
.vehicle-acquisition-inspection > header small,
.vehicle-acquisition-dialogue > span small { color: var(--folio-muted, #91aa9d); font-size: var(--ming-font-small, 14px); line-height: 1.4; }
.vehicle-acquisition-inspection > div { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 5px; }
.vehicle-acquisition-inspection article { min-width: 0; padding: 6px 8px; border: 1px solid rgba(190, 151, 76, 0.2); background: var(--folio-card, #0a110e); }
.vehicle-acquisition-inspection article small { color: var(--folio-muted, #c6aa65); font-size: var(--ming-font-small, 14px); }
.vehicle-acquisition-inspection article p { margin: 2px 0 0; color: var(--folio-muted, #c7c0ae); font-size: var(--ming-font-body, 16px); line-height: 1.5; }
.vehicle-acquisition-dialogue { margin-top: 7px; padding-top: 7px; border-top: 1px solid rgba(190, 151, 76, 0.2); }
.vehicle-acquisition-dialogue > span { min-width: 96px; display: grid; gap: 2px; }
.vehicle-acquisition-dialogue > div { min-width: 0; display: flex; flex-wrap: wrap; justify-content: flex-end; gap: 5px; }
.vehicle-acquisition-dialogue button {
  min-height: 46px;
  display: grid;
  align-content: center;
  gap: 1px;
  padding: 6px 9px;
  color: var(--folio-ink, #d8caa8);
  border: 1px solid rgba(104, 161, 137, 0.48);
  background: var(--folio-card, #13251d);
  cursor: pointer;
  text-align: left;
}
.vehicle-acquisition-dialogue button:hover,
.vehicle-acquisition-dialogue button:focus-visible { border-color: var(--folio-rule, #92baa5); background: var(--folio-hover, #1a3026); }
.vehicle-acquisition-dialogue button b { font-size: var(--ming-font-small, 14px); }
.vehicle-acquisition-dialogue button small { color: var(--folio-muted, #9fb6aa); font-size: var(--ming-font-small, 14px); }
.vehicle-transaction-card > button {
  min-width: 84px;
  min-height: 44px;
  display: grid;
  align-content: center;
  gap: 2px;
  color: var(--folio-ink, #ead7a5);
  border: 1px solid rgba(197, 161, 90, 0.5);
  background: var(--folio-card, rgba(48, 38, 19, 0.86));
}
.vehicle-transaction-card > button span { font-size: var(--ming-font-small, 14px); font-weight: 760; }
.vehicle-transaction-card > button small { color: var(--folio-muted, #b5a477); font-size: var(--ming-font-small, 14px); }
.vehicle-transaction-card > button:disabled { opacity: 0.46; cursor: not-allowed; }

.vehicle-spec-ledger {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 5px 8px;
  margin: 2px 0;
}

.vehicle-spec-ledger > div {
  min-width: 0;
  display: grid;
  grid-template-columns: auto minmax(0, 1fr);
  gap: 6px;
  padding: 4px 6px;
  border-left: 2px solid rgba(104, 171, 153, 0.46);
  background: var(--folio-card, rgba(13, 29, 24, 0.62));
}

.vehicle-spec-ledger dt,
.vehicle-spec-ledger dd { margin: 0; font-size: var(--ming-font-small, 14px); line-height: 1.4; }
.vehicle-spec-ledger dt { color: var(--folio-muted, #8eb7a4); }
.vehicle-spec-ledger dd { overflow-wrap: anywhere; color: var(--folio-ink, #d5c6a5); }
.vehicle-spec-ledger > .vehicle-provenance { grid-column: 1 / -1; border-left-color: var(--folio-rule, rgba(201, 165, 93, 0.62)); }
.vehicle-spec-ledger > .vehicle-provenance dt { color: var(--folio-muted, #d3b86f); }
.vehicle-spec-ledger.compact { margin-top: 7px; }

.vehicle-mount-vitals {
  display: grid;
  gap: 6px;
  margin: 5px 0 7px;
  padding: 8px 9px;
  border: 1px solid rgba(93, 157, 139, 0.44);
  background: var(--folio-card, #0d201a);
}
.vehicle-mount-vitals.warning { border-color: var(--folio-rule, rgba(180, 95, 70, 0.62)); background: var(--folio-card, #241713); }
.vehicle-mount-vitals > header,
.vehicle-mount-vitals > div { display: flex; align-items: center; justify-content: space-between; gap: 10px; }
.vehicle-mount-vitals > header span { color: var(--folio-muted, #d6bd78); font-size: 14px; font-weight: 760; }
.vehicle-mount-vitals > header small,
.vehicle-mount-vitals > div b,
.vehicle-mount-vitals > div em { font-size: var(--ming-font-small, 14px); line-height: 1.45; }
.vehicle-mount-vitals > header small { color: var(--folio-muted, #8fb6a5); }
.vehicle-mount-vitals > div b { color: var(--folio-ink, #eadab7); }
.vehicle-mount-vitals > div em { color: var(--folio-muted, #a6c9b9); font-style: normal; }
.vehicle-mount-vitals.warning > div em { color: var(--folio-muted, #e4a08b); }
.vehicle-mount-vitals > i {
  height: 6px;
  overflow: hidden;
  border: 1px solid rgba(108, 139, 126, 0.28);
  background: var(--folio-card, #07110e);
}
.vehicle-mount-vitals > i > span { display: block; height: 100%; background: var(--folio-card, #a98d4e); }
.vehicle-mount-vitals.warning > i > span { background: var(--folio-card, #a85343); }

.vehicle-cargo-ledger {
  display: grid;
  gap: 7px;
  margin-top: 7px;
  padding: 8px;
  border: 1px solid rgba(184, 145, 75, 0.42);
  background: var(--folio-card, #17150f);
}
.vehicle-cargo-ledger > header { min-width: 0; display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: end; gap: 3px 10px; }
.vehicle-cargo-ledger > header > div { min-width: 0; display: flex; align-items: baseline; justify-content: space-between; gap: 10px; }
.vehicle-cargo-ledger > header span { color: var(--folio-muted, #d8bd70); font-size: 14px; font-weight: 760; }
.vehicle-cargo-ledger > header b { color: var(--folio-ink, #eadbb4); font-size: 14px; white-space: nowrap; }
.vehicle-cargo-ledger > header small { color: var(--folio-muted, #9fa78f); font-size: var(--ming-font-small, 14px); line-height: 1.4; text-align: right; }
.vehicle-cargo-ledger > header > i { grid-column: 1 / -1; height: 6px; overflow: hidden; border: 1px solid rgba(154, 128, 74, 0.4); background: var(--folio-card, #090a07); }
.vehicle-cargo-ledger > header > i > em { display: block; height: 100%; background: var(--folio-card, #9b7f43); }
.vehicle-cargo-items { display: grid; gap: 5px; }
.vehicle-cargo-items > p,
.vehicle-cargo-stow p { margin: 0; color: var(--folio-muted, #9b9482); font-size: var(--ming-font-body, 16px); line-height: 1.45; }
.vehicle-cargo-item { min-width: 0; display: grid; grid-template-columns: 48px minmax(0, 1fr) minmax(128px, auto); align-items: center; gap: 8px; padding: 6px; border: 1px solid rgba(156, 129, 72, 0.35); background: var(--folio-card, #11130e); }
.vehicle-cargo-item > figure { width: 48px; height: 48px; margin: 0; display: grid; place-items: center; overflow: hidden; border: 1px solid rgba(162, 137, 82, 0.38); background: #080a07; }
.vehicle-cargo-item > figure img { width: 42px; height: 42px; object-fit: contain; }
.vehicle-cargo-item > figure span { color: #c6aa62; font-family: var(--font-display); font-size: 24px; }
.vehicle-cargo-item > div { min-width: 0; display: grid; gap: 1px; }
.vehicle-cargo-item > div span,
.vehicle-cargo-item > div small { color: var(--folio-muted, #9f9a86); font-size: var(--ming-font-small, 14px); line-height: 1.4; }
.vehicle-cargo-item > div b { overflow-wrap: anywhere; color: var(--folio-ink, #e0d0aa); font-size: 14px; }
.vehicle-cargo-item > button,
.vehicle-cargo-stow-action { min-height: 44px; padding: 5px 8px; display: grid; align-content: center; gap: 1px; color: var(--folio-ink, #e6d5aa); border: 1px solid rgba(177, 140, 67, 0.5); background: var(--folio-card, #292216); text-align: left; }
.vehicle-cargo-item > button span,
.vehicle-cargo-item > button small,
.vehicle-cargo-stow-action span,
.vehicle-cargo-stow-action small { font-size: var(--ming-font-small, 14px); line-height: 1.35; }
.vehicle-cargo-item > button small,
.vehicle-cargo-stow-action small { color: var(--folio-muted, #b6aa86); }
.vehicle-cargo-item > button:disabled,
.vehicle-cargo-stow-action:disabled { cursor: not-allowed; opacity: 0.48; }
.vehicle-cargo-stow { border-top: 1px solid rgba(157, 128, 70, 0.28); }
.vehicle-cargo-stow > summary { min-height: 44px; display: flex; align-items: center; justify-content: space-between; gap: 10px; color: var(--folio-ink, #d8bf7a); cursor: pointer; }
.vehicle-cargo-stow > summary span,
.vehicle-cargo-stow > summary small { font-size: var(--ming-font-small, 14px); line-height: 1.4; }
.vehicle-cargo-stow > summary small { color: var(--folio-muted, #938c79); text-align: right; }
.vehicle-cargo-stow > div { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 5px; padding-top: 3px; }
.vehicle-cargo-ledger > footer { color: var(--folio-ink, #9daf99); border-top: 1px solid rgba(102, 148, 128, 0.24); padding-top: 6px; font-size: var(--ming-font-small, 14px); line-height: 1.5; }

.vehicle-equipment-ledger {
  display: grid;
  gap: 5px;
  margin-top: 6px;
  padding: 7px;
  border: 1px solid rgba(91, 155, 139, 0.34);
  background: var(--folio-card, #0b1714);
}
.vehicle-equipment-ledger > header { display: flex; align-items: baseline; justify-content: space-between; gap: 10px; }
.vehicle-equipment-ledger > header span { color: var(--folio-muted, #d6c177); font-size: var(--ming-font-small, 14px); font-weight: 760; }
.vehicle-equipment-ledger > header small { color: var(--folio-muted, #8fa99d); font-size: var(--ming-font-small, 14px); line-height: 1.4; text-align: right; }
.vehicle-equipment-ledger > div { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 5px; }
.vehicle-equipment-slot {
  min-width: 0;
  display: grid;
  grid-template-columns: 62px minmax(0, 1fr);
  align-items: stretch;
  gap: 8px;
  padding: 6px;
  border: 1px solid rgba(101, 164, 148, 0.42);
  border-left: 3px solid #5f9a88;
  background: var(--folio-card, #10211c);
}
.vehicle-equipment-slot.empty { border-color: var(--folio-rule, rgba(145, 132, 92, 0.33)); border-left-color: var(--folio-rule, #776849); background: var(--folio-card, #171912); }
.vehicle-equipment-slot > figure {
  min-height: 62px;
  margin: 0;
  position: relative;
  display: grid;
  place-items: center;
  overflow: hidden;
  border: 1px solid rgba(114, 177, 158, 0.36);
  background: #091411;
}
.vehicle-equipment-slot.empty > figure { border-color: rgba(154, 135, 86, 0.34); background: #15140e; }
.vehicle-equipment-slot > figure img { width: 54px; height: 54px; object-fit: contain; filter: drop-shadow(0 4px 5px rgba(0, 0, 0, 0.6)); }
.vehicle-equipment-slot.empty > figure img { opacity: 0.34; filter: grayscale(0.55) sepia(0.28); }
.vehicle-equipment-slot > figure > span { color: #c5ae6d; font-family: var(--font-display); font-size: 28px; }
.vehicle-equipment-slot > figure > b {
  position: absolute;
  right: 2px;
  bottom: 2px;
  padding: 1px 4px;
  color: #c3dfd1;
  border: 1px solid rgba(101, 172, 154, 0.52);
  background: rgba(6, 27, 22, 0.94);
  font-size: var(--ming-font-small, 14px);
  line-height: 1.25;
}
.vehicle-equipment-slot.empty > figure > b { color: #c4b384; border-color: rgba(174, 145, 79, 0.48); background: rgba(37, 31, 15, 0.94); }
.vehicle-equipment-slot > div { min-width: 0; display: grid; align-content: center; gap: 2px; }
.vehicle-equipment-slot > div > header { display: flex; align-items: baseline; justify-content: space-between; gap: 6px; }
.vehicle-equipment-slot > div > header span,
.vehicle-equipment-slot > div > header em,
.vehicle-equipment-slot > div > small { margin: 0; color: var(--folio-muted, #9bb5a9); font-size: var(--ming-font-small, 14px); line-height: 1.4; }
.vehicle-equipment-slot > div > header span { color: var(--folio-muted, #9bc4b1); font-weight: 740; }
.vehicle-equipment-slot > div > header em { color: var(--folio-muted, #769686); font-style: normal; white-space: nowrap; }
.vehicle-equipment-slot.empty > div > header span,
.vehicle-equipment-slot.empty > div > header em { color: var(--folio-muted, #a99971); }
.vehicle-equipment-slot > div > strong { color: var(--folio-ink, #e3d5b1); font-size: var(--ming-font-small, 14px); }
.vehicle-equipment-slot > div > small { overflow-wrap: anywhere; }
.vehicle-equipment-slot-action {
  width: 100%;
  min-height: 44px;
  margin-top: 5px;
  padding: 5px 8px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
  color: var(--folio-ink, #d7e6dd);
  border: 1px solid rgba(104, 181, 160, 0.5);
  background: var(--folio-card, #163129);
  text-align: left;
}
.vehicle-equipment-slot-action.remove {
  color: var(--folio-ink, #ead8aa);
  border-color: var(--folio-rule, rgba(183, 145, 76, 0.58));
  background: var(--folio-card, #292317);
}
.vehicle-equipment-slot-action span,
.vehicle-equipment-slot-action small { font-size: var(--ming-font-small, 14px); line-height: 1.35; }
.vehicle-equipment-slot-action span { font-weight: 760; }
.vehicle-equipment-slot-action small { color: var(--folio-muted, #9fc2b1); text-align: right; }
.vehicle-equipment-slot-action.remove small { color: var(--folio-muted, #c6af7b); }
.vehicle-equipment-slot-action:disabled { cursor: not-allowed; opacity: 0.48; }
.vehicle-action-button.ship-gear { border-color: var(--folio-rule, rgba(91, 155, 139, 0.58)); background: var(--folio-card, #142a24); }

/* 确定性操作在点击前就列出本轮真实投入与落账结果。 */
.deterministic-action-preview {
  display: block;
  overflow: visible;
  color: #b8cbbf;
  font-size: var(--ming-font-small, 14px);
  line-height: 1.45;
  overflow-wrap: anywhere;
  text-overflow: clip;
  white-space: normal;
}
.building-lifecycle-action,
.industrial-facility-card > div > button { background: var(--folio-card, #183428); }
.vehicle-transaction-card > button {
  width: min(260px, 34vw);
  max-width: 260px;
  padding: 8px 11px;
  background: var(--folio-card, #302613);
  text-align: left;
}

@media (max-width: 760px) {
  .deterministic-action-preview { font-size: var(--ming-font-small, 14px); }
  .vehicle-transaction-card > button { width: 100%; max-width: none; }
}

.inventory-load-summary {
  display: grid;
  grid-template-columns: 0.72fr 1fr 1fr;
  align-items: stretch;
  gap: 1px;
  overflow: hidden;
  border: 1px solid rgba(203, 171, 105, 0.27);
  background: var(--folio-card, rgba(3, 8, 7, 0.74));
}

.inventory-load-summary > div {
  min-width: 0;
  display: grid;
  align-content: center;
  gap: 1px;
  padding: 5px 10px;
  background: var(--folio-card, linear-gradient(145deg, rgba(25, 35, 29, 0.8), rgba(6, 11, 9, 0.86)));
}

.inventory-load-summary span,
.inventory-load-summary small {
  overflow: hidden;
  color: var(--folio-muted, #998d77);
  font-size: var(--ming-font-small, 14px);
  line-height: 1.35;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.inventory-load-summary small { display: none; }

.inventory-load-summary strong {
  color: var(--folio-ink, #e4d1a5);
  font-size: 17px;
  line-height: 1.25;
}

.load-meter p {
  margin: 0;
  color: #c8b996;
  font-size: var(--ming-font-body, 16px);
}

.load-meter p b { color: #a9cfbd; font-size: 16px; }
.load-meter > i { height: 5px; overflow: hidden; background: rgba(255, 255, 255, 0.08); }
.load-meter > i > b { display: block; height: 100%; background: linear-gradient(90deg, #477464, #9bc0af); }
.equipment-summary b { overflow: hidden; color: #d8c69f; font-size: var(--ming-font-small, 14px); text-overflow: ellipsis; white-space: nowrap; }

/* 钱铺余存属于家底查账，不是随身钱，也不在异地提供任何存取入口。 */
.inventory-money-house-summary {
  min-width: 0;
  display: grid;
  gap: 7px;
  padding: 10px 11px;
  border: 1px solid rgba(190, 157, 91, 0.3);
  border-left: 3px solid #a68442;
  background: var(--folio-card, #101510);
}

.inventory-money-house-summary > header {
  min-width: 0;
  display: flex;
  align-items: end;
  justify-content: space-between;
  gap: 10px;
}

.inventory-money-house-summary > header > div { min-width: 0; display: flex; align-items: baseline; gap: 9px; }
.inventory-money-house-summary > header span { color: var(--folio-muted, #c9ad67); font-size: var(--ming-font-small, 14px); font-weight: 760; letter-spacing: 0.06em; }
.inventory-money-house-summary > header strong { color: var(--folio-ink, #ead9ac); font-size: 18px; white-space: nowrap; }
.inventory-money-house-summary > header small { color: var(--folio-muted, #92a296); font-size: var(--ming-font-small, 14px); line-height: 1.45; text-align: right; }
.inventory-money-house-list { min-width: 0; display: grid; grid-template-columns: repeat(auto-fit, minmax(260px, 1fr)); gap: 6px; }
.inventory-money-house-list article {
  min-width: 0;
  display: grid;
  grid-template-columns: 42px minmax(0, 1fr) auto;
  align-items: center;
  gap: 9px;
  padding: 8px 10px;
  border: 1px solid rgba(106, 154, 130, 0.27);
  background: var(--folio-card, #08110d);
}
.inventory-money-house-list img { width: 40px; height: 40px; object-fit: contain; filter: drop-shadow(0 3px 4px rgba(0, 0, 0, 0.28)); }
.inventory-money-house-list article > div { min-width: 0; display: grid; gap: 2px; }
.inventory-money-house-list article > div span { overflow: hidden; color: var(--folio-muted, #91a497); font-size: var(--ming-font-small, 14px); text-overflow: ellipsis; white-space: nowrap; }
.inventory-money-house-list article > div b { overflow: hidden; color: var(--folio-ink, #dfd0ae); font-size: 14px; text-overflow: ellipsis; white-space: nowrap; }
.inventory-money-house-list article > div small { color: var(--folio-muted, #87958c); font-size: var(--ming-font-small, 14px); line-height: 1.4; }
.inventory-money-house-list article > strong { color: var(--folio-ink, #dbbd70); font-size: 17px; white-space: nowrap; }
.inventory-money-house-history {
  min-width: 0;
  grid-column: 1 / -1;
  margin-top: 2px;
  border-top: 1px solid rgba(166, 132, 66, 0.24);
}
.inventory-money-house-history > summary {
  min-height: 48px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
  padding: 6px 2px 4px;
  color: var(--folio-ink, #c9ad67);
  cursor: pointer;
  list-style: none;
}
.inventory-money-house-history > summary::-webkit-details-marker { display: none; }
.inventory-money-house-history > summary > span { min-width: 0; display: grid; gap: 2px; }
.inventory-money-house-history > summary b { color: var(--folio-ink, #d8c69f); font-size: var(--ming-font-small, 14px); }
.inventory-money-house-history > summary small { color: var(--folio-muted, #87958c); font-size: var(--ming-font-small, 14px); font-weight: 400; letter-spacing: 0; }
.inventory-money-house-history > summary em { flex: 0 0 auto; color: var(--folio-muted, #a9cfbd); font-size: var(--ming-font-small, 14px); font-style: normal; }
.inventory-money-house-history .open-label,
.inventory-money-house-history[open] .closed-label { display: none; }
.inventory-money-house-history[open] .open-label { display: inline; }
.inventory-money-house-history ol { display: grid; gap: 5px; margin: 0; padding: 0; list-style: none; }
.inventory-money-house-history li {
  min-width: 0;
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto auto;
  align-items: center;
  gap: 9px;
  padding: 7px 8px;
  border: 1px solid rgba(106, 154, 130, 0.2);
  background: var(--folio-card, rgba(255, 255, 255, 0.018));
}
.inventory-money-house-history li > div { min-width: 0; display: grid; gap: 2px; }
.inventory-money-house-history time { color: var(--folio-muted, #d8c69f); font-size: var(--ming-font-small, 14px); line-height: 1.45; white-space: normal; }
.inventory-money-house-history li > div small { color: var(--folio-muted, #91a497); font-size: var(--ming-font-small, 14px); }
.inventory-money-house-history li > strong { color: var(--folio-ink, #a9cfbd); font-size: var(--ming-font-small, 14px); white-space: nowrap; }
.inventory-money-house-history li > strong.is-withdraw { color: var(--folio-ink, #d2a77c); }
.inventory-money-house-history li > span { display: grid; justify-items: end; gap: 1px; }
.inventory-money-house-history li > span small { color: var(--folio-muted, #87958c); font-size: var(--ming-font-small, 14px); }
.inventory-money-house-history li > span b { color: var(--folio-muted, #dbbd70); font-size: var(--ming-font-small, 14px); white-space: nowrap; }
.inventory-money-house-history > p { margin: 6px 0 1px; color: var(--folio-muted, #78877d); font-size: var(--ming-font-body, 16px); text-align: right; }
.inventory-money-house-summary.compact { padding: 9px; }
.inventory-money-house-summary.compact > header { align-items: start; flex-direction: column; gap: 2px; }
.inventory-money-house-summary.compact > header small { text-align: left; }
.inventory-money-house-summary.compact .inventory-money-house-list { grid-template-columns: 1fr; }
.inventory-money-house-summary.compact .inventory-money-house-list article { padding: 7px 8px; }

@media (max-width: 760px) {
  .inventory-money-house-summary > header { align-items: start; flex-direction: column; gap: 3px; }
  .inventory-money-house-summary > header small { text-align: left; }
  .inventory-money-house-list { grid-template-columns: 1fr; }
  .inventory-money-house-list article { grid-template-columns: 42px minmax(0, 1fr) auto; }
  .inventory-money-house-history li { grid-template-columns: 1fr auto; }
  .inventory-money-house-history li > span { grid-column: 1 / -1; grid-template-columns: auto auto; justify-content: space-between; }
  .inventory-money-house-summary > header span,
  .inventory-money-house-summary > header small,
  .inventory-money-house-list article > div span,
  .inventory-money-house-list article > div small { font-size: var(--ming-font-small, 14px); }
}

.inventory-category-tabs {
  min-height: 34px;
  display: grid;
  grid-template-columns: repeat(6, minmax(0, 1fr));
  gap: 3px;
}

.inventory-category-tabs button {
  min-width: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 5px;
  padding: 5px 3px;
  color: var(--folio-ink, #968a74);
  border: 1px solid rgba(204, 173, 108, 0.16);
  background: var(--folio-card, rgba(7, 12, 10, 0.68));
  font-size: var(--ming-font-small, 14px);
  cursor: pointer;
}

.inventory-category-tabs button b {
  min-width: 17px;
  padding: 1px 4px;
  color: var(--folio-ink, #bfa96f);
  border: 1px solid rgba(204, 173, 108, 0.2);
  border-radius: 999px;
  background: var(--folio-card, rgba(2, 6, 5, 0.52));
  font-size: var(--ming-font-small, 14px);
  line-height: 1.35;
}

.inventory-category-tabs button:hover,
.inventory-category-tabs button:focus-visible,
.inventory-category-tabs button.active {
  color: var(--folio-ink, #eddfc0);
  border-color: var(--folio-rule, rgba(204, 173, 108, 0.46));
  background: var(--folio-hover, linear-gradient(180deg, rgba(133, 102, 52, 0.24), rgba(11, 17, 14, 0.72)));
}

.inventory-card-list {
  min-height: 0;
  display: grid;
  grid-auto-rows: minmax(128px, auto);
  align-content: start;
  gap: 7px;
  overflow-y: auto;
  padding-right: 2px;
  scrollbar-width: thin;
  scrollbar-color: rgba(190, 157, 96, 0.34) transparent;
}

.inventory-ledger-card {
  min-width: 0;
  min-height: 128px;
  display: grid;
  grid-template-columns: 82px minmax(0, 1fr);
  gap: 10px;
  overflow: visible;
  padding: 8px 10px 8px 8px;
  border: 1px solid rgba(204, 173, 108, 0.22);
  background: var(--folio-card, radial-gradient(circle at 8% 50%, rgba(165, 126, 66, 0.12), transparent 35%),
    linear-gradient(120deg, rgba(15, 23, 19, 0.94), rgba(5, 9, 8, 0.9)));
}

.inventory-ledger > .system-pager {
  margin-top: 0;
  padding-top: 4px;
}

.inventory-ledger > .system-pager button { min-height: 44px; padding-block: 3px; }

.inventory-ledger-card.equipped {
  border-color: var(--folio-rule, rgba(126, 185, 158, 0.42));
  box-shadow: inset 3px 0 rgba(93, 151, 126, 0.7);
}

.inventory-ledger-card.vehicle-active {
  border-color: var(--folio-rule, rgba(105, 177, 164, 0.62));
  box-shadow: inset 3px 0 rgba(70, 147, 133, 0.8), 0 0 22px rgba(52, 122, 108, 0.1);
}

.inventory-ledger-card > figure {
  position: relative;
  min-width: 0;
  height: 82px;
  display: grid;
  place-items: center;
  overflow: hidden;
  margin: 0;
  border: 1px solid rgba(214, 181, 113, 0.24);
  background:
    radial-gradient(circle, rgba(151, 119, 65, 0.19), transparent 67%),
    rgba(3, 7, 6, 0.62);
}

.inventory-ledger-card > figure img {
  width: 68px;
  height: 68px;
  object-fit: contain;
  filter: drop-shadow(0 7px 8px rgba(0, 0, 0, 0.55));
}

.inventory-ledger-card > figure b {
  position: absolute;
  right: 3px;
  bottom: 3px;
  padding: 2px 5px;
  color: #b9dccb;
  border: 1px solid rgba(126, 185, 158, 0.46);
  background: rgba(16, 48, 37, 0.9);
  font-size: var(--ming-font-small, 14px);
}

.inventory-item-copy {
  min-width: 0;
  display: grid;
  grid-template-rows: auto auto auto auto;
  align-content: start;
  gap: 4px;
}

.inventory-item-copy > header { min-width: 0; display: flex; align-items: flex-start; justify-content: space-between; gap: 8px; }
.inventory-item-copy > header span { color: var(--folio-muted, #b29456); font-size: var(--ming-font-small, 14px); font-weight: 720; }
.inventory-item-copy > header h3 { margin: -1px 0 0; color: var(--folio-ink, #eee1c6); font-size: 16px; line-height: 1.25; }
.inventory-item-copy > header strong { flex: 0 0 auto; color: var(--folio-ink, #d8bd79); font-size: var(--ming-font-small, 14px); }
.inventory-item-copy > p { overflow: hidden; margin: 0; color: var(--folio-muted, #aa9f89); font-size: var(--ming-font-body, 16px); line-height: 1.45; text-overflow: ellipsis; white-space: nowrap; }
.inventory-item-facts { display: flex; flex-wrap: wrap; gap: 3px 8px; color: var(--folio-ink, #918674); font-size: var(--ming-font-small, 14px); }
.inventory-item-facts .provision-freshness-fact {
  color: var(--folio-ink, #b9d2ae);
  border-color: var(--folio-rule, rgba(130, 168, 116, 0.34));
}
.inventory-item-facts .provision-freshness-fact.wilted { color: var(--folio-ink, #d4bd7c); }
.inventory-item-facts .provision-freshness-fact.spoiled { color: var(--folio-ink, #c98c7f); }
.provision-freshness-note,
.provision-storage-note {
  color: #a99d87;
  font-size: var(--ming-font-small, 14px);
  line-height: 1.55;
}
.provision-storage-note { display: block; margin-top: 3px; font-style: normal; }

.inventory-item-actions {
  min-width: 0;
  display: flex;
  align-items: stretch;
  gap: 6px;
}
.inventory-item-actions > small {
  align-self: center;
  color: var(--folio-muted, #9d927f);
  font-size: var(--ming-font-small, 14px);
  line-height: 1.4;
}

.personal-action-button,
.equipment-action-button,
.vehicle-action-button,
.skill-card footer button {
  min-width: 0;
  min-height: 44px;
  display: flex;
  flex: 1 1 0;
  flex-direction: column;
  align-items: flex-start;
  justify-content: center;
  padding: 5px 8px;
  color: var(--folio-ink, #d9cba9);
  border: 1px solid rgba(107, 172, 145, 0.42);
  background: var(--folio-card, linear-gradient(110deg, rgba(38, 80, 63, 0.38), rgba(7, 17, 13, 0.76)));
  text-align: left;
  cursor: pointer;
}

.equipment-action-button { border-color: rgba(193, 155, 84, 0.38); background: linear-gradient(110deg, rgba(83, 61, 28, 0.34), rgba(15, 12, 7, 0.76)); }
.vehicle-action-button { border-color: var(--folio-rule, rgba(92, 171, 154, 0.48)); background: var(--folio-card, rgba(16, 48, 40, 0.88)); }
.personal-action-button span,
.equipment-action-button span,
.vehicle-action-button span { font-size: var(--ming-font-small, 14px); font-weight: 740; line-height: 1.2; }
.personal-action-button small,
.equipment-action-button small,
.vehicle-action-button small { color: var(--folio-muted, #a8c8b9); font-size: var(--ming-font-small, 14px); line-height: 1.35; }
.system-focus-panel-inventory .system-focus-close small { font-size: var(--ming-font-small, 14px); }
.equipment-action-button small { color: #ae9562; }
.personal-action-button:hover:not(:disabled),
.equipment-action-button:hover:not(:disabled),
.vehicle-action-button:hover:not(:disabled),
.skill-card footer button:hover:not(:disabled) { color: var(--folio-ink, #f3e6ca); border-color: var(--folio-rule, rgba(148, 207, 179, 0.7)); transform: translateY(-1px); }

.inventory-action-boundary {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 1px;
  border: 1px solid rgba(202, 170, 104, 0.2);
  background: var(--folio-card, rgba(202, 170, 104, 0.2));
}

.spoiled-disposition-action {
  min-height: 48px;
  color: #d9a59b;
  border-color: rgba(173, 82, 67, 0.5);
  background: rgba(83, 34, 29, 0.42);
}

.spoiled-disposition-action span,
.spoiled-disposition-action small {
  font-size: var(--ming-font-small, 14px);
}

.inventory-action-boundary > div {
  min-width: 0;
  display: grid;
  gap: 2px;
  padding: 7px 9px;
  background: var(--folio-card, rgba(6, 11, 9, 0.94));
}

.inventory-action-boundary b { color: var(--folio-ink, #a8cdbb); font-size: var(--ming-font-small, 14px); }
.inventory-action-boundary > div:last-child b { color: var(--folio-ink, #d1b36f); }
.inventory-action-boundary span { color: var(--folio-muted, #928774); font-size: var(--ming-font-small, 14px); line-height: 1.4; }

.skill-action-pair { display: grid; grid-template-columns: 1fr 1fr; gap: 7px; }
.skill-action-pair .system-action-seed,
.skill-action-pair .personal-action-button { min-height: 58px; }
.skill-card footer button { margin-top: 5px; color: var(--folio-ink, #a9cfbd); font-size: var(--ming-font-small, 14px); }

@media (max-width: 1079px) {
  .inventory-ledger { min-width: 620px; }
}

@media (max-width: 760px) {
  .inventory-ledger { min-width: 0; width: 100%; }
  .vehicle-system-summary,
  .vehicle-system-ledger,
  .vehicle-registry { width: 100%; min-width: 0; }
  .vehicle-system-summary > header,
  .vehicle-system-summary > footer,
  .vehicle-system-heading { align-items: flex-start; flex-direction: column; }
  .vehicle-system-summary > header > div { align-items: flex-start; flex-direction: column; gap: 2px; }
  .vehicle-system-summary-list { grid-template-columns: minmax(0, 1fr); }
  .vehicle-system-heading > aside { width: 100%; min-width: 0; grid-template-columns: auto auto 1fr; place-items: baseline start; gap: 8px; text-align: left; }
  .vehicle-system-heading > aside b { font-size: 22px; }
  .vehicle-system-empty { align-items: flex-start; }
  .vehicle-compact-facts { grid-template-columns: 1fr; }
  .system-focus-panel-vehicles .system-focus-body { padding-inline: 8px; }
  .vehicle-registry > header { align-items: start; flex-direction: column; }
  .vehicle-registry > div { grid-template-columns: 1fr; }
  .vehicle-registry-hero { grid-template-columns: 104px minmax(0, 1fr); gap: 9px; }
  .vehicle-registry-visual { min-height: 108px; }
  .vehicle-registry-visual img { width: 94px; height: 74px; }
  .vehicle-registry-summary > header { grid-template-columns: 1fr; }
  .vehicle-registry-summary > header small { grid-column: auto; }
  .vehicle-registry article > header { align-items: stretch; flex-direction: column; }
  .vehicle-registry article > header > .vehicle-registry-actions,
  .vehicle-registry-summary > .vehicle-registry-actions { justify-content: stretch; }
  .vehicle-registry-actions .vehicle-registry-action { flex: 1 1 140px; }
  .vehicle-mount-care { grid-template-columns: 1fr; }
  .vehicle-mount-vitals > header,
  .vehicle-mount-vitals > div { align-items: flex-start; flex-direction: column; gap: 2px; }
  .vehicle-cargo-ledger > header { grid-template-columns: 1fr; align-items: start; }
  .vehicle-cargo-ledger > header > div { align-items: flex-start; flex-direction: column; gap: 2px; }
  .vehicle-cargo-ledger > header small { text-align: left; }
  .vehicle-cargo-item { grid-template-columns: 48px minmax(0, 1fr); }
  .vehicle-cargo-item > button { grid-column: 1 / -1; width: 100%; }
  .vehicle-cargo-stow > div { grid-template-columns: 1fr; }
  .vehicle-equipment-ledger > header { align-items: flex-start; flex-direction: column; gap: 2px; }
  .vehicle-equipment-ledger > header small { text-align: left; }
  .vehicle-equipment-ledger > div { grid-template-columns: 1fr; }
  .vehicle-equipment-slot { grid-template-columns: 68px minmax(0, 1fr); }
  .vehicle-equipment-slot > figure { min-height: 68px; }
  .vehicle-equipment-slot > figure img { width: 60px; height: 60px; }
  .vehicle-transaction-list > header { align-items: start; flex-direction: column; }
  .vehicle-transaction-card { grid-template-columns: 1fr; }
  .vehicle-transaction-card.has-visual { grid-template-columns: 74px minmax(0, 1fr); }
  .vehicle-transaction-card > figure { width: 74px; height: 68px; }
  .vehicle-transaction-card > figure img { width: 68px; height: 60px; }
  .vehicle-transaction-card.has-visual > button { grid-column: 1 / -1; }
  .vehicle-transaction-card > button { width: 100%; }
  .vehicle-acquisition-inspection > header,
  .vehicle-acquisition-dialogue { align-items: flex-start; flex-direction: column; }
  .vehicle-acquisition-inspection > div { grid-template-columns: 1fr; }
  .vehicle-acquisition-dialogue > div { width: 100%; display: grid; grid-template-columns: 1fr; }
  .vehicle-acquisition-dialogue button { width: 100%; min-height: 48px; }
  .vehicle-registry > header span,
  .vehicle-registry > header small,
  .vehicle-registry article > header > div > small,
  .vehicle-registry-action span,
  .vehicle-registry-action small,
  .vehicle-spec-ledger dt,
  .vehicle-spec-ledger dd,
  .vehicle-action-button span,
  .vehicle-action-button small,
  .vehicle-transaction-card > div > span,
  .vehicle-transaction-card > div > small,
  .vehicle-transaction-card > div > em,
  .vehicle-transaction-card > div > p,
  .vehicle-transaction-card > button span,
  .vehicle-transaction-card > button small { font-size: var(--ming-font-small, 14px); }
}

/* V0.15 · 锦衣行：六身份开局、案卷桌与雨夜北司视觉 */
.jinyi-start-modal {
  isolation: isolate;
  width: min(1020px, 100%);
  max-height: min(94dvh, 780px);
  overflow-y: auto;
  padding: 26px 30px 94px;
  background:
    linear-gradient(90deg, rgba(8, 12, 13, 0.98) 0%, rgba(9, 14, 15, 0.95) 48%, rgba(8, 12, 13, 0.56) 100%),
    linear-gradient(180deg, rgba(112, 42, 34, 0.12), rgba(4, 8, 8, 0.58)),
    url('/assets/art/jinyi/jinyi-rain-ledger-keyart-v2.png') right center / auto 100% no-repeat,
    #080d0e;
  border-color: var(--folio-rule, rgba(181, 150, 88, 0.52));
  box-shadow: 0 38px 110px rgba(0, 0, 0, 0.82), inset 3px 0 rgba(150, 54, 43, 0.48);
  scrollbar-color: rgba(185, 146, 76, 0.5) rgba(5, 8, 8, 0.7);
}

.jinyi-start-modal > p { max-width: 760px; }
.jinyi-start-modal .modal-record {
  grid-template-columns: 0.8fr 1.05fr 1.4fr;
  margin-top: 13px;
  background: var(--folio-card, rgba(179, 144, 78, 0.18));
  border-color: var(--folio-rule, rgba(179, 144, 78, 0.2));
}
.jinyi-start-modal .modal-record > div { min-height: 54px; background: var(--folio-card, rgba(9, 15, 15, 0.86)); }
.jinyi-start-modal .modal-record > div:last-child { grid-column: auto; }
.jinyi-start-modal .modal-boundary { margin-top: 9px; background: var(--folio-card, rgba(7, 14, 14, 0.74)); }
.jinyi-start-modal .modal-actions {
  position: fixed;
  z-index: 6;
  right: auto;
  bottom: 22px;
  left: 50%;
  width: min(1020px, calc(100vw - 44px));
  justify-content: flex-end;
  margin: 0;
  padding: 10px 18px;
  border: 1px solid rgba(185, 149, 79, 0.28);
  background: var(--folio-card, linear-gradient(90deg, rgba(7, 13, 13, 0.97), rgba(15, 20, 19, 0.98)));
  box-shadow: 0 -14px 34px rgba(0, 0, 0, 0.46);
  transform: translateX(-50%);
}
.jinyi-start-modal .modal-actions .primary {
  min-width: 182px;
  border-color: var(--folio-rule, rgba(190, 153, 81, 0.66));
  background: var(--folio-card, linear-gradient(105deg, rgba(132, 50, 39, 0.62), rgba(73, 88, 71, 0.66)));
}

.jinyi-role-picker {
  display: grid;
  grid-template-columns: minmax(0, 1.46fr) minmax(260px, 0.74fr);
  gap: 10px 12px;
  margin-top: 12px;
  padding: 12px;
  border: 1px solid rgba(185, 149, 79, 0.29);
  background: var(--folio-card, linear-gradient(120deg, rgba(20, 30, 29, 0.94), rgba(8, 14, 15, 0.8)));
  box-shadow: inset 0 0 28px rgba(73, 108, 94, 0.08);
}

.jinyi-role-picker-heading {
  grid-column: 1 / -1;
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 16px;
}
.jinyi-role-picker-heading span { color: var(--folio-muted, #d7bb7c); font-size: var(--ming-font-small, 14px); font-weight: 800; letter-spacing: 0.16em; }
.jinyi-role-picker-heading small { color: var(--folio-muted, #81948b); font-size: var(--ming-font-small, 14px); }

.jinyi-role-picker-grid {
  min-width: 0;
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 6px;
}

.jinyi-role-choice {
  min-width: 0;
  min-height: 59px;
  display: grid;
  grid-template-columns: 42px minmax(0, 1fr);
  align-content: center;
  align-items: center;
  gap: 7px;
  padding: 5px 7px;
  color: var(--folio-ink, #ada38f);
  border: 1px solid rgba(174, 148, 94, 0.16);
  background: var(--folio-card, rgba(5, 10, 10, 0.66));
  text-align: left;
  cursor: pointer;
}
.jinyi-role-choice > figure { width: 42px; height: 50px; overflow: hidden; margin: 0; border: 1px solid rgba(184, 149, 78, 0.28); border-radius: 2px 2px 8px 2px; background: #070c0d; }
.jinyi-role-choice > figure img { width: 100%; height: 100%; object-fit: cover; object-position: 50% 22%; }
.jinyi-role-choice-copy { min-width: 0; display: grid; justify-items: start; gap: 1px; }
.jinyi-role-choice small { color: var(--folio-muted, #8d7650); font-size: var(--ming-font-small, 14px); letter-spacing: 0.06em; }
.jinyi-role-choice strong { max-width: 100%; overflow: hidden; color: var(--folio-ink, #ded3bb); font-size: var(--ming-font-small, 14px); text-overflow: ellipsis; white-space: nowrap; }
.jinyi-role-choice em { max-width: 100%; overflow: hidden; color: var(--folio-muted, #80958a); font-size: var(--ming-font-small, 14px); font-style: normal; text-overflow: ellipsis; white-space: nowrap; }
.jinyi-role-choice:hover,
.jinyi-role-choice:focus-visible { border-color: var(--folio-rule, rgba(202, 166, 93, 0.54)); outline: none; }
.jinyi-role-choice.selected {
  border-color: var(--folio-rule, rgba(213, 175, 95, 0.68));
  background: var(--folio-selected-surface, linear-gradient(110deg, rgba(114, 43, 34, 0.48), rgba(35, 69, 58, 0.52)));
  box-shadow: inset 2px 0 #a9483b, inset 0 -1px rgba(220, 182, 101, 0.42);
}
.jinyi-role-choice.selected small { color: var(--folio-muted, #c96d5d); }
.jinyi-role-choice.selected em { color: var(--folio-muted, #9cc3b0); }
.jinyi-role-choice.custom {
  grid-column: 1 / -1;
  min-height: 52px;
  background: var(--folio-card, linear-gradient(90deg, rgba(131, 52, 43, 0.18), rgba(35, 77, 64, 0.2)),
    rgba(5, 10, 10, 0.76));
}
.jinyi-role-choice.custom > figure { height: 42px; }
.jinyi-role-choice.custom .jinyi-role-choice-copy {
  grid-template-columns: minmax(100px, 0.5fr) minmax(130px, 0.65fr) minmax(0, 1.5fr);
  align-items: center;
  column-gap: 10px;
}
.jinyi-role-choice.custom small,
.jinyi-role-choice.custom strong,
.jinyi-role-choice.custom em { white-space: normal; }

.jinyi-role-detail {
  min-width: 0;
  display: grid;
  grid-template-columns: 68px minmax(0, 1fr);
  align-content: start;
  gap: 9px;
  padding: 10px 12px;
  border-left: 2px solid rgba(151, 58, 46, 0.76);
  background: var(--folio-card, rgba(4, 9, 10, 0.72));
}
.jinyi-role-detail > figure { width: 68px; height: 84px; overflow: hidden; margin: 0; border: 1px solid rgba(196, 158, 82, 0.42); border-radius: 2px 2px 11px 2px; background: #070c0d; }
.jinyi-role-detail > figure img { width: 100%; height: 100%; object-fit: cover; object-position: 50% 22%; }
.jinyi-role-detail > div > span { color: var(--folio-muted, #907b54); font-size: var(--ming-font-small, 14px); letter-spacing: 0.12em; }
.jinyi-role-detail h3 { margin: 2px 0 0; color: var(--folio-ink, #f0e3c8); font-family: var(--font-brush); font-size: 25px; font-weight: 400; }
.jinyi-role-detail p { margin: 3px 0 0; color: var(--folio-muted, #a59b87); font-size: var(--ming-font-body, 16px); line-height: 1.5; }
.jinyi-role-detail dl { grid-column: 1 / -1; display: grid; gap: 5px; margin: 0; }
.jinyi-role-detail dl > div { display: grid; grid-template-columns: 54px minmax(0, 1fr); gap: 7px; padding-top: 5px; border-top: 1px solid rgba(189, 155, 88, 0.13); }
.jinyi-role-detail dt { color: var(--folio-muted, #8f7850); font-size: var(--ming-font-small, 14px); }
.jinyi-role-detail dd { margin: 0; color: var(--folio-ink, #b9ad96); font-size: var(--ming-font-small, 14px); line-height: 1.45; }

.jinyi-custom-role-editor {
  grid-column: 1 / -1;
  display: grid;
  grid-template-columns: minmax(0, 0.78fr) minmax(0, 1.22fr);
  gap: 10px 12px;
  padding: 13px;
  border: 1px solid rgba(190, 150, 76, 0.28);
  border-left: 3px solid rgba(161, 65, 51, 0.82);
  background: var(--folio-card, radial-gradient(circle at 92% 6%, rgba(90, 128, 106, 0.18), transparent 30%),
    linear-gradient(135deg, rgba(10, 17, 17, 0.98), rgba(6, 11, 12, 0.92)));
}
.jinyi-custom-role-editor > header {
  grid-column: 1 / -1;
  display: grid;
  grid-template-columns: minmax(0, 1fr) 68px;
  align-items: center;
  gap: 12px;
  min-height: 74px;
  padding-bottom: 9px;
  border-bottom: 1px solid rgba(191, 154, 83, 0.16);
}
.jinyi-custom-role-editor > header span { color: var(--folio-muted, #b95c4e); font-size: var(--ming-font-small, 14px); font-weight: 800; letter-spacing: 0.13em; }
.jinyi-custom-role-editor > header h3 { margin: 2px 0; color: var(--folio-ink, #f0e1c1); font-family: var(--font-brush); font-size: 27px; font-weight: 400; }
.jinyi-custom-role-editor > header p { margin: 0; color: var(--folio-muted, #a9a08d); font-size: var(--ming-font-body, 16px); line-height: 1.5; }
.jinyi-custom-role-editor > header figure { width: 64px; height: 74px; overflow: hidden; margin: 0; border: 1px solid rgba(199, 161, 82, 0.42); border-radius: 2px 2px 12px 2px; box-shadow: 0 8px 22px rgba(0,0,0,0.36); }
.jinyi-custom-role-editor > header img { width: 100%; height: 100%; object-fit: cover; object-position: 50% 21%; }

.jinyi-custom-presets,
.jinyi-custom-portraits { min-width: 0; }
.jinyi-custom-presets > span,
.jinyi-custom-portraits > span { display: block; margin-bottom: 5px; color: #b89a61; font-size: var(--ming-font-small, 14px); font-weight: 800; letter-spacing: 0.1em; }
.jinyi-custom-presets > div { display: grid; grid-template-columns: 1fr 1fr; gap: 5px; }
.jinyi-custom-presets button {
  min-height: 44px;
  padding: 5px 7px;
  color: var(--folio-ink, #c8baa0);
  border: 1px solid rgba(176, 145, 87, 0.22);
  background: var(--folio-card, rgba(18, 28, 27, 0.72));
  font-size: var(--ming-font-small, 14px);
  cursor: pointer;
}
.jinyi-custom-presets button:hover,
.jinyi-custom-presets button:focus-visible { color: var(--folio-ink, #f0dfba); border-color: var(--folio-rule, rgba(202, 164, 89, 0.58)); outline: none; }
.jinyi-custom-presets > small { display: block; margin-top: 5px; color: var(--folio-muted, #75877f); font-size: var(--ming-font-small, 14px); line-height: 1.4; }
.jinyi-custom-portraits > div { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 5px; }
.jinyi-custom-portrait-choice {
  min-width: 0;
  min-height: 66px;
  display: grid;
  grid-template-columns: 42px minmax(0, 1fr);
  align-items: center;
  gap: 6px;
  padding: 4px;
  color: #a99c86;
  border: 1px solid rgba(181, 145, 76, 0.17);
  background: rgba(4, 9, 10, 0.72);
  text-align: left;
  cursor: pointer;
}
.jinyi-custom-portrait-choice img { width: 42px; height: 56px; object-fit: cover; object-position: 50% 20%; border-radius: 2px 2px 8px 2px; }
.jinyi-custom-portrait-choice span { min-width: 0; display: grid; gap: 2px; }
.jinyi-custom-portrait-choice strong { color: #d9c9a9; font-size: var(--ming-font-small, 14px); line-height: 1.25; }
.jinyi-custom-portrait-choice small { color: #738a7e; font-size: 7px; line-height: 1.25; }
.jinyi-custom-portrait-choice:hover,
.jinyi-custom-portrait-choice:focus-visible { border-color: rgba(203, 166, 89, 0.55); outline: none; }
.jinyi-custom-portrait-choice.selected { border-color: rgba(210, 171, 91, 0.7); background: linear-gradient(110deg, rgba(130, 48, 40, 0.44), rgba(42, 78, 65, 0.48)); box-shadow: inset 2px 0 #b25245; }

.jinyi-custom-identity-row,
.jinyi-custom-two-column { grid-column: 1 / -1; display: grid; gap: 8px; }
.jinyi-custom-identity-row { grid-template-columns: minmax(0, 1.2fr) minmax(100px, 0.55fr) minmax(100px, 0.45fr); }
.jinyi-custom-two-column { grid-template-columns: 1fr 1fr; }
.jinyi-custom-two-column.compact { grid-template-columns: 0.75fr 1.25fr; }
.jinyi-custom-field { min-width: 0; display: grid; align-content: start; gap: 4px; color: var(--folio-ink, #978b77); }
.jinyi-custom-field > span { display: flex; justify-content: space-between; gap: 10px; color: var(--folio-muted, #b8a98d); font-size: var(--ming-font-small, 14px); font-weight: 700; }
.jinyi-custom-field > span small { color: var(--folio-muted, #6f8279); font-size: var(--ming-font-small, 14px); font-weight: 400; }
.jinyi-custom-field input,
.jinyi-custom-field select,
.jinyi-custom-field textarea {
  width: 100%;
  min-height: 34px;
  padding: 7px 9px;
  color: var(--folio-ink, #e2d5bc);
  border: 1px solid rgba(172, 143, 88, 0.22);
  border-radius: 2px;
  outline: none;
  background: var(--folio-card, rgba(2, 7, 8, 0.78));
  font: 14px/1.5 var(--font-serif);
  resize: vertical;
}
.jinyi-custom-field textarea { min-height: 54px; }
.jinyi-custom-field input:focus,
.jinyi-custom-field select:focus,
.jinyi-custom-field textarea:focus { border-color: var(--folio-rule, rgba(203, 166, 92, 0.7)); box-shadow: 0 0 0 2px rgba(174, 68, 52, 0.16); }
.jinyi-custom-field.invalid input,
.jinyi-custom-field.invalid select,
.jinyi-custom-field.invalid textarea { border-color: var(--folio-rule, rgba(205, 76, 61, 0.78)); }
.jinyi-custom-field > em { color: var(--folio-muted, #dc7668); font-size: var(--ming-font-small, 14px); font-style: normal; line-height: 1.35; }
.jinyi-custom-boundary {
  grid-column: 1 / -1;
  display: grid;
  grid-template-columns: auto minmax(0, 1fr);
  gap: 3px 10px;
  padding: 9px 11px;
  border: 1px solid rgba(169, 67, 54, 0.35);
  background: var(--folio-card, rgba(103, 38, 31, 0.15));
}
.jinyi-custom-boundary b { color: var(--folio-ink, #d37a68); font-size: var(--ming-font-small, 14px); }
.jinyi-custom-boundary span { color: var(--folio-muted, #b6aa94); font-size: var(--ming-font-small, 14px); line-height: 1.5; }
.jinyi-custom-boundary small { grid-column: 1 / -1; color: var(--folio-muted, #7fa391); font-size: var(--ming-font-small, 14px); }
.jinyi-custom-errors { grid-column: 1 / -1; padding: 9px 11px; border-left: 3px solid #bd4f43; background: var(--folio-danger-surface, rgba(125, 38, 32, 0.2)); }
.jinyi-custom-errors strong { color: var(--folio-danger, #e18b78); font-size: var(--ming-font-small, 14px); }
.jinyi-custom-errors ul { display: grid; gap: 3px; margin: 5px 0 0; padding-left: 17px; color: var(--folio-danger, #cbb9a1); font-size: var(--ming-font-small, 14px); line-height: 1.45; }

.jinyi-campaign {
  --case-gold: #c4a15d;
  --case-red: #a94a3d;
  --case-jade: #70a38c;
  background: var(--folio-card, radial-gradient(circle at 8% 8%, rgba(111, 40, 34, 0.2), transparent 31%),
    radial-gradient(circle at 86% 31%, rgba(45, 92, 77, 0.15), transparent 30%),
    repeating-linear-gradient(91deg, rgba(255, 255, 255, 0.009) 0, rgba(255, 255, 255, 0.009) 1px, transparent 1px, transparent 6px),
    #070c0d);
}
.jinyi-campaign .campaign-header { border-bottom-color: var(--folio-rule, rgba(171, 71, 57, 0.38)); }
.jinyi-campaign .system-groups { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.jinyi-campaign .system-detail { overflow-y: auto; scrollbar-width: thin; scrollbar-color: rgba(190, 157, 96, 0.34) transparent; }
.jinyi-campaign .character-state-card { border-top-color: var(--folio-rule, rgba(175, 67, 55, 0.5)); }

/* V0.34 · 个人属性全量可见与正式技艺账 */
.character-state-card {
  grid-template-rows: auto auto auto auto auto;
  gap: 6px;
}

.character-state-scroll {
  min-width: 0;
  display: grid;
  grid-auto-rows: auto;
  gap: 6px;
}

.character-scroll-cue { display: none; }

.character-attribute-disclosure {
  min-width: 0;
  border-top: 1px solid rgba(213, 180, 113, 0.18);
  border-bottom: 1px solid rgba(213, 180, 113, 0.14);
  background: linear-gradient(120deg, rgba(34, 30, 20, 0.32), rgba(10, 19, 16, 0.44));
}

.character-attribute-disclosure > summary {
  min-width: 0;
  min-height: 47px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  padding: 7px 9px;
  color: #dec897;
  list-style: none;
  cursor: pointer;
}

.character-attribute-disclosure > summary::-webkit-details-marker { display: none; }
.character-attribute-disclosure > summary > span { min-width: 0; display: grid; gap: 2px; }
.character-attribute-disclosure > summary b { color: #e4d2aa; font-size: var(--ming-font-small, 14px); line-height: 1.25; letter-spacing: 0.08em; }
.character-attribute-disclosure > summary small { overflow: hidden; color: #8fa99b; font-size: var(--ming-font-small, 14px); line-height: 1.3; text-overflow: ellipsis; white-space: nowrap; }
.character-attribute-disclosure > summary em {
  flex: 0 0 auto;
  display: inline-flex;
  align-items: center;
  gap: 5px;
  color: #c8a85f;
  font-size: var(--ming-font-small, 14px);
  font-style: normal;
  font-weight: 700;
  letter-spacing: 0.08em;
}
.character-attribute-disclosure > summary em::after { content: '⌄'; font-size: 15px; line-height: 1; transition: transform 160ms ease; }
.character-attribute-disclosure:not([open]) > .character-attribute-ledger { display: none; }
.character-attribute-disclosure[open] > summary { background: rgba(80, 65, 34, 0.16); }
.character-attribute-disclosure[open] > summary em::after { transform: rotate(180deg); }
.character-attribute-disclosure > summary:hover,
.character-attribute-disclosure > summary:focus-visible { background: rgba(83, 70, 39, 0.24); outline: 1px solid rgba(215, 179, 102, 0.34); outline-offset: -1px; }

.character-attribute-ledger {
  min-width: 0;
  display: grid;
  gap: 7px;
  padding: 4px 9px 9px;
  border-top: 1px solid rgba(213, 180, 113, 0.12);
}
.attribute-groups { min-width: 0; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); align-items: start; gap: 7px; }
.attribute-groups > section { min-width: 0; display: grid; gap: 4px; }
.attribute-groups > section > b { display: block; color: #bca365; font-size: var(--ming-font-small, 14px); letter-spacing: 0.08em; }
.attribute-groups > section > div { min-width: 0; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 4px; }
.attribute-groups > section > div > div {
  min-width: 0;
  min-height: 29px;
  display: grid;
  grid-template-columns: 1fr auto;
  align-items: center;
  gap: 2px 5px;
  padding: 3px 5px;
  border: 1px solid rgba(202, 170, 104, 0.15);
  background: linear-gradient(140deg, rgba(27, 34, 29, 0.66), rgba(4, 8, 7, 0.6));
}
.attribute-groups span { overflow: hidden; color: #a99d87; font-size: var(--ming-font-small, 14px); text-overflow: ellipsis; white-space: nowrap; }
.attribute-groups b { color: #e5d4af; font-size: var(--ming-font-small, 14px); }
.attribute-groups i { grid-column: 1 / -1; height: 3px; overflow: hidden; background: rgba(255, 255, 255, 0.07); }
.attribute-groups i em { display: block; height: 100%; background: linear-gradient(90deg, #786033, #c7aa66); }

.skill-ledger { min-width: 0; display: grid; gap: 2px; }
.skill-ledger > header {
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  gap: 12px;
  padding-bottom: 0;
  border-bottom: 1px solid rgba(183, 145, 75, 0.28);
}
.skill-ledger > header > div { display: grid; gap: 0; }
.skill-ledger > header span { color: var(--folio-muted, #b9944f); font-size: var(--ming-font-small, 14px); font-weight: 720; letter-spacing: 0.08em; }
.skill-ledger > header h3 { margin: 1px 0 0; color: var(--folio-ink, #eee1c6); font-family: var(--font-brush); font-size: 19px; font-weight: 400; line-height: 1.1; }
.skill-ledger > header small { display: block; max-width: 430px; margin-top: 3px; color: var(--folio-muted, #9bb5a7); font-size: var(--ming-font-small, 14px); line-height: 1.45; }
.skill-ledger > header > b { color: var(--folio-ink, #9fc3b2); font-size: var(--ming-font-small, 14px); white-space: nowrap; }
.skill-ledger-grid { min-width: 0; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; }
.skill-family-rail { min-width: 0; display: grid; grid-template-columns: repeat(auto-fit, minmax(86px, 1fr)); gap: 5px; padding: 6px 0; }
.skill-family-rail > span { min-width: 0; display: grid; grid-template-columns: 25px minmax(0, 1fr); grid-template-rows: auto auto; align-items: center; gap: 0 6px; padding: 5px 7px; border: 1px solid rgba(170, 137, 73, 0.24); background: var(--folio-card, linear-gradient(135deg, rgba(60, 46, 25, 0.24), rgba(7, 14, 11, 0.72))); }
.skill-family-rail i { grid-row: 1 / 3; width: 24px; height: 24px; display: grid; place-items: center; color: var(--folio-ink, #d6bd73); border: 1px solid rgba(205, 169, 91, 0.38); border-radius: 50%; font-family: var(--font-brush); font-size: 14px; font-style: normal; }
.skill-family-rail b { overflow: hidden; color: var(--folio-ink, #d9ccb0); font-size: var(--ming-font-small, 14px); text-overflow: ellipsis; white-space: nowrap; }
.skill-family-rail small { color: var(--folio-muted, #8eaa9b); font-size: var(--ming-font-small, 14px); }
.skill-ledger-card {
  min-width: 0;
  min-height: 0;
  display: grid;
  grid-template-rows: auto auto auto auto minmax(0, 1fr) auto;
  gap: 4px;
  padding: 8px;
  border: 1px solid rgba(202, 170, 104, 0.3);
  background: var(--folio-card, radial-gradient(circle at 8% 8%, rgba(151, 113, 56, 0.18), transparent 32%),
    linear-gradient(145deg, rgba(18, 27, 22, 0.96), rgba(5, 9, 8, 0.94)));
  box-shadow: inset 3px 0 rgba(135, 103, 49, 0.36);
}
.skill-ledger-card > header { min-width: 0; display: grid; grid-template-columns: 32px minmax(0, 1fr) auto; align-items: center; gap: 6px; }
.skill-ledger-card > header > i { width: 30px; height: 30px; display: grid; place-items: center; color: var(--folio-ink, #e2c678); border: 1px solid rgba(211, 177, 103, 0.42); border-radius: 50%; background: var(--folio-card, rgba(89, 63, 28, 0.3)); font-family: var(--font-brush); font-size: 18px; font-style: normal; }
.skill-ledger-card > header span { color: var(--folio-muted, #b89a5c); font-size: var(--ming-font-small, 14px); font-weight: 720; }
.skill-ledger-card > header h3 { overflow: hidden; margin: 0; color: var(--folio-ink, #f0e4ca); font-size: 15px; line-height: 1.15; text-overflow: ellipsis; white-space: nowrap; }
.skill-ledger-card > header strong { color: var(--folio-ink, #dfc77f); font-size: 19px; }
.skill-ledger-card > header strong small { color: var(--folio-muted, #9b907d); font-size: var(--ming-font-small, 14px); }
.skill-ledger-card > p { display: -webkit-box; overflow: hidden; margin: 0; color: var(--folio-muted, #b0a48f); font-size: var(--ming-font-body, 16px); line-height: 1.42; -webkit-box-orient: vertical; -webkit-line-clamp: 3; }
.skill-meter { min-width: 0; display: grid; grid-template-columns: auto minmax(0, 1fr) auto; align-items: center; gap: 7px; }
.skill-meter span, .skill-meter em { color: var(--folio-muted, #b3a58d); font-size: var(--ming-font-small, 14px); font-style: normal; }
.skill-meter i { height: 5px; overflow: hidden; background: rgba(255, 255, 255, 0.07); }
.skill-meter i b { display: block; height: 100%; background: linear-gradient(90deg, #6e9f89, #d2bc77); }
.skill-applications { display: flex; flex-wrap: nowrap; gap: 3px; overflow: hidden; }
.skill-applications span { padding: 2px 5px; color: var(--folio-muted, #c1b397); border: 1px solid rgba(192, 159, 91, 0.2); background: var(--folio-card, rgba(66, 50, 25, 0.18)); font-size: var(--ming-font-small, 14px); }
.skill-ledger-card dl { min-width: 0; display: grid; gap: 2px; margin: 0; }
.skill-ledger-card dl > div { min-width: 0; display: grid; grid-template-columns: 48px minmax(0, 1fr); gap: 5px; }
.skill-ledger-card dt { color: var(--folio-muted, #9f895c); font-size: var(--ming-font-small, 14px); }
.skill-ledger-card dd { min-width: 0; margin: 0; color: var(--folio-ink, #b5a993); font-size: var(--ming-font-small, 14px); line-height: 1.4; overflow-wrap: anywhere; }
.skill-practice-button {
  min-height: 48px;
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  justify-content: center;
  gap: 3px;
  padding: 8px 11px;
  color: var(--folio-ink, #e3d6b8);
  border: 1px solid rgba(111, 166, 143, 0.5);
  background: var(--folio-card, rgba(16, 35, 28, 0.9));
  box-shadow: inset 3px 0 #65977f, inset 0 0 0 1px rgba(214, 190, 126, 0.05);
  cursor: pointer;
  transition: border-color 120ms ease, background-color 120ms ease, transform 80ms ease;
}
.skill-practice-button:hover:not(:disabled),
.skill-practice-button:focus-visible { border-color: var(--folio-rule, rgba(210, 184, 111, 0.75)); background: var(--folio-hover, rgba(25, 48, 38, 0.96)); }
.skill-practice-button:active:not(:disabled) { transform: translateY(1px); }
.skill-practice-button:disabled { color: var(--folio-ink, #9c9585); border-color: var(--folio-rule, rgba(151, 116, 72, 0.34)); background: var(--folio-card, rgba(30, 25, 20, 0.76)); box-shadow: inset 3px 0 rgba(155, 98, 70, 0.62); cursor: not-allowed; }
.skill-practice-button span { font-size: var(--ming-font-small, 14px); font-weight: 740; }
.skill-practice-button small { color: var(--folio-muted, #a7c1b4); font-size: var(--ming-font-small, 14px); line-height: 1.45; white-space: normal; overflow-wrap: anywhere; }
.skill-practice-button:disabled small { color: var(--folio-muted, #b39d8e); }
.skill-practice-empty { grid-column: 1 / -1; margin: 0; padding: 10px 12px; color: var(--folio-ink, #b4aa96); border: 1px solid rgba(166, 134, 73, 0.24); background: var(--folio-card, rgba(18, 23, 20, 0.72)); font-size: var(--ming-font-small, 14px); line-height: 1.5; }
.skill-ledger > footer { min-width: 0; display: grid; grid-template-columns: 1fr 1fr; gap: 6px; padding-top: 4px; border-top: 1px solid rgba(183, 145, 75, 0.2); }
.skill-ledger > footer .system-action-seed { min-height: 44px; padding-block: 5px; }
.skill-ledger > footer .skill-practice-button { min-height: 44px; }
.skill-action-pair { grid-column: 1 / -1; width: 100%; min-width: 0; }
.system-detail:has(.skill-ledger) { overflow-y: auto; scrollbar-width: thin; scrollbar-color: rgba(190, 157, 96, 0.34) transparent; }

@media (min-width: 1080px) and (min-height: 680px) {
  .campaign-sidebar .system-detail {
    overflow-x: hidden;
    overflow-y: auto;
    overscroll-behavior: contain;
    scrollbar-gutter: stable;
    scrollbar-width: auto;
    scrollbar-color: rgba(190, 157, 96, 0.5) rgba(10, 15, 13, 0.26);
  }
  .campaign-sidebar .system-detail::-webkit-scrollbar { width: 9px; }
  .campaign-sidebar .system-detail::-webkit-scrollbar-track { background: rgba(10, 15, 13, 0.26); }
  .campaign-sidebar .system-detail::-webkit-scrollbar-thumb {
    border: 2px solid rgba(10, 15, 13, 0.28);
    border-radius: 8px;
    background: linear-gradient(#9e8046, #527967);
  }
}

@media (max-width: 1079px) {
  .skill-ledger-grid { grid-template-columns: 1fr; }
  .skill-ledger > footer { grid-template-columns: 1fr; }
}

@media (max-width: 760px) {
  .character-state-card { display: grid; grid-template-rows: none; grid-auto-rows: auto; overflow: visible; }
  .attribute-groups { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .domain-empty-state,
  .settlement-ledger,
  .progression-card-list { min-width: 0; }
  .skill-action-pair { grid-template-columns: 1fr; }
  .skill-action-pair .personal-action-button,
  .skill-action-pair .system-action-seed { width: 100%; min-height: 50px; }
  .skill-ledger > header { align-items: flex-start; flex-direction: column; gap: 4px; }
  .skill-ledger-grid { grid-template-columns: 1fr; }
  .skill-ledger-card { min-height: 0; }
  .skill-ledger-card dl > div { grid-template-columns: 64px minmax(0, 1fr); }
}

.case-world-strip { grid-template-columns: 108px 202px minmax(190px, 1fr) 140px minmax(210px, 0.75fr); }
.world-strip > div.case-pressure-strip {
  min-height: 60px;
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  align-items: center;
  gap: 1px;
  padding: 6px;
  border-right: 0;
  background: var(--folio-card, rgba(5, 10, 10, 0.42));
}
.case-pressure-strip > span { min-width: 0; display: grid; place-items: center; gap: 2px; padding: 4px 3px; border-left: 1px solid rgba(186, 150, 82, 0.14); }
.case-pressure-strip > span:first-child { border-left: 0; }
.case-pressure-strip small { color: var(--folio-muted, #8ea99c); font-size: var(--ming-font-small, 14px); }
.case-pressure-strip b { color: var(--folio-ink, #dfc887); font-size: 17px; }
.case-pressure-strip > span:nth-child(2) b,
.case-pressure-strip > span:nth-child(3) b { color: var(--folio-muted, #ce7465); }

.character-profile-note {
  min-width: 0;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
  padding: 6px 9px;
  border-left: 2px solid var(--case-red);
  background: linear-gradient(90deg, rgba(124, 44, 36, 0.23), rgba(34, 66, 56, 0.15));
}
.character-profile-note span { color: #b96758; font-size: var(--ming-font-small, 14px); font-weight: 700; letter-spacing: 0.08em; }
.character-profile-note strong { overflow: hidden; color: #b9cfbf; font-size: var(--ming-font-small, 14px); text-overflow: ellipsis; white-space: nowrap; }

.case-overview-panel,
.case-evidence-panel,
.case-task-panel,
.case-contact-panel,
.case-relation-panel { min-height: 100%; color: var(--folio-ink, #d8ccb4); }
.case-overview-panel > header,
.case-evidence-panel > header,
.case-task-panel > header,
.case-contact-panel > header,
.case-relation-panel > header {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 10px;
  padding-bottom: 7px;
  border-bottom: 1px solid rgba(192, 155, 82, 0.22);
}
.case-overview-panel header span,
.case-evidence-panel header span,
.case-task-panel header span,
.case-contact-panel header span,
.case-relation-panel header span { color: var(--folio-muted, #a78950); font-size: var(--ming-font-small, 14px); letter-spacing: 0.08em; }
.case-overview-panel header h3,
.case-evidence-panel header h3,
.case-task-panel header h3,
.case-contact-panel header h3,
.case-relation-panel header h3 { margin: 1px 0 0; color: var(--folio-ink, #eee1c7); font-size: 18px; }
.case-overview-panel > header > b,
.case-evidence-panel > header > b,
.case-task-panel > header > b,
.case-contact-panel > header > b { color: var(--folio-ink, #d5b66e); font-size: var(--ming-font-small, 14px); }

.case-current-objective { display: grid; gap: 3px; margin-top: 8px; padding: 8px 10px; border-left: 3px solid var(--case-red); background: var(--folio-card, rgba(111, 42, 34, 0.16)); }
.case-current-objective span { color: var(--folio-muted, #c66d5d); font-size: var(--ming-font-small, 14px); font-weight: 750; }
.case-current-objective strong { color: var(--folio-ink, #e6dbc2); font-size: var(--ming-font-small, 14px); line-height: 1.4; }
.case-current-objective small { color: var(--folio-muted, #948b79); font-size: var(--ming-font-small, 14px); }
.case-guidance-panel {
  display: grid;
  gap: 7px;
  margin-top: 8px;
  padding: 9px;
  border: 1px solid rgba(195, 158, 82, 0.3);
  background: var(--folio-card, linear-gradient(135deg, rgba(96, 55, 27, 0.16), rgba(22, 61, 50, 0.16)));
}
.case-guidance-panel > header { display: flex; align-items: flex-start; justify-content: space-between; gap: 8px; }
.case-guidance-panel > header span { color: var(--folio-muted, #c2715e); font-size: var(--ming-font-small, 14px); font-weight: 750; letter-spacing: 0.08em; }
.case-guidance-panel h4 { margin: 1px 0 0; color: var(--folio-ink, #e5d5b4); font-family: var(--font-brush); font-size: 16px; font-weight: 400; }
.case-guidance-panel > header > b { padding: 2px 6px; color: var(--folio-ink, #86ab99); border: 1px solid rgba(105, 159, 135, 0.28); background: var(--folio-card, rgba(20, 65, 50, 0.16)); font-size: var(--ming-font-small, 14px); white-space: nowrap; }
.case-guidance-panel > p { margin: 0; color: var(--folio-muted, #d7c9aa); font-size: var(--ming-font-body, 16px); font-weight: 650; line-height: 1.45; }
.case-guidance-panel > small { color: var(--folio-muted, #908775); font-size: var(--ming-font-small, 14px); line-height: 1.45; }
.case-timeline-summary { display: grid; grid-template-columns: 1fr 1fr; gap: 5px; padding: 6px; border: 1px solid rgba(106, 154, 133, 0.2); background: var(--folio-card, rgba(13, 40, 31, 0.14)); }
.case-timeline-summary span { min-width: 0; color: var(--folio-muted, #c7b99d); font-size: var(--ming-font-small, 14px); line-height: 1.45; }
.case-timeline-summary span b { display: block; color: var(--folio-muted, #7fa891); font-size: var(--ming-font-small, 14px); }
.case-timeline-summary small { grid-column: 1 / -1; color: var(--folio-muted, #9f947e); font-size: var(--ming-font-small, 14px); line-height: 1.45; }
.case-guidance-milestones { display: grid; gap: 4px; }
.case-guidance-milestones > span,
.case-guidance-routes > span { color: var(--folio-muted, #a78950); font-size: var(--ming-font-small, 14px); font-weight: 700; }
.case-guidance-milestones > div { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 4px; }
.case-guidance-milestones article { min-width: 0; display: grid; grid-template-columns: 18px minmax(0, 1fr); gap: 1px 4px; align-items: center; padding: 5px; border: 1px solid rgba(185, 148, 75, 0.16); background: var(--folio-card, rgba(0, 0, 0, 0.18)); }
.case-guidance-milestones i { grid-row: 1 / 3; width: 18px; height: 18px; display: grid; place-items: center; color: var(--folio-ink, #8e8066); border: 1px solid rgba(178, 143, 74, 0.25); border-radius: 50%; font-size: var(--ming-font-small, 14px); font-style: normal; }
.case-guidance-milestones span { overflow: hidden; color: var(--folio-muted, #9f9684); font-size: var(--ming-font-small, 14px); text-overflow: ellipsis; white-space: nowrap; }
.case-guidance-milestones b { color: var(--folio-ink, #c2aa72); font-size: var(--ming-font-small, 14px); }
.case-guidance-milestones article.current { border-color: var(--folio-rule, rgba(198, 155, 71, 0.42)); box-shadow: inset 2px 0 #b98445; }
.case-guidance-milestones article.done { border-color: var(--folio-rule, rgba(94, 151, 126, 0.3)); background: var(--folio-success-surface, rgba(25, 67, 53, 0.14)); }
.case-guidance-milestones article.done i { color: var(--folio-success, #98c2ad); border-color: var(--folio-rule, rgba(102, 163, 136, 0.4)); }
.case-guidance-next { display: grid; gap: 3px; padding: 7px 8px; border-left: 3px solid var(--case-gold); background: var(--folio-card, rgba(0, 0, 0, 0.2)); }
.case-guidance-next > span { color: var(--folio-muted, #c37761); font-size: var(--ming-font-small, 14px); font-weight: 700; letter-spacing: 0.08em; }
.case-guidance-next > strong { color: var(--folio-ink, #e0d1b1); font-size: var(--ming-font-small, 14px); }
.case-guidance-next > p { margin: 0; color: var(--folio-muted, #9f9788); font-size: var(--ming-font-body, 16px); line-height: 1.45; }
.case-guidance-next > div { display: grid; grid-template-columns: 1fr 1fr; gap: 5px; margin-top: 2px; }
.case-guidance-next button { min-height: 44px; padding: 5px 7px; color: var(--folio-ink, #d8c288); border: 1px solid rgba(190, 151, 75, 0.34); background: var(--folio-card, rgba(85, 58, 24, 0.16)); font-size: var(--ming-font-small, 14px); cursor: pointer; }
.case-guidance-next button[data-system-id] { color: var(--folio-ink, #a8c8b8); border-color: var(--folio-rule, rgba(94, 151, 126, 0.32)); background: var(--folio-card, rgba(23, 65, 51, 0.16)); }
.case-guidance-routes { display: grid; gap: 4px; }
.case-guidance-routes > div { display: grid; grid-template-columns: 1fr 1fr; gap: 4px; }
.case-guidance-routes article { min-width: 0; padding: 5px 6px; border: 1px solid rgba(181, 145, 71, 0.14); background: var(--folio-card, rgba(0, 0, 0, 0.15)); }
.case-guidance-routes article:last-child:nth-child(odd) { grid-column: 1 / -1; }
.case-guidance-routes header { display: flex; align-items: center; justify-content: space-between; gap: 5px; }
.case-guidance-routes strong { color: var(--folio-ink, #cfc1a5); font-size: var(--ming-font-small, 14px); }
.case-guidance-routes header b { color: var(--folio-ink, #8e8778); font-size: var(--ming-font-small, 14px); }
.case-guidance-routes p { margin: 3px 0; color: var(--folio-muted, #8d8678); font-size: var(--ming-font-body, 16px); line-height: 1.35; }
.case-guidance-routes small { color: var(--folio-muted, #9f824b); font-size: var(--ming-font-small, 14px); }
.case-guidance-routes .status-active,
.case-guidance-routes .status-available { border-color: var(--folio-rule, rgba(100, 159, 133, 0.3)); }
.case-guidance-routes .status-active header b,
.case-guidance-routes .status-available header b,
.case-guidance-routes .status-completed header b { color: var(--folio-ink, #7fa991); }
.case-guidance-routes .status-failed { border-color: var(--folio-rule, rgba(174, 73, 59, 0.3)); }
.case-guidance-routes .status-failed header b { color: var(--folio-danger, #c17869); }
.case-threat-panel {
  display: grid;
  gap: 7px;
  margin-top: 8px;
  padding: 9px;
  border: 1px solid rgba(177, 86, 67, 0.34);
  border-left: 3px solid #a75143;
  background: var(--folio-card, #121210);
}
.case-threat-panel > header { display: flex; align-items: flex-start; justify-content: space-between; gap: 8px; }
.case-threat-panel > header span { color: var(--folio-muted, #bc6f5d); font-size: var(--ming-font-small, 14px); font-weight: 750; letter-spacing: 0.08em; }
.case-threat-panel h4 { margin: 1px 0 0; color: var(--folio-ink, #e3d2b2); font-family: var(--font-brush); font-size: 17px; font-weight: 400; }
.case-threat-panel > header > b { padding: 2px 6px; color: var(--folio-ink, #d0937f); border: 1px solid rgba(185, 87, 67, 0.34); background: var(--folio-card, #211411); font-size: var(--ming-font-small, 14px); white-space: nowrap; }
.case-threat-panel > p { margin: 0; color: var(--folio-muted, #a79d89); font-size: var(--ming-font-body, 16px); line-height: 1.48; }
.case-threat-panel.empty { border-left-color: var(--folio-rule, #786b52); border-color: var(--folio-rule, rgba(154, 133, 88, 0.24)); }
.case-threat-pressure-chain {
  display: grid;
  gap: 6px;
  padding: 8px;
  border: 1px solid rgba(166, 128, 70, 0.34);
  border-left: 3px solid #8f6a38;
  background: var(--folio-card, #11130f);
}
.case-threat-pressure-chain > header { display: flex; align-items: flex-start; justify-content: space-between; gap: 8px; }
.case-threat-pressure-chain > header > div { display: grid; gap: 1px; }
.case-threat-pressure-chain > header span { color: var(--folio-muted, #cbaa68); font-size: var(--ming-font-small, 14px); font-weight: 750; letter-spacing: 0.06em; }
.case-threat-pressure-chain > header strong { color: var(--folio-ink, #d7c9aa); font-size: var(--ming-font-small, 14px); }
.case-threat-pressure-chain > header small { color: var(--folio-muted, #8f8573); font-size: var(--ming-font-small, 14px); white-space: nowrap; }
.case-threat-pressure-chain-list { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 5px; }
.case-threat-pressure-chain-list article { min-width: 0; display: grid; gap: 5px; padding: 7px; border: 1px solid rgba(152, 126, 78, 0.2); background: var(--folio-card, #0c100e); }
.case-threat-pressure-chain-list article.state-escalating { border-left: 2px solid #ae7248; }
.case-threat-pressure-chain-list article.state-critical { border-left: 2px solid #b94c3e; background: var(--folio-card, #160e0c); }
.case-threat-pressure-chain-list article > header { display: flex; align-items: baseline; justify-content: space-between; gap: 6px; }
.case-threat-pressure-chain-list article > header strong { overflow-wrap: anywhere; color: var(--folio-ink, #d8c9a9); font-size: var(--ming-font-small, 14px); }
.case-threat-pressure-chain-list article > header b { color: var(--folio-ink, #c07b61); font-size: var(--ming-font-small, 14px); white-space: nowrap; }
.case-threat-pressure-chain-list article > p { margin: 0; color: var(--folio-muted, #aba18e); font-size: var(--ming-font-body, 16px); line-height: 1.48; }
.case-threat-pressure-choices { display: grid; grid-template-columns: 1fr 1fr; gap: 4px; }
.case-threat-pressure-choices span { min-width: 0; padding: 5px 6px; color: var(--folio-muted, #9c9381); border: 1px solid rgba(145, 128, 83, 0.16); background: var(--folio-card, #11130f); font-size: var(--ming-font-small, 14px); line-height: 1.42; }
.case-threat-pressure-choices b { display: block; margin-bottom: 2px; color: var(--folio-ink, #c9b57e); }
.case-threat-pressure-choices span:last-child b { color: var(--folio-muted, #c27a68); }
.case-threat-pressure-chain-list article > small { color: var(--folio-muted, #7f9789); font-size: 7px; line-height: 1.45; }
.case-threat-priority {
  display: grid;
  gap: 6px;
  padding: 8px;
  border: 1px solid rgba(190, 135, 72, 0.34);
  border-left: 3px solid #b16745;
  background: var(--folio-card, #18130f);
}
.case-threat-priority > header { display: flex; align-items: center; justify-content: space-between; gap: 8px; }
.case-threat-priority > header span { color: var(--folio-muted, #d0ae6e); font-size: var(--ming-font-small, 14px); font-weight: 750; letter-spacing: 0.06em; }
.case-threat-priority > header b { color: var(--folio-ink, #bd7b65); font-size: var(--ming-font-small, 14px); white-space: nowrap; }
.case-threat-priority > small { color: var(--folio-muted, #928573); font-size: var(--ming-font-small, 14px); line-height: 1.45; }
.case-threat-priority-list { display: grid; grid-template-columns: repeat(auto-fit, minmax(210px, 1fr)); gap: 5px; }
.case-threat-priority-list article { min-width: 0; display: grid; grid-template-columns: 25px minmax(0, 1fr); gap: 7px; padding: 6px; border: 1px solid rgba(163, 114, 67, 0.22); background: var(--folio-card, #100e0b); }
.case-threat-priority-list article > i { display: grid; width: 25px; height: 25px; place-items: center; color: var(--folio-ink, #ddc17d); border: 1px solid rgba(198, 151, 78, 0.48); background: var(--folio-card, #20180f); font-family: var(--font-brush); font-size: 14px; font-style: normal; }
.case-threat-priority-list article > div { min-width: 0; display: grid; gap: 2px; }
.case-threat-priority-list strong { overflow-wrap: anywhere; color: var(--folio-ink, #d7c6a4); font-size: var(--ming-font-small, 14px); }
.case-threat-priority-list small { color: var(--folio-muted, #a47968); font-size: var(--ming-font-small, 14px); }
.case-threat-priority-list p { margin: 2px 0 0; color: var(--folio-muted, #aaa08d); font-size: var(--ming-font-body, 16px); line-height: 1.45; }
.case-threat-priority-list p b { margin-right: 5px; color: var(--folio-muted, #c37b65); }
.case-threat-priority-list article.urgency-overdue,
.case-threat-priority-list article.urgency-urgent { border-color: var(--folio-rule, rgba(196, 72, 57, 0.48)); box-shadow: inset 2px 0 #b94c3e; }
.case-threat-priority-list article.urgency-pressing { border-color: var(--folio-rule, rgba(190, 123, 67, 0.38)); }
.case-threat-list { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 6px; }
.case-threat-card { min-width: 0; display: grid; gap: 6px; padding: 8px; border: 1px solid rgba(174, 78, 62, 0.24); background: var(--folio-card, #0c0e0d); }
.case-threat-card:last-child:nth-child(odd) { grid-column: 1 / -1; }
.case-threat-card.deadline-first { border-color: var(--folio-rule, rgba(206, 113, 76, 0.58)); box-shadow: inset 3px 0 #c45d46; }
.case-threat-card.state-critical { border-color: var(--folio-rule, rgba(200, 75, 57, 0.56)); box-shadow: inset 3px 0 #b94c3e; }
.case-threat-card.state-escalating { border-color: var(--folio-rule, rgba(190, 102, 71, 0.42)); }
.case-threat-card.state-dormant { opacity: 0.72; border-color: var(--folio-rule, rgba(119, 134, 111, 0.24)); }
.case-threat-card > header { display: flex; align-items: flex-start; justify-content: space-between; gap: 7px; }
.case-threat-card > header span { display: block; color: var(--folio-muted, #a96152); font-size: var(--ming-font-small, 14px); }
.case-threat-card > header strong { display: block; margin-top: 1px; color: var(--folio-ink, #dfcfad); font-size: var(--ming-font-small, 14px); }
.case-threat-card > header > b { color: var(--folio-ink, #c87f6c); font-size: var(--ming-font-small, 14px); white-space: nowrap; }
.case-threat-pressure { display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: center; gap: 7px; }
.case-threat-pressure > i { height: 3px; overflow: hidden; background: var(--folio-card, #25231d); }
.case-threat-pressure > i > b { display: block; height: 100%; background: var(--folio-card, #b34f42); }
.case-threat-pressure > small { color: var(--folio-muted, #a47767); font-size: var(--ming-font-small, 14px); }
.case-threat-card dl { display: grid; grid-template-columns: 1fr 1fr; gap: 4px; margin: 0; }
.case-threat-card dl > div { min-width: 0; padding: 5px 6px; border: 1px solid rgba(154, 126, 78, 0.14); background: var(--folio-card, #11120f); }
.case-threat-card dl > div.next { border-color: var(--folio-rule, rgba(181, 74, 60, 0.28)); background: var(--folio-card, #19100e); }
.case-threat-card dt { margin-bottom: 2px; color: var(--folio-muted, #857b69); font-size: 7px; }
.case-threat-card dd { margin: 0; overflow-wrap: anywhere; color: var(--folio-ink, #bcb19b); font-size: var(--ming-font-small, 14px); line-height: 1.42; }
.case-threat-card dd b { display: block; margin-bottom: 1px; color: var(--folio-ink, #bc765f); font-size: var(--ming-font-small, 14px); }
.case-threat-deadline { display: grid; grid-template-columns: auto 1fr; align-items: center; gap: 3px 8px; padding: 7px 8px; border: 1px solid rgba(187, 143, 70, 0.34); background: var(--folio-card, #17140e); }
.case-threat-deadline > span { color: var(--folio-muted, #8f8067); font-size: var(--ming-font-small, 14px); }
.case-threat-deadline > b { justify-self: end; color: var(--folio-ink, #dfc17f); font-size: var(--ming-font-small, 14px); }
.case-threat-deadline > small { grid-column: 1 / -1; color: var(--folio-muted, #988d78); font-size: var(--ming-font-small, 14px); }
.case-threat-consequence { grid-column: 1 / -1; margin: 2px 0 0; padding-top: 5px; color: var(--folio-ink, #b0a18d); border-top: 1px solid rgba(187, 143, 70, 0.18); font-size: var(--ming-font-small, 14px); line-height: 1.48; }
.case-threat-consequence b { margin-right: 5px; color: var(--folio-ink, #c47e67); }
.case-threat-deadline.settled { border-color: var(--folio-rule, rgba(104, 139, 119, 0.3)); background: var(--folio-card, #101612); }
.case-threat-deadline.settled > b { color: var(--folio-ink, #9ab7a3); }
.case-threat-history {
  display: grid;
  gap: 6px;
  padding: 8px;
  border: 1px solid rgba(106, 151, 129, 0.3);
  border-left: 3px solid #648f7b;
  background: var(--folio-card, #0d1411);
}
.case-threat-history > header { display: flex; align-items: end; justify-content: space-between; gap: 8px; }
.case-threat-history > header > div { display: flex; align-items: baseline; gap: 7px; }
.case-threat-history > header span { color: var(--folio-muted, #91baa6); font-size: var(--ming-font-small, 14px); font-weight: 750; letter-spacing: 0.06em; }
.case-threat-history > header b,
.case-threat-history > header small { color: var(--folio-muted, #8a8274); font-size: var(--ming-font-small, 14px); }
.case-threat-history-list { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 5px; }
.case-threat-history-list > article { min-width: 0; display: grid; gap: 4px; padding: 7px; border: 1px solid rgba(124, 154, 136, 0.22); background: var(--folio-card, #0a0f0d); }
.case-threat-history-list > article.outcome-executed,
.case-threat-history-list > article.outcome-failed { border-left: 2px solid #a94e40; }
.case-threat-history-list > article.outcome-foiled { border-left: 2px solid #6c9c84; }
.case-threat-history-list > article.outcome-disrupted { border-left: 2px solid #a7834a; }
.case-threat-history-list article > header { display: flex; align-items: flex-start; justify-content: space-between; gap: 6px; }
.case-threat-history-list article > header > div { min-width: 0; display: grid; gap: 1px; }
.case-threat-history-list article > header span { color: var(--folio-muted, #8a7e6c); font-size: 7px; }
.case-threat-history-list article > header strong { overflow-wrap: anywhere; color: var(--folio-ink, #d8c9aa); font-size: var(--ming-font-small, 14px); }
.case-threat-history-list article > header > b { color: var(--folio-ink, #aabfac); font-size: var(--ming-font-small, 14px); white-space: nowrap; }
.case-threat-history-list article > small { color: var(--folio-muted, #9e776c); font-size: var(--ming-font-small, 14px); }
.case-threat-history-list article > p { margin: 0; color: var(--folio-muted, #aaa18f); font-size: var(--ming-font-body, 16px); line-height: 1.48; }
.case-threat-history-changes { display: flex; flex-wrap: wrap; gap: 3px; }
.case-threat-history-changes span { padding: 3px 5px; color: var(--folio-muted, #a79f8e); border: 1px solid rgba(154, 126, 78, 0.16); background: var(--folio-card, #11120f); font-size: 7px; }
.case-threat-history-changes b { margin-right: 4px; color: var(--folio-ink, #c5b281); }
.case-threat-history-changes.empty span { color: var(--folio-muted, #80a590); border-color: var(--folio-rule, rgba(99, 151, 126, 0.2)); }
.case-threat-history-list footer { display: grid; grid-template-columns: auto auto minmax(0, 1fr); align-items: center; gap: 5px; padding-top: 4px; border-top: 1px solid rgba(105, 145, 125, 0.18); }
.case-threat-history-list footer b { color: var(--folio-ink, #83ad99); font-size: var(--ming-font-small, 14px); }
.case-threat-history-list footer span { color: var(--folio-muted, #cab77d); font-size: var(--ming-font-small, 14px); }
.case-threat-history-list footer small { overflow-wrap: anywhere; color: var(--folio-muted, #7f998c); font-size: 7px; text-align: right; }
.case-threat-card > button { min-height: 44px; padding: 6px 8px; color: var(--folio-ink, #ddc58e); border: 1px solid rgba(187, 143, 70, 0.38); background: var(--folio-card, #19160f); font-size: var(--ming-font-small, 14px); cursor: pointer; }
.case-threat-card > button:hover,
.case-threat-card > button:focus-visible { color: var(--folio-ink, #f2ddb0); border-color: var(--folio-rule, rgba(214, 168, 81, 0.66)); outline: none; }
.system-focus-body .case-threat-panel { gap: 10px; padding: 14px; }
.system-focus-body .case-threat-panel h4 { font-size: 22px; }
.system-focus-body .case-threat-panel > p { font-size: var(--ming-font-body, 16px); }
.system-focus-body .case-threat-priority > header span { font-size: var(--ming-font-small, 14px); }
.system-focus-body .case-threat-pressure-chain > header span { font-size: var(--ming-font-small, 14px); }
.system-focus-body .case-threat-pressure-chain-list article > header strong { font-size: var(--ming-font-small, 14px); }
.system-focus-body .case-threat-pressure-chain-list article > p,
.system-focus-body .case-threat-pressure-choices span,
.system-focus-body .case-threat-pressure-chain-list article > small { font-size: var(--ming-font-small, 14px); }
.system-focus-body .case-threat-priority-list strong { font-size: var(--ming-font-small, 14px); }
.system-focus-body .case-threat-priority-list small,
.system-focus-body .case-threat-priority-list p,
.system-focus-body .case-threat-priority > small,
.system-focus-body .case-threat-consequence { font-size: var(--ming-font-small, 14px); }
.system-focus-body .case-threat-history > header span { font-size: var(--ming-font-small, 14px); }
.system-focus-body .case-threat-history-list article > header strong { font-size: var(--ming-font-small, 14px); }
.system-focus-body .case-threat-history-list article > small,
.system-focus-body .case-threat-history-list article > p,
.system-focus-body .case-threat-history-changes span,
.system-focus-body .case-threat-history-list footer b,
.system-focus-body .case-threat-history-list footer span,
.system-focus-body .case-threat-history-list footer small { font-size: var(--ming-font-small, 14px); }
.system-focus-body .case-threat-card { padding: 11px; }
.system-focus-body .case-threat-card > header strong { font-size: 14px; }
.system-focus-body .case-threat-card dd { font-size: var(--ming-font-small, 14px); }
.system-focus-body .case-threat-card > button { min-height: 44px; font-size: var(--ming-font-small, 14px); }
.jinyi-campaign .system-dock .case-threat-list,
.jinyi-campaign .system-dock .case-threat-pressure-chain-list,
.jinyi-campaign .system-dock .case-threat-history-list,
.jinyi-campaign .system-dock .case-threat-card dl { grid-template-columns: 1fr; }
.case-vigil-panel {
  display: grid;
  gap: 7px;
  margin-top: 8px;
  padding: 9px;
  border: 1px solid rgba(188, 151, 77, 0.3);
  border-left: 3px solid #a8793f;
  background: var(--folio-card, #101514);
}
.case-vigil-panel > header { display: flex; align-items: flex-start; justify-content: space-between; gap: 8px; }
.case-vigil-panel > header span { color: var(--folio-muted, #b7715c); font-size: var(--ming-font-small, 14px); font-weight: 700; letter-spacing: 0.08em; }
.case-vigil-panel h4 { margin: 1px 0 0; color: var(--folio-ink, #e3d4b3); font-family: var(--font-brush); font-size: 17px; font-weight: 400; }
.case-vigil-panel > header > b { padding: 2px 6px; color: var(--folio-ink, #8fb39f); border: 1px solid rgba(102, 158, 133, 0.34); background: var(--folio-card, #13211c); font-size: var(--ming-font-small, 14px); white-space: nowrap; }
.case-vigil-panel > p { margin: 0; color: var(--folio-muted, #b6aa92); font-size: var(--ming-font-body, 16px); line-height: 1.5; }
.case-vigil-panel > small { color: var(--folio-muted, #918a7b); font-size: var(--ming-font-small, 14px); line-height: 1.5; }
.case-vigil-time { display: grid; grid-template-columns: 1fr 1fr; gap: 5px; }
.case-vigil-time span { min-width: 0; padding: 6px 7px; color: var(--folio-muted, #c7bda6); border: 1px solid rgba(104, 155, 133, 0.22); background: var(--folio-card, #0b1210); font-size: var(--ming-font-small, 14px); line-height: 1.45; }
.case-vigil-time b { display: block; margin-bottom: 2px; color: var(--folio-muted, #80a994); font-size: var(--ming-font-small, 14px); }
.case-vigil-threat-warning { display: grid; gap: 6px; padding: 8px; border: 1px solid rgba(180, 74, 61, 0.42); border-left: 3px solid #ad4c3c; background: var(--folio-card, #1d1210); }
.case-vigil-threat-warning > header { display: flex; align-items: center; justify-content: space-between; gap: 8px; }
.case-vigil-threat-warning > header span { color: var(--folio-muted, #e0a18f); font-size: var(--ming-font-small, 14px); font-weight: 700; letter-spacing: 0.06em; }
.case-vigil-threat-warning > header b { color: var(--folio-ink, #c88a78); font-size: var(--ming-font-small, 14px); white-space: nowrap; }
.case-vigil-threat-warning > div { display: grid; gap: 4px; }
.case-vigil-threat-warning article { display: grid; grid-template-columns: minmax(0, 0.9fr) minmax(0, 1.1fr); gap: 8px; padding: 6px 7px; border: 1px solid rgba(171, 92, 72, 0.24); background: var(--folio-card, #120d0c); }
.case-vigil-threat-warning article > div { display: grid; gap: 2px; min-width: 0; }
.case-vigil-threat-warning article strong { color: var(--folio-ink, #d8b199); font-size: var(--ming-font-small, 14px); }
.case-vigil-threat-warning article small { color: var(--folio-muted, #a87c70); font-size: var(--ming-font-small, 14px); line-height: 1.4; }
.case-vigil-threat-warning article p { margin: 0; color: var(--folio-muted, #aa9b88); font-size: var(--ming-font-body, 16px); line-height: 1.45; }
.case-vigil-threat-warning article p b { display: block; margin-bottom: 2px; color: var(--folio-muted, #cf8874); font-size: var(--ming-font-body, 16px); }
.case-vigil-threat-warning > small { color: var(--folio-muted, #d29a86); font-size: var(--ming-font-small, 14px); line-height: 1.5; }
.case-vigil-focuses { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 5px; }
.case-vigil-focus { min-width: 0; display: grid; align-content: start; gap: 4px; padding: 7px; border: 1px solid rgba(186, 148, 74, 0.2); background: var(--folio-card, #0c100f); }
.case-vigil-focus.ready { border-color: var(--folio-rule, rgba(188, 151, 77, 0.34)); }
.case-vigil-focus.unavailable { opacity: 0.68; }
.case-vigil-focus > header { display: flex; align-items: center; justify-content: space-between; gap: 5px; }
.case-vigil-focus > header span { color: var(--folio-muted, #b16b57); font-size: var(--ming-font-small, 14px); font-weight: 700; }
.case-vigil-focus > header b { color: var(--folio-ink, #7d7668); font-size: 7px; font-weight: 500; }
.case-vigil-focus > strong { color: var(--folio-ink, #d9c9a8); font-size: var(--ming-font-small, 14px); }
.case-vigil-focus > p { margin: 0; color: var(--folio-muted, #9e9685); font-size: var(--ming-font-body, 16px); line-height: 1.45; }
.case-vigil-focus > small { color: var(--folio-muted, #a77568); font-size: var(--ming-font-small, 14px); line-height: 1.4; }
.case-vigil-focus > small.case-vigil-tradeoff {
  padding: 4px 5px;
  color: var(--folio-muted, #8fae9e);
  border-left: 2px solid #668f7c;
  background: var(--folio-card, #101817);
}
.case-vigil-focus > button { width: 100%; min-height: 44px; margin-top: 2px; padding: 5px 7px; color: var(--folio-ink, #d7c184); border: 1px solid rgba(190, 151, 75, 0.4); background: var(--folio-card, #18150e); cursor: pointer; }
.case-vigil-focus > button span { display: block; font-size: var(--ming-font-small, 14px); }
.case-vigil-focus > button small { display: block; color: var(--folio-muted, #91866f); font-size: 7px; }
.case-vigil-focus > button:hover,
.case-vigil-focus > button:focus-visible { color: var(--folio-ink, #f0ddb0); border-color: var(--folio-rule, rgba(215, 174, 87, 0.68)); outline: none; }
.case-vigil-unavailable { margin-top: 2px; padding: 5px 6px; color: var(--folio-ink, #997168); border: 1px dashed rgba(166, 72, 59, 0.3); font-size: var(--ming-font-small, 14px); line-height: 1.4; }
.case-vigil-latest { display: grid; grid-template-columns: 1fr auto; gap: 2px 8px; padding: 6px 7px; border-left: 2px solid #668f7c; background: var(--folio-card, #0a1210); }
.case-vigil-latest span { color: var(--folio-muted, #8f9e92); font-size: var(--ming-font-small, 14px); }
.case-vigil-latest b { color: var(--folio-ink, #91b7a4); font-size: var(--ming-font-small, 14px); }
.case-vigil-latest p { grid-column: 1 / -1; margin: 0; color: var(--folio-muted, #938c7d); font-size: var(--ming-font-body, 16px); line-height: 1.45; }
.case-vigil-latest small { grid-column: 1 / -1; color: var(--folio-muted, #8fae9e); font-size: var(--ming-font-small, 14px); line-height: 1.4; }
.system-focus-body .case-vigil-panel { gap: 10px; padding: 14px; }
.system-focus-body .case-vigil-panel h4 { font-size: 22px; }
.system-focus-body .case-vigil-panel > p { font-size: var(--ming-font-body, 16px); }
.system-focus-body .case-vigil-panel > small,
.system-focus-body .case-vigil-time span { font-size: var(--ming-font-small, 14px); }
.system-focus-body .case-vigil-threat-warning > header span,
.system-focus-body .case-vigil-threat-warning article strong { font-size: var(--ming-font-small, 14px); }
.system-focus-body .case-vigil-threat-warning > header b,
.system-focus-body .case-vigil-threat-warning article small,
.system-focus-body .case-vigil-threat-warning article p,
.system-focus-body .case-vigil-threat-warning > small { font-size: var(--ming-font-small, 14px); }
.system-focus-body .case-vigil-focus { gap: 6px; padding: 10px; }
.system-focus-body .case-vigil-focus > header span { font-size: var(--ming-font-small, 14px); }
.system-focus-body .case-vigil-focus > header b { font-size: var(--ming-font-small, 14px); }
.system-focus-body .case-vigil-focus > strong { font-size: 14px; }
.system-focus-body .case-vigil-focus > p { font-size: var(--ming-font-body, 16px); }
.system-focus-body .case-vigil-focus > small { font-size: var(--ming-font-small, 14px); }
.system-focus-body .case-vigil-focus > button { min-height: 44px; }
.system-focus-body .case-vigil-focus > button span { font-size: var(--ming-font-small, 14px); }
.system-focus-body .case-vigil-focus > button small { font-size: var(--ming-font-small, 14px); }
.system-focus-body .case-vigil-latest span,
.system-focus-body .case-vigil-latest b,
.system-focus-body .case-vigil-latest small { font-size: var(--ming-font-small, 14px); }
.system-focus-body .case-vigil-latest p { font-size: var(--ming-font-body, 16px); }
.jinyi-campaign .system-dock .case-vigil-time,
.jinyi-campaign .system-dock .case-vigil-focuses { grid-template-columns: 1fr; }
.jinyi-campaign .system-dock .case-vigil-focus > button.case-ai-action {
  grid-template-columns: 1fr;
  gap: 2px;
}
.jinyi-campaign .system-dock .case-vigil-focus > button.case-ai-action > small { white-space: normal; }
.case-operation-state {
  display: grid;
  grid-template-columns: 110px minmax(0, 1fr) auto;
  align-items: center;
  gap: 8px;
  margin-top: 7px;
  padding: 7px 9px;
  border: 1px solid rgba(111, 157, 137, 0.22);
  border-left: 2px solid var(--case-jade);
  background: var(--folio-card, rgba(35, 73, 61, 0.12));
}
.case-operation-state > div { display: grid; gap: 1px; }
.case-operation-state span { color: var(--folio-muted, #789d8d); font-size: var(--ming-font-small, 14px); letter-spacing: 0.08em; }
.case-operation-state strong { color: var(--folio-ink, #b9d1c3); font-size: var(--ming-font-small, 14px); }
.case-operation-state p { margin: 0; color: var(--folio-muted, #958e7f); font-size: var(--ming-font-body, 16px); line-height: 1.45; }
.case-operation-state button { min-height: 44px; padding: 5px 9px; color: var(--folio-ink, #d9c187); border: 1px solid rgba(187, 151, 78, 0.35); background: var(--folio-card, rgba(0, 0, 0, 0.24)); cursor: pointer; }
.case-operation-state:not(.status-active) { border-color: var(--folio-rule, rgba(180, 74, 61, 0.38)); border-left-color: var(--case-red); background: var(--folio-card, rgba(101, 38, 31, 0.15)); }
.case-failure-pursuit { display: grid; gap: 6px; margin-top: 7px; padding: 8px 9px; border: 1px solid rgba(190, 151, 76, 0.3); border-left: 3px solid #a56b48; background: var(--folio-card, linear-gradient(120deg, rgba(101, 42, 33, 0.18), rgba(25, 61, 49, 0.16))); }
.case-failure-pursuit > header { display: flex; align-items: flex-start; justify-content: space-between; gap: 8px; }
.case-failure-pursuit header span { color: var(--folio-muted, #b66f5b); font-size: var(--ming-font-small, 14px); letter-spacing: 0.08em; }
.case-failure-pursuit h4 { margin: 1px 0 0; color: var(--folio-ink, #e0d0ad); font-family: var(--font-brush); font-size: 16px; font-weight: 400; }
.case-failure-pursuit header > b { padding: 2px 6px; color: var(--folio-ink, #d0b36d); border: 1px solid rgba(188, 149, 75, 0.26); background: var(--folio-card, rgba(0, 0, 0, 0.2)); font-size: var(--ming-font-small, 14px); white-space: nowrap; }
.case-failure-pursuit > p { margin: 0; color: var(--folio-muted, #aaa08c); font-size: var(--ming-font-body, 16px); line-height: 1.48; }
.case-failure-plan,
.case-failure-cost { display: grid; grid-template-columns: 1fr 1fr; gap: 5px; }
.case-failure-plan > span,
.case-failure-cost > span { padding: 5px 6px; color: var(--folio-muted, #9a917f); border: 1px solid rgba(190, 151, 76, 0.15); background: var(--folio-card, rgba(0, 0, 0, 0.18)); font-size: var(--ming-font-small, 14px); line-height: 1.45; }
.case-failure-plan b,
.case-failure-cost b { display: block; margin-bottom: 2px; color: var(--folio-ink, #bda366); font-size: var(--ming-font-small, 14px); }
.case-failure-plan > span:last-child { color: var(--folio-muted, #bd897e); border-color: var(--folio-rule, rgba(174, 73, 59, 0.22)); }
.case-failure-plan > span:last-child b,
.case-failure-cost > span:last-child b { color: var(--folio-muted, #cb7d6e); }
.case-failure-ledger { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 4px; }
.case-failure-ledger > span { min-width: 0; padding: 4px 5px; color: var(--folio-muted, #9b9587); border: 1px solid rgba(89, 145, 121, 0.18); background: var(--folio-card, rgba(21, 56, 45, 0.15)); font-size: var(--ming-font-small, 14px); overflow-wrap: anywhere; }
.case-failure-ledger b { display: block; margin-bottom: 1px; color: var(--folio-ink, #78a28e); font-size: var(--ming-font-small, 14px); }
.case-failure-pursuit > em,
.case-failure-pursuit > small { color: var(--folio-muted, #81796b); font-size: var(--ming-font-small, 14px); font-style: normal; line-height: 1.4; }
.case-failure-pursuit > button { min-height: 44px; padding: 6px 9px; color: var(--folio-ink, #dec98e); border: 1px solid rgba(194, 154, 76, 0.42); background: var(--folio-card, linear-gradient(105deg, rgba(105, 66, 26, 0.24), rgba(28, 69, 54, 0.2))); font-size: var(--ming-font-small, 14px); cursor: pointer; }
.case-failure-pursuit > button:hover,
.case-failure-pursuit > button:focus-visible { color: var(--folio-ink, #f2dfb7); border-color: var(--folio-rule, rgba(213, 171, 85, 0.68)); outline: none; }
.case-failure-unavailable { padding: 6px 7px; color: var(--folio-ink, #a57b70); border: 1px dashed rgba(169, 73, 59, 0.3); background: var(--folio-card, rgba(91, 34, 28, 0.12)); font-size: var(--ming-font-small, 14px); line-height: 1.45; }
.case-metric-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 5px; margin-top: 7px; }
.case-metric-grid > div { display: grid; grid-template-columns: 1fr auto; gap: 3px 7px; padding: 6px 7px; border: 1px solid rgba(190, 155, 84, 0.12); background: var(--folio-card, rgba(0, 0, 0, 0.18)); }
.case-metric-grid span { color: var(--folio-muted, #948976); font-size: var(--ming-font-small, 14px); }
.case-metric-grid strong { color: var(--folio-ink, #ddc57f); font-size: var(--ming-font-small, 14px); }
.case-metric-grid i { grid-column: 1 / -1; height: 3px; overflow: hidden; background: var(--folio-card, rgba(255,255,255,0.06)); }
.case-metric-grid i b { display: block; height: 100%; background: var(--case-jade); }
.case-metric-grid > div:nth-child(2) i b,
.case-metric-grid > div:nth-child(3) i b { background: var(--case-red); }

.case-route-ledger { display: grid; gap: 4px; margin-top: 8px; }
.case-route-ledger > span { color: var(--folio-muted, #a78950); font-size: var(--ming-font-small, 14px); font-weight: 700; }
.case-route-ledger > div { display: grid; grid-template-columns: 72px minmax(0, 1fr) 30px; align-items: center; gap: 7px; }
.case-route-ledger > div b { color: var(--folio-ink, #b8ad96); font-size: var(--ming-font-small, 14px); }
.case-route-ledger > div i { height: 4px; overflow: hidden; background: var(--folio-card, rgba(255,255,255,0.055)); }
.case-route-ledger > div em { display: block; height: 100%; background: var(--folio-card, linear-gradient(90deg, rgba(162, 71, 57, 0.65), #b99c5a 50%, #6c9f88)); }
.case-route-ledger > div strong { color: var(--folio-ink, #baaa89); font-size: var(--ming-font-small, 14px); text-align: right; }
.case-closing-options { margin-top: 9px; padding: 8px; border: 1px solid rgba(196, 156, 78, 0.26); background: var(--folio-card, linear-gradient(120deg, rgba(111, 44, 35, 0.16), rgba(22, 57, 47, 0.12))); }
.case-closing-options > header { display: flex; align-items: flex-start; justify-content: space-between; gap: 8px; padding-bottom: 6px; border-bottom: 1px solid rgba(193, 157, 84, 0.16); }
.case-closing-options header span { color: var(--folio-muted, #b26053); font-size: var(--ming-font-small, 14px); letter-spacing: 0.08em; }
.case-closing-options h4 { margin: 1px 0 0; color: var(--folio-ink, #ded0b2); font-size: var(--ming-font-small, 14px); }
.case-closing-options header small { color: var(--folio-muted, #8e8778); font-size: var(--ming-font-small, 14px); }
.case-closing-options > div { display: grid; gap: 5px; margin-top: 6px; }
.system-focus-body .case-closing-options > div { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; }
.case-closing-options article { display: grid; grid-template-columns: 72px minmax(0, 1fr); align-items: start; gap: 8px; padding: 8px; border-left: 2px solid var(--case-jade); background: var(--folio-card, rgba(0, 0, 0, 0.18)); }
.case-closing-options article.tone-costly { border-left-color: var(--case-red); }
.case-closing-options article.readiness-missing { background: var(--folio-danger-surface, linear-gradient(100deg, rgba(111, 52, 34, 0.13), rgba(0, 0, 0, 0.2))); }
.case-closing-art { width: 72px; height: 54px; margin: 0; overflow: hidden; border: 1px solid rgba(192, 157, 90, 0.22); background: var(--folio-card, #080b0a); }
.case-closing-art img { width: 100%; height: 100%; display: block; object-fit: cover; object-position: 74% center; filter: saturate(0.78) contrast(1.06); }
.case-closing-options article.tone-costly .case-closing-art img { filter: saturate(0.62) contrast(1.09) brightness(0.84); }
.case-closing-options article span { color: var(--folio-muted, #83a895); font-size: var(--ming-font-small, 14px); }
.case-closing-options article.tone-costly span { color: var(--folio-danger, #c16d60); }
.case-closing-options article strong { display: block; color: var(--folio-ink, #d9cbaa); font-size: var(--ming-font-small, 14px); }
.case-closing-options article p { margin: 2px 0 0; color: var(--folio-muted, #a59c8b); font-size: var(--ming-font-body, 16px); line-height: 1.45; }
.case-closing-pressure-warning { display: grid; gap: 3px; margin-top: 7px; padding: 8px 9px; border: 1px solid rgba(181, 76, 62, 0.36); border-left: 3px solid #a94f42; background: var(--folio-card, #1b1210); }
.case-closing-pressure-warning.level-escalating { border-color: var(--folio-rule, rgba(190, 150, 76, 0.3)); border-left-color: var(--folio-rule, #a98246); background: var(--folio-card, #17150f); }
.case-closing-pressure-warning.relief-active { border-color: var(--folio-rule, rgba(91, 145, 120, 0.38)); border-left-color: var(--folio-rule, #65957f); background: var(--folio-card, #101916); }
.case-closing-pressure-warning b { color: var(--folio-ink, #d28a7d); font-size: var(--ming-font-small, 14px); }
.case-closing-pressure-warning.level-escalating b { color: var(--folio-ink, #c9ad70); }
.case-closing-pressure-warning.relief-active b { color: var(--folio-ink, #9bc4af); }
.case-closing-pressure-warning span { color: var(--folio-muted, #b6a797) !important; font-size: var(--ming-font-small, 14px); line-height: 1.55; }
.case-ending-checklist { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 3px 5px; margin-top: 5px; }
.case-ending-checklist span { display: flex; align-items: flex-start; gap: 4px; min-width: 0; color: var(--folio-muted, #a89f8c); font-size: var(--ming-font-small, 14px); line-height: 1.4; }
.case-ending-checklist span i { flex: 0 0 auto; min-width: 16px; padding: 0 2px; border: 1px solid rgba(184, 147, 78, 0.28); color: var(--folio-muted, #bda96f); font-size: 7px; font-style: normal; text-align: center; }
.case-ending-checklist span.done { color: var(--folio-success, #89aa99); }
.case-ending-checklist span.done i { border-color: var(--folio-rule, rgba(91, 145, 120, 0.4)); color: var(--folio-success, #95c0aa); }
.case-ending-checklist span.missing { color: var(--folio-danger, #bf8a7d); }
.case-ending-checklist span.missing i { border-color: var(--folio-rule, rgba(181, 76, 62, 0.42)); color: var(--folio-danger, #d08372); }
.case-closing-options article button { grid-column: 1 / -1; width: 100%; min-height: 44px; padding: 6px 9px; color: var(--folio-ink, #b9d7c8); border: 1px solid rgba(103, 159, 134, 0.38); background: var(--folio-card, rgba(27, 72, 57, 0.18)); cursor: pointer; }
.case-closing-options article button.danger { color: var(--folio-danger, #d8a198); border-color: var(--folio-rule, rgba(181, 76, 62, 0.42)); background: var(--folio-danger-surface, rgba(106, 38, 31, 0.18)); }
.case-daily-note { margin-top: 8px; padding: 7px 9px; border: 1px solid rgba(183, 147, 74, 0.15); background: var(--folio-card, rgba(9, 16, 15, 0.72)); }
.case-daily-note span { color: var(--folio-muted, #987c4d); font-size: var(--ming-font-small, 14px); }
.case-daily-note strong { display: block; margin: 2px 0 0; color: var(--folio-ink, #d8cbaa); font-size: var(--ming-font-small, 14px); }
.case-daily-note p { margin: 3px 0 0; color: var(--folio-muted, #908878); font-size: var(--ming-font-body, 16px); line-height: 1.4; }
.case-ending { margin-top: 8px; overflow: hidden; border: 1px solid rgba(183, 147, 74, 0.28); background: var(--folio-card, linear-gradient(145deg, rgba(24, 34, 30, 0.92), rgba(8, 12, 11, 0.96))); }
.case-ending-art { position: relative; height: 132px; margin: 0; overflow: hidden; background: var(--folio-card, #080b0a); }
.case-ending-art::after { content: ''; position: absolute; inset: 0; background: linear-gradient(180deg, transparent 28%, rgba(5, 8, 7, 0.92)); pointer-events: none; }
.case-ending-art img { width: 100%; height: 100%; display: block; object-fit: cover; object-position: 72% center; filter: saturate(0.82) contrast(1.06); }
.case-ending.tone-costly .case-ending-art img { filter: saturate(0.65) contrast(1.08) brightness(0.86); }
.case-ending-art figcaption { position: absolute; z-index: 1; left: 10px; right: 10px; bottom: 8px; }
.case-ending span { color: var(--folio-muted, #987c4d); font-size: var(--ming-font-small, 14px); }
.case-ending h3 { display: block; margin: 2px 0 0; color: var(--folio-ink, #eadaba); font-family: var(--font-brush); font-size: 19px; font-weight: 400; letter-spacing: 0.08em; }
.case-ending > p { margin: 0; padding: 9px 10px 7px; color: var(--folio-muted, #b0a58f); font-size: var(--ming-font-body, 16px); line-height: 1.55; }
.case-ending-ledger { display: grid; gap: 5px; padding: 0 10px 8px; }
.case-ending-ledger span { display: grid; grid-template-columns: 34px 1fr; gap: 6px; align-items: start; color: var(--folio-muted, #9e9584); font-size: var(--ming-font-small, 14px); line-height: 1.45; }
.case-ending-ledger b { color: var(--folio-ink, #bda36b); font-weight: 650; }
.case-ending.tone-costly .case-ending-ledger b { color: var(--folio-danger, #c87869); }
.case-ending > small { display: block; padding: 7px 10px 9px; color: var(--folio-muted, #7f9d8d); border-top: 1px solid rgba(192, 157, 90, 0.12); font-size: var(--ming-font-small, 14px); line-height: 1.45; }
.case-ending.tone-costly { border-color: var(--folio-rule, rgba(169, 73, 58, 0.42)); }

.case-evidence-columns { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; margin-top: 8px; }
.case-evidence-columns > section { min-width: 0; display: grid; align-content: start; gap: 5px; }
.case-evidence-columns > section > span { color: var(--folio-muted, #9b8354); font-size: var(--ming-font-small, 14px); font-weight: 700; }
.case-evidence-columns article { min-width: 0; display: grid; grid-template-columns: 27px minmax(0, 1fr); gap: 7px; padding: 7px; border: 1px solid rgba(185, 150, 82, 0.14); background: var(--folio-card, rgba(0,0,0,0.18)); }
.case-evidence-columns article > i { width: 27px; height: 27px; display: grid; place-items: center; color: var(--folio-ink, #e1c47f); border: 1px solid rgba(185, 150, 82, 0.35); border-radius: 50%; font-family: var(--font-brush); font-style: normal; }
.case-evidence-columns article.clue > i { color: var(--folio-ink, #8fb9a5); border-color: var(--folio-rule, rgba(105, 162, 137, 0.38)); }
.case-evidence-record { grid-template-columns: 82px minmax(0, 1fr) !important; align-items: stretch; }
.case-evidence-art { position: relative; width: 82px; min-height: 104px; margin: 0; overflow: hidden; border: 1px solid rgba(185, 150, 82, 0.3); background: var(--folio-card, #0a0e0c); }
.case-evidence-art::after { content: ''; position: absolute; inset: 0; border: 1px solid rgba(233, 207, 148, 0.08); pointer-events: none; }
.case-evidence-art img { width: 100%; height: 100%; min-height: 104px; display: block; object-fit: cover; object-position: center; filter: saturate(0.78) contrast(1.06); }
.system-focus-body .case-evidence-record { grid-template-columns: 150px minmax(0, 1fr) !important; gap: 14px; padding: 11px; }
.system-focus-body .case-evidence-art { width: 150px; height: 112px; min-height: 112px; }
.system-focus-body .case-evidence-art img { min-height: 112px; }
.custody-destroyed .case-evidence-art img { filter: grayscale(0.78) sepia(0.22) contrast(1.05); opacity: 0.48; }
.case-evidence-columns strong { display: block; color: var(--folio-ink, #ded3ba); font-size: var(--ming-font-small, 14px); }
.case-evidence-columns small { color: var(--folio-muted, #8c836f); font-size: var(--ming-font-small, 14px); }
.case-evidence-columns p { margin: 3px 0 0; color: var(--folio-muted, #9e9582); font-size: var(--ming-font-body, 16px); line-height: 1.4; }
.case-evidence-record.custody-destroyed { border-color: var(--folio-rule, rgba(167, 73, 61, 0.28)); opacity: 0.82; }
.case-evidence-custody { display: flex; flex-wrap: wrap; align-items: center; gap: 4px; margin: 3px 0; }
.case-evidence-custody span,
.case-evidence-custody b,
.case-evidence-custody em { padding: 1px 5px; border: 1px solid rgba(183, 149, 77, 0.17); color: var(--folio-muted, #9e9278); background: var(--folio-card, rgba(0, 0, 0, 0.18)); font-size: var(--ming-font-small, 14px); font-style: normal; font-weight: 500; }
.case-evidence-custody span { color: var(--folio-muted, #9bc2ad); border-color: var(--folio-rule, rgba(104, 158, 135, 0.26)); }
.custody-destroyed .case-evidence-custody span { color: var(--folio-muted, #c37b6e); border-color: var(--folio-rule, rgba(173, 73, 61, 0.3)); }
.case-evidence-actions { display: flex; flex-wrap: wrap; gap: 4px; margin-top: 6px; }
.case-evidence-actions button { min-height: 44px; padding: 4px 7px; color: var(--folio-ink, #b9cdbf); border: 1px solid rgba(104, 154, 132, 0.3); background: var(--folio-card, rgba(30, 68, 56, 0.16)); font-size: var(--ming-font-small, 14px); cursor: pointer; }
.case-evidence-actions button:hover,
.case-evidence-actions button:focus-visible { color: var(--folio-ink, #e4d5b6); border-color: var(--folio-rule, rgba(199, 162, 84, 0.48)); }
.case-evidence-actions button.danger { margin-left: auto; color: var(--folio-danger, #c98a7e); border-color: var(--folio-rule, rgba(174, 72, 59, 0.34)); background: var(--folio-danger-surface, rgba(101, 35, 29, 0.15)); }
.case-evidence-spent { margin-top: 5px; color: var(--folio-ink, #786f62); font-size: var(--ming-font-small, 14px); }
.case-empty-copy { margin: 0; padding: 9px; color: var(--folio-ink, #8f8778); border: 1px dashed rgba(183, 147, 76, 0.2); font-size: var(--ming-font-small, 14px); line-height: 1.5; }

.case-role-method { display: grid; gap: 6px; margin-bottom: 9px; padding: 9px 10px; border: 1px solid rgba(190, 151, 76, 0.3); border-left: 3px solid #a78442; background: var(--folio-card, linear-gradient(125deg, rgba(89, 62, 24, 0.22), rgba(19, 55, 44, 0.16))); }
.case-role-method > header { display: flex; align-items: flex-start; justify-content: space-between; gap: 9px; }
.case-role-method header span { color: var(--folio-muted, #a86c57); font-size: var(--ming-font-small, 14px); letter-spacing: 0.08em; }
.case-role-method h3 { margin: 1px 0 0; color: var(--folio-ink, #e1d1ae); font-family: var(--font-brush); font-size: 17px; font-weight: 400; }
.case-role-method header > b { padding: 2px 6px; color: var(--folio-ink, #d8bd77); border: 1px solid rgba(190, 151, 76, 0.25); background: var(--folio-card, rgba(0, 0, 0, 0.2)); font-size: var(--ming-font-small, 14px); white-space: nowrap; }
.case-role-method > p { margin: 0; color: var(--folio-muted, #a89f8c); font-size: var(--ming-font-body, 16px); line-height: 1.5; }
.case-role-method-ledger { display: grid; grid-template-columns: 1fr 1fr; gap: 5px; }
.case-role-method-ledger span { display: grid; grid-template-columns: 48px 1fr; gap: 5px; padding: 5px 6px; color: var(--folio-muted, #91a999); border: 1px solid rgba(93, 148, 124, 0.2); background: var(--folio-card, rgba(23, 59, 47, 0.14)); font-size: var(--ming-font-small, 14px); line-height: 1.4; }
.case-role-method-ledger span.cost { color: var(--folio-muted, #bd897d); border-color: var(--folio-rule, rgba(170, 72, 58, 0.22)); background: var(--folio-card, rgba(93, 33, 27, 0.14)); }
.case-role-method-ledger b { color: var(--folio-ink, #a9c9b7); font-weight: 700; }
.case-role-method-ledger .cost b { color: var(--folio-ink, #cf8a7c); }
.case-role-method > small { color: var(--folio-muted, #c1aa72); font-size: var(--ming-font-small, 14px); line-height: 1.4; }
.case-role-method > em,
.case-role-method > i { color: var(--folio-muted, #817968); font-size: var(--ming-font-small, 14px); font-style: normal; line-height: 1.35; }
.case-role-method > button { min-height: 44px; padding: 6px 9px; color: var(--folio-ink, #d5c79f); border: 1px solid rgba(190, 151, 76, 0.4); background: var(--folio-card, linear-gradient(110deg, rgba(100, 68, 25, 0.28), rgba(31, 72, 58, 0.2))); font-size: var(--ming-font-small, 14px); cursor: pointer; }
.case-role-method > button:hover,
.case-role-method > button:focus-visible { color: var(--folio-ink, #f0dfb9); border-color: var(--folio-rule, rgba(208, 169, 88, 0.68)); outline: none; }

.case-route-chapters { margin-bottom: 9px; padding-bottom: 9px; border-bottom: 1px solid rgba(187, 150, 79, 0.18); }
.case-route-chapters > header { display: flex; align-items: flex-end; justify-content: space-between; gap: 8px; margin-bottom: 7px; }
.case-route-chapters > header span { color: var(--folio-muted, #b36b58); font-size: var(--ming-font-small, 14px); letter-spacing: 0.09em; }
.case-route-chapters > header h3 { margin: 1px 0 0; color: var(--folio-ink, #ddcfaf); font-family: var(--font-brush); font-size: 16px; }
.case-route-chapters > header small { max-width: 145px; color: var(--folio-muted, #817968); font-size: var(--ming-font-small, 14px); line-height: 1.35; text-align: right; }
.case-route-chapters > div { display: grid; gap: 7px; }
.case-route-chapter { min-width: 0; display: grid; grid-template-columns: 92px minmax(0, 1fr); overflow: hidden; border: 1px solid rgba(184, 149, 78, 0.18); background: var(--folio-card, rgba(0, 0, 0, 0.2)); }
.case-route-chapter.status-active { border-color: var(--folio-rule, rgba(197, 158, 78, 0.42)); box-shadow: inset 2px 0 rgba(191, 148, 65, 0.75); }
.case-route-chapter.status-available { border-color: var(--folio-rule, rgba(101, 159, 134, 0.32)); }
.case-route-chapter.status-failed { border-color: var(--folio-rule, rgba(175, 71, 57, 0.38)); box-shadow: inset 2px 0 rgba(175, 71, 57, 0.72); }
.case-route-chapter.status-completed { border-color: var(--folio-rule, rgba(101, 159, 134, 0.34)); }
.case-route-chapter.status-locked { opacity: 0.62; }
.case-route-chapter-art { position: relative; min-height: 118px; display: flex; align-items: flex-end; padding: 6px; isolation: isolate; background-color: var(--folio-card, #080d0d); background-image: var(--route-image, none); background-position: var(--route-focal, center center); background-size: cover; background-repeat: no-repeat; }
.case-route-chapter-art::after { content: ''; position: absolute; inset: 0; z-index: -1; background: linear-gradient(180deg, transparent 30%, rgba(5, 9, 9, 0.92)); }
.case-route-chapter-art span { color: var(--folio-muted, #e0d0ac); font-size: var(--ming-font-small, 14px); font-weight: 700; text-shadow: 0 1px 3px #000; }
.case-route-chapter-body { min-width: 0; display: grid; align-content: start; gap: 5px; padding: 7px 8px; }
.case-route-chapter-body > header { display: flex; align-items: flex-start; justify-content: space-between; gap: 7px; }
.case-route-chapter-body header small { color: var(--folio-muted, #b46d5b); font-size: var(--ming-font-small, 14px); }
.case-route-chapter.status-available header small,
.case-route-chapter.status-completed header small { color: var(--folio-muted, #7fa991); }
.case-route-chapter-body h4 { margin: 1px 0 0; color: var(--folio-ink, #d9cbaa); font-size: var(--ming-font-small, 14px); }
.case-route-chapter-body > p { margin: 0; color: var(--folio-muted, #8f8778); font-size: var(--ming-font-body, 16px); line-height: 1.45; }
.case-route-stage-dots { display: flex; gap: 3px; padding-top: 3px; }
.case-route-stage-dots i { width: 16px; height: 3px; background: var(--folio-card, rgba(255, 255, 255, 0.08)); }
.case-route-stage-dots i.current { background: var(--folio-selected-surface, #bd9651); }
.case-route-stage-dots i.done { background: var(--folio-success-surface, #668f7d); }
.case-route-command { display: grid; gap: 2px; }
.case-route-command > span { color: var(--folio-muted, #a98a50); font-size: var(--ming-font-small, 14px); }
.case-route-command > strong { color: var(--folio-ink, #d6c9ad); font-size: var(--ming-font-small, 14px); }
.case-route-command > p { margin: 0; color: var(--folio-muted, #a29a88); font-size: var(--ming-font-body, 16px); line-height: 1.4; }
.case-route-command > small { color: var(--folio-muted, #817969); font-size: var(--ming-font-small, 14px); line-height: 1.35; }
.case-route-command > em { color: var(--folio-muted, #a7685c); font-size: var(--ming-font-small, 14px); font-style: normal; line-height: 1.35; }
.case-route-deadline { width: max-content; margin-top: 2px; padding: 2px 5px; color: var(--folio-ink, #d8bd75); border: 1px solid rgba(187, 146, 66, 0.28); background: var(--folio-card, rgba(97, 71, 25, 0.16)); font-size: var(--ming-font-small, 14px); }
.case-route-deadline.urgent { color: var(--folio-danger, #d78d80); border-color: var(--folio-rule, rgba(177, 72, 58, 0.36)); background: var(--folio-danger-surface, rgba(102, 35, 28, 0.18)); }
.case-route-retry { color: var(--folio-ink, #a87868); font-size: var(--ming-font-small, 14px); }
.case-route-chapter button { min-height: 44px; padding: 5px 8px; color: var(--folio-ink, #c8d8ca); border: 1px solid rgba(100, 155, 131, 0.34); background: var(--folio-card, rgba(27, 70, 56, 0.18)); font-size: var(--ming-font-small, 14px); cursor: pointer; }
.case-route-chapter.status-failed button { color: var(--folio-danger, #d3a398); border-color: var(--folio-rule, rgba(174, 73, 59, 0.4)); background: var(--folio-danger-surface, rgba(104, 36, 29, 0.18)); }

.case-historical-access { margin-bottom: 12px; color: var(--folio-ink, #d8ccb4); }
.case-historical-access > header { display: flex; align-items: flex-start; justify-content: space-between; gap: 10px; padding-bottom: 7px; border-bottom: 1px solid rgba(192, 155, 82, 0.28); }
.case-historical-access > header span { color: var(--folio-muted, #b46d5b); font-size: var(--ming-font-small, 14px); letter-spacing: 0.09em; }
.case-historical-access > header h3 { margin: 1px 0 0; color: var(--folio-ink, #eee1c7); font-size: 18px; }
.case-historical-access > header > b { padding: 2px 6px; color: var(--folio-ink, #d5b66e); border: 1px solid rgba(190, 151, 76, 0.22); background: var(--folio-card, rgba(0, 0, 0, 0.2)); font-size: var(--ming-font-small, 14px); white-space: nowrap; }
.case-historical-principle { margin: 7px 0; padding: 6px 8px; color: var(--folio-ink, #8e9f93); border-left: 2px solid var(--case-jade); background: var(--folio-card, rgba(32, 68, 57, 0.12)); font-size: var(--ming-font-small, 14px); line-height: 1.5; }
.case-historical-access > div { display: grid; gap: 8px; }
.case-historical-card { position: relative; min-width: 0; display: grid; grid-template-columns: 88px minmax(0, 1fr); gap: 9px; overflow: hidden; padding: 8px; border: 1px solid rgba(190, 151, 76, 0.2); background: var(--folio-card, linear-gradient(115deg, rgba(92, 46, 32, 0.16), rgba(12, 27, 24, 0.82) 42%, rgba(6, 11, 11, 0.92))); box-shadow: inset 2px 0 rgba(171, 72, 58, 0.6); }
.case-historical-card.level-intermediary,
.case-historical-card.level-message_delivered { border-color: var(--folio-rule, rgba(190, 151, 76, 0.34)); box-shadow: inset 2px 0 #b38c48; }
.case-historical-portrait { position: relative; width: 88px; min-height: 138px; align-self: stretch; overflow: hidden; margin: 0; border: 1px solid rgba(201, 165, 92, 0.34); background: #080c0c; }
.case-historical-portrait::after { content: ''; position: absolute; inset: 0; background: linear-gradient(180deg, transparent 54%, rgba(3, 7, 7, 0.92)); pointer-events: none; }
.case-historical-portrait img { width: 100%; height: 100%; min-height: 138px; display: block; object-fit: cover; object-position: 50% 24%; filter: saturate(0.82) contrast(1.05); }
.case-historical-portrait figcaption { position: absolute; z-index: 1; left: 5px; right: 5px; bottom: 4px; overflow: hidden; color: #d7bd7d; font-size: var(--ming-font-small, 14px); line-height: 1.25; text-align: center; text-overflow: ellipsis; white-space: nowrap; }
.case-historical-body { min-width: 0; display: grid; align-content: start; gap: 5px; }
.case-historical-body > header { display: flex; align-items: flex-start; justify-content: space-between; gap: 7px; }
.case-historical-body header span { color: var(--folio-muted, #9a8060); font-size: var(--ming-font-small, 14px); line-height: 1.3; }
.case-historical-body h4 { margin: 1px 0 0; color: var(--folio-ink, #e6d8bb); font-family: var(--font-brush); font-size: 18px; font-weight: 400; letter-spacing: 0.06em; }
.case-historical-body header > b { padding: 2px 5px; color: var(--folio-ink, #cfae66); border: 1px solid rgba(190, 151, 76, 0.25); background: var(--folio-card, rgba(0, 0, 0, 0.2)); font-size: var(--ming-font-small, 14px); font-weight: 650; white-space: nowrap; }
.case-historical-track { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 3px; padding: 3px 0; }
.case-historical-track span { min-width: 0; display: grid; gap: 2px; }
.case-historical-track i { height: 3px; background: var(--folio-card, rgba(255, 255, 255, 0.07)); }
.case-historical-track b { overflow: hidden; color: var(--folio-ink, #69675e); font-size: var(--ming-font-small, 14px); font-weight: 500; text-overflow: ellipsis; white-space: nowrap; }
.case-historical-track span.reached i { background: var(--folio-card, #b88f48); }
.case-historical-track span.reached b { color: var(--folio-muted, #c0aa77); }
.case-historical-track span.available i { background: var(--folio-success-surface, rgba(100, 156, 132, 0.32)); }
.case-historical-track span.available b { color: var(--folio-success, #789887); }
.case-historical-track span.locked i { background: repeating-linear-gradient(90deg, rgba(154, 65, 53, 0.45) 0 3px, transparent 3px 5px); }
.case-historical-track span.locked b { color: var(--folio-muted, #875f57); }
.case-historical-boundary { margin: 0; color: var(--folio-ink, #a49b89); font-size: var(--ming-font-small, 14px); line-height: 1.5; }
.case-historical-intermediary { display: grid; grid-template-columns: auto minmax(0, 1fr); align-items: baseline; gap: 2px 7px; padding: 5px 6px; border: 1px solid rgba(100, 155, 132, 0.18); background: var(--folio-card, rgba(25, 62, 50, 0.12)); }
.case-historical-intermediary span { color: var(--folio-muted, #799f8e); font-size: var(--ming-font-small, 14px); }
.case-historical-intermediary strong { color: var(--folio-ink, #b9d0c2); font-size: var(--ming-font-small, 14px); }
.case-historical-intermediary small { grid-column: 1 / -1; color: var(--folio-muted, #858276); font-size: var(--ming-font-small, 14px); }
.case-historical-last { margin: 0; color: var(--folio-ink, #91897a); font-size: var(--ming-font-small, 14px); line-height: 1.45; }
.case-historical-last b { margin-right: 5px; color: var(--folio-ink, #a98b53); }
.case-historical-card > aside { grid-column: 1 / -1; min-width: 0; display: grid; align-content: start; gap: 6px; padding-top: 7px; border-top: 1px solid rgba(190, 151, 76, 0.15); }
.case-historical-next { display: grid; gap: 3px; }
.case-historical-next > span { color: var(--folio-muted, #d0b46f); font-size: var(--ming-font-small, 14px); font-weight: 700; }
.case-historical-next > p { margin: 0; color: var(--folio-muted, #9d9482); font-size: var(--ming-font-body, 16px); line-height: 1.45; }
.case-historical-next > div { display: grid; grid-template-columns: 48px 1fr; gap: 5px; color: var(--folio-ink, #96b6a4); font-size: var(--ming-font-small, 14px); line-height: 1.4; }
.case-historical-next > div.cost { color: var(--folio-ink, #bd8175); }
.case-historical-next > div b { color: var(--folio-ink, #a7c8b5); font-weight: 650; }
.case-historical-next > div.cost b { color: var(--folio-ink, #cf8b7e); }
.case-historical-next > div em { font-style: normal; }
.case-historical-next.maxed { padding: 5px 6px; border: 1px solid rgba(190, 151, 76, 0.18); background: var(--folio-card, rgba(82, 60, 25, 0.11)); }
.case-historical-overreach { display: grid; gap: 2px; margin: 0; padding: 5px 6px; border-left: 2px solid var(--case-red); background: var(--folio-card, rgba(105, 38, 31, 0.15)); }
.case-historical-overreach b { color: var(--folio-ink, #d98b7e); font-size: var(--ming-font-small, 14px); }
.case-historical-overreach span { color: var(--folio-muted, #ac8b84); font-size: var(--ming-font-small, 14px); line-height: 1.4; }
.case-historical-overreach small { color: var(--folio-muted, #927771); font-size: var(--ming-font-small, 14px); line-height: 1.4; }
.case-historical-card > aside > button { min-height: 44px; padding: 5px 8px; color: var(--folio-ink, #dfc989); border: 1px solid rgba(190, 151, 76, 0.4); background: var(--folio-card, linear-gradient(105deg, rgba(102, 68, 25, 0.3), rgba(31, 72, 58, 0.2))); font-size: var(--ming-font-small, 14px); cursor: pointer; }
.case-historical-card > aside > button:hover,
.case-historical-card > aside > button:focus-visible { color: var(--folio-ink, #f2e1b8); border-color: var(--folio-rule, rgba(211, 173, 91, 0.66)); outline: none; }

.case-task-list,
.case-contact-list { display: grid; gap: 6px; margin-top: 8px; }
.case-task { padding: 8px 9px; border: 1px solid rgba(185, 150, 82, 0.14); background: var(--folio-card, rgba(0,0,0,0.18)); }
.case-task.status-completed { opacity: 0.72; border-color: var(--folio-rule, rgba(100, 155, 132, 0.3)); }
.case-task-title { display: grid; grid-template-columns: 54px minmax(0, 1fr) 36px; align-items: center; gap: 7px; }
.case-task-title span { color: var(--folio-muted, #c36c5e); font-size: var(--ming-font-small, 14px); }
.case-task-title strong { color: var(--folio-ink, #ded2b9); font-size: var(--ming-font-small, 14px); }
.case-task-title b { color: var(--folio-ink, #d3b66f); font-size: var(--ming-font-small, 14px); text-align: right; }
.case-task > p { margin: 4px 0 0; color: var(--folio-muted, #a09988); font-size: var(--ming-font-body, 16px); line-height: 1.45; }
.case-task > small { color: var(--folio-muted, #817968); font-size: var(--ming-font-small, 14px); }
.case-task .system-action-seed { min-height: 44px; margin-top: 6px; }
.case-dynamic-ledger { border-color: var(--folio-rule, rgba(95, 157, 132, 0.34)) !important; box-shadow: inset 2px 0 rgba(83, 143, 119, 0.62); background: var(--folio-card, linear-gradient(105deg, rgba(22, 62, 49, 0.2), rgba(0, 0, 0, 0.2))) !important; }
.case-dynamic-meta { display: grid; grid-template-columns: 1fr 1fr; gap: 4px; margin-top: 6px; }
.case-dynamic-meta > span { min-width: 0; padding: 4px 5px; color: var(--folio-muted, #9d9584); border: 1px solid rgba(91, 148, 124, 0.18); background: var(--folio-card, rgba(20, 55, 44, 0.16)); font-size: var(--ming-font-small, 14px); line-height: 1.4; overflow-wrap: anywhere; }
.case-dynamic-meta > span b { display: block; margin-bottom: 1px; color: var(--folio-muted, #7eaa94); font-size: var(--ming-font-small, 14px); font-weight: 700; }
.case-dynamic-expired { display: block; padding: 6px 7px; color: var(--folio-ink, #a2766c); border: 1px dashed rgba(168, 73, 59, 0.3); background: var(--folio-card, rgba(92, 34, 28, 0.12)); font-size: var(--ming-font-small, 14px); line-height: 1.45; }

.case-contact-list article { display: grid; grid-template-columns: 60px minmax(0, 1fr) minmax(105px, 0.42fr); gap: 9px; align-items: center; padding: 8px; border: 1px solid rgba(185, 150, 82, 0.14); background: var(--folio-card, rgba(0,0,0,0.18)); }
.case-contact-list article > i { width: 32px; height: 32px; display: grid; place-items: center; color: var(--folio-ink, #dcc27d); border: 1px solid rgba(184, 149, 78, 0.36); border-radius: 50%; font-family: var(--font-brush); font-size: 17px; font-style: normal; }
.case-contact-list article > figure { width: 60px; height: 74px; overflow: hidden; margin: 0; border: 1px solid rgba(190, 154, 82, 0.42); border-radius: 2px 2px 11px 2px; background: #080d0d; box-shadow: 0 7px 18px rgba(0, 0, 0, 0.28); }
.case-contact-list article > figure img { width: 100%; height: 100%; object-fit: cover; object-position: 50% 22%; }
.case-contact-list article > div > span { color: var(--folio-muted, #977c4c); font-size: var(--ming-font-small, 14px); }
.case-contact-list article > div > strong { display: block; color: var(--folio-ink, #e0d5be); font-size: var(--ming-font-small, 14px); }
.case-contact-safety { display: flex; flex-wrap: wrap; gap: 3px; margin-top: 3px; }
.case-contact-safety b,
.case-contact-safety i,
.case-contact-safety em { padding: 1px 4px; color: var(--folio-muted, #8d9f92); border: 1px solid rgba(105, 154, 133, 0.2); background: var(--folio-card, rgba(24, 62, 50, 0.13)); font-size: var(--ming-font-small, 14px); font-style: normal; font-weight: 500; }
.case-contact-safety.status-threatened b,
.case-contact-safety.status-missing b,
.case-contact-safety.status-detained b,
.case-contact-safety.status-dead b { color: var(--folio-danger, #ca7b6d); border-color: var(--folio-rule, rgba(177, 75, 61, 0.34)); background: var(--folio-danger-surface, rgba(102, 37, 30, 0.16)); }
.case-contact-list article p { margin: 2px 0 0; color: var(--folio-muted, #9b9280); font-size: var(--ming-font-body, 16px); line-height: 1.35; }
.case-contact-list article small { color: var(--folio-muted, #807867); font-size: var(--ming-font-small, 14px); }
.case-contact-actions { display: grid; gap: 4px; }
.case-contact-pressure { display: grid; gap: 3px; padding: 8px 9px; border: 1px solid rgba(185, 144, 71, 0.3); border-left: 3px solid #a07c3f; background: var(--folio-card, #17150f); }
.case-contact-pressure.level-critical { border-color: var(--folio-rule, rgba(181, 76, 62, 0.4)); border-left-color: var(--folio-rule, #af4c40); background: var(--folio-card, #1b1110); }
.case-contact-pressure.relief-active { border-color: var(--folio-rule, rgba(91, 145, 120, 0.4)); border-left-color: var(--folio-rule, #65957f); background: var(--folio-card, #101916); }
.case-contact-pressure b { color: var(--folio-ink, #cdb070); font-size: var(--ming-font-small, 14px); line-height: 1.4; }
.case-contact-pressure.level-critical b { color: var(--folio-ink, #db897b); }
.case-contact-pressure.relief-active b { color: var(--folio-ink, #9bc4af); }
.case-contact-pressure span,
.case-contact-pressure small { color: var(--folio-muted, #aa9d8b) !important; font-size: var(--ming-font-small, 14px); line-height: 1.55; }
.case-contact-pressure small { color: var(--folio-muted, #8eaa9b) !important; }
.case-contact-list .system-action-seed { min-height: 44px; }
.case-contact-actions > button:not(.system-action-seed) { min-height: 44px; color: var(--folio-ink, #cbb57d); border: 1px solid rgba(189, 151, 76, 0.3); background: var(--folio-card, rgba(91, 66, 27, 0.12)); font-size: var(--ming-font-small, 14px); cursor: pointer; }

.case-relation-panel > div { display: grid; gap: 8px; margin-top: 10px; }
.case-relation-panel article { display: grid; grid-template-columns: 82px minmax(0, 1fr) 32px; align-items: center; gap: 8px; }
.case-relation-panel article span { color: var(--folio-muted, #b9ad95); font-size: var(--ming-font-small, 14px); }
.case-relation-panel article i { height: 5px; overflow: hidden; background: var(--folio-card, rgba(255,255,255,0.06)); }
.case-relation-panel article i b { display: block; height: 100%; background: var(--folio-card, linear-gradient(90deg, #91483e, #c1a15d 50%, #6e9f89)); }
.case-relation-panel article strong { color: var(--folio-ink, #cbb271); font-size: var(--ming-font-small, 14px); text-align: right; }
.case-relation-panel > p { margin: 12px 0 0; padding: 9px; color: var(--folio-muted, #8e8675); border-left: 2px solid rgba(165, 69, 56, 0.62); background: var(--folio-card, rgba(102, 38, 31, 0.12)); font-size: var(--ming-font-body, 16px); line-height: 1.5; }

@media (min-width: 1080px) and (min-height: 680px) {
  .jinyi-campaign .character-state-card { grid-template-rows: none; grid-auto-rows: auto; overflow: visible; }
  .jinyi-campaign .system-dock { grid-template-rows: 49px 38px minmax(0, 1fr); }
  .jinyi-campaign .system-detail { overflow-y: auto; }
}

@media (max-width: 760px) {
  .modal-backdrop:has(.jinyi-start-modal) {
    align-items: start;
    padding: 0;
    overflow-y: auto;
    background: rgba(2, 6, 6, 0.96);
    -webkit-backdrop-filter: none;
    backdrop-filter: none;
  }
  .jinyi-start-modal {
    width: 100%;
    min-height: 100dvh;
    max-height: none;
    padding: 22px 14px calc(90px + env(safe-area-inset-bottom));
    border: 0;
    background:
      linear-gradient(180deg, rgba(8, 12, 13, 0.92), rgba(8, 12, 13, 0.995) 250px),
      url('/assets/art/jinyi/jinyi-rain-ledger-keyart-v2.png') 66% top / auto 320px no-repeat,
      #080d0e;
    box-shadow: none;
  }
  .jinyi-start-modal h2 { font-size: 34px; }
  .jinyi-start-modal > p { font-size: var(--ming-font-body, 16px); line-height: 1.6; }
  .jinyi-start-modal .modal-record { grid-template-columns: 1fr 1fr; }
  .jinyi-start-modal .modal-record > div { min-height: 50px; }
  .jinyi-start-modal .modal-record > div:last-child { grid-column: 1 / -1; }
  .jinyi-role-picker { grid-template-columns: 1fr; padding: 9px; }
  .jinyi-role-picker-heading { align-items: flex-start; flex-direction: column; gap: 2px; }
  .jinyi-role-picker-grid { grid-template-columns: 1fr 1fr; }
  .jinyi-role-choice { min-height: 58px; }
  .jinyi-role-choice.custom { grid-column: 1 / -1; }
  .jinyi-role-choice.custom .jinyi-role-choice-copy { grid-template-columns: 1fr; }
  .jinyi-role-detail { border-top: 1px solid rgba(185, 149, 79, 0.2); border-left-width: 2px; }
  .jinyi-custom-role-editor { grid-template-columns: 1fr; padding: 10px; }
  .jinyi-custom-role-editor > header h3 { font-size: 24px; }
  .jinyi-custom-presets > div { grid-template-columns: 1fr 1fr; }
  .jinyi-custom-presets button { min-height: 44px; }
  .jinyi-custom-portraits > div { grid-template-columns: 1fr 1fr; }
  .jinyi-custom-portrait-choice { min-height: 40px; }
  .jinyi-custom-identity-row,
  .jinyi-custom-two-column,
  .jinyi-custom-two-column.compact { grid-template-columns: 1fr; }
  .jinyi-custom-field input,
  .jinyi-custom-field select { min-height: 40px; font-size: var(--ming-font-body, 16px); }
  .jinyi-custom-field textarea { min-height: 64px; font-size: var(--ming-font-body, 16px); }
  .jinyi-custom-boundary { grid-template-columns: 1fr; }
  .jinyi-start-modal .modal-actions { flex-direction: column-reverse; }
  .jinyi-start-modal .modal-actions {
    bottom: 0;
    width: 100%;
    flex-direction: row;
    gap: 7px;
    padding: 9px 10px calc(9px + env(safe-area-inset-bottom));
    border-right: 0;
    border-bottom: 0;
    border-left: 0;
  }
  .jinyi-start-modal .modal-actions button { width: auto; min-width: 0; flex: 0.75; }
  .jinyi-start-modal .modal-actions button.primary { flex: 1.25; }

  .case-world-strip { grid-template-columns: 1fr 1fr; }
  .case-world-strip > div:nth-child(4) { border-right: 0; }
  .world-strip > .case-pressure-strip { grid-column: 1 / -1; border-bottom: 0; }
  .case-pressure-strip small { font-size: var(--ming-font-small, 14px); }
  .case-pressure-strip b { font-size: 16px; }
  .character-profile-note { align-items: flex-start; flex-direction: column; gap: 2px; }
  .jinyi-campaign .system-groups { min-width: 0; }
  .case-evidence-columns { grid-template-columns: 1fr; }
  .system-focus-body .case-evidence-record { grid-template-columns: 96px minmax(0, 1fr) !important; gap: 9px; padding: 9px; }
  .system-focus-body .case-evidence-art { width: 96px; min-height: 112px; }
  .case-contact-list article { grid-template-columns: 60px minmax(0, 1fr); }
  .case-contact-actions { grid-column: 1 / -1; }
  .case-contact-pressure { padding: 10px; }
  .case-contact-pressure b,
  .case-contact-pressure span,
  .case-contact-pressure small { font-size: var(--ming-font-small, 14px); }
  .case-closing-pressure-warning b,
  .case-closing-pressure-warning span { font-size: var(--ming-font-small, 14px); }
  .case-contact-list .system-action-seed { grid-column: auto; }
  .case-dynamic-ledger button { min-height: 44px; }
  .case-dynamic-meta { grid-template-columns: 1fr; }
  .case-historical-access > header { align-items: flex-start; flex-direction: column; }
  .case-historical-card { grid-template-columns: 78px minmax(0, 1fr); gap: 8px; }
  .case-historical-portrait { width: 78px; min-height: 118px; }
  .case-historical-portrait img { min-height: 118px; }
  .case-historical-card > aside > button { min-height: 44px; font-size: var(--ming-font-small, 14px); }
  .case-operation-state { grid-template-columns: 1fr; }
  .case-guidance-milestones > div { grid-template-columns: 1fr 1fr; }
  .case-guidance-next > div,
  .case-guidance-routes > div { grid-template-columns: 1fr; }
  .case-threat-list,
  .case-threat-card dl { grid-template-columns: 1fr; }
  .case-threat-priority > header { align-items: flex-start; flex-direction: column; gap: 2px; }
  .case-threat-priority-list { grid-template-columns: 1fr; }
  .case-threat-pressure-chain-list { grid-template-columns: 1fr; }
  .case-threat-pressure-chain > header { align-items: flex-start; flex-direction: column; gap: 2px; }
  .case-threat-pressure-choices { grid-template-columns: 1fr; }
  .case-threat-history-list { grid-template-columns: 1fr; }
  .case-threat-history > header { align-items: flex-start; flex-direction: column; gap: 2px; }
  .case-threat-history-list footer { grid-template-columns: auto 1fr; }
  .case-threat-history-list footer small { grid-column: 1 / -1; text-align: left; }
  .case-threat-card:last-child:nth-child(odd) { grid-column: auto; }
  .case-threat-panel > header { align-items: flex-start; flex-direction: column; }
  .case-threat-card > button,
  .system-focus-body .case-threat-card > button { min-height: 44px; font-size: var(--ming-font-small, 14px); }
  .case-vigil-time,
  .case-vigil-focuses { grid-template-columns: 1fr; }
  .case-vigil-threat-warning > header { align-items: flex-start; flex-direction: column; }
  .case-vigil-threat-warning article { grid-template-columns: 1fr; }
  .case-vigil-focus > button { min-height: 44px; font-size: var(--ming-font-small, 14px); }
  .case-guidance-routes article:last-child:nth-child(odd) { grid-column: auto; }
  .case-guidance-next button { min-height: 44px; font-size: var(--ming-font-small, 14px); }
  .case-operation-state button,
  .case-failure-pursuit button,
  .case-role-method button,
  .case-evidence-actions button,
  .case-closing-options article button,
  .case-route-chapter button,
  .case-contact-actions > button:not(.system-action-seed) { min-height: 44px; font-size: var(--ming-font-small, 14px); }
  .case-route-chapter { grid-template-columns: 1fr; }
  .case-failure-plan,
  .case-failure-cost { grid-template-columns: 1fr; }
  .case-failure-ledger { grid-template-columns: 1fr 1fr; }
  .case-role-method-ledger { grid-template-columns: 1fr; }
  .case-route-chapter-art { min-height: 112px; background-position: var(--route-focal, center 38%); }
  .case-route-chapters > header { align-items: flex-start; flex-direction: column; }
  .case-route-chapters > header small { max-width: none; text-align: left; }
  .case-closing-options article { grid-template-columns: 84px minmax(0, 1fr); }
  .case-closing-options article button { grid-column: 1 / -1; }
  .case-ending-checklist { grid-template-columns: 1fr; }
  .case-ending-checklist span { font-size: var(--ming-font-small, 14px); }
  .case-closing-art { width: 84px; height: 63px; }
  .case-ending-art { height: 150px; }
  .case-metric-grid { grid-template-columns: 1fr; }
  .case-route-ledger > div { grid-template-columns: 70px minmax(0, 1fr) 28px; }
}

/* V0.35 · 主菜单篇章分流与锦衣行人物选择 */
.app-shell[data-origin-chapter="jinyi"] .route-rail {
  border-right-color: rgba(111, 157, 146, 0.28);
  background:
    linear-gradient(180deg, rgba(20, 34, 34, 0.86), rgba(8, 15, 16, 0.62)),
    #0b1010;
}

.app-shell[data-origin-chapter="jinyi"] .rail-heading span,
.app-shell[data-origin-chapter="jinyi"] .rail-note b { color: #acc9bd; }

.app-shell[data-origin-chapter="jinyi"] .route-button {
  min-height: 76px;
  border-color: rgba(111, 157, 146, 0.18);
  background: linear-gradient(115deg, rgba(42, 75, 69, 0.25), rgba(8, 13, 14, 0.64));
}

.app-shell[data-origin-chapter="jinyi"] .route-button.active {
  border-color: rgba(121, 171, 158, 0.54);
  background: linear-gradient(110deg, rgba(50, 89, 81, 0.5), rgba(75, 48, 31, 0.18));
  box-shadow: inset 3px 0 #76a697, 0 10px 28px rgba(0, 0, 0, 0.2);
}

.app-shell[data-origin-chapter="jinyi"] .route-icon {
  color: #b9d0c5;
  border-color: rgba(123, 172, 159, 0.4);
}

.jinyi-method-tabs {
  grid-template-columns: minmax(0, 0.92fr) minmax(280px, 1.08fr);
  border-color: var(--folio-rule, rgba(116, 159, 150, 0.32));
  background: var(--folio-card, linear-gradient(90deg, rgba(17, 31, 31, 0.94), rgba(12, 20, 21, 0.84)));
}

.jinyi-method-tabs .method-tab { border-right-color: var(--folio-rule, rgba(116, 159, 150, 0.24)); }
.jinyi-method-tabs .method-tab.active { background: var(--folio-selected-surface, linear-gradient(180deg, rgba(49, 85, 78, 0.3), rgba(14, 25, 25, 0.76))); }

.jinyi-method-status {
  min-width: 0;
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: 10px;
  padding: 7px 13px;
  color: var(--folio-ink, #aebdac);
}

.jinyi-method-status > i {
  width: 30px;
  height: 30px;
  flex: 0 0 30px;
  display: grid;
  place-items: center;
  color: var(--folio-ink, #d3b67a);
  border: 1px solid rgba(189, 150, 76, 0.42);
  border-radius: 50%;
  background: var(--folio-card, rgba(77, 43, 28, 0.3));
  font-family: var(--font-brush);
  font-size: 17px;
  font-style: normal;
}

.jinyi-method-status > span { min-width: 0; display: flex; flex-direction: column; align-items: flex-end; }
.jinyi-method-status strong { color: var(--folio-ink, #d9c69c); font-size: var(--ming-font-small, 14px); letter-spacing: 0.12em; }
.jinyi-method-status small { margin-top: 2px; color: var(--folio-muted, #789189); font-size: var(--ming-font-small, 14px); letter-spacing: 0.04em; }

.app-shell[data-origin-chapter="jinyi"] .origin-hero {
  border-color: rgba(111, 157, 146, 0.34);
  box-shadow: inset 0 0 0 1px rgba(199, 167, 104, 0.04), 0 18px 48px rgba(0, 0, 0, 0.24);
}

.app-shell[data-origin-chapter="jinyi"] .dossier {
  border-left-color: rgba(111, 157, 146, 0.25);
  background: linear-gradient(180deg, rgba(17, 29, 28, 0.88), rgba(10, 15, 15, 0.76));
}

.start-button.jinyi-character-choice {
  border-color: var(--folio-rule, rgba(119, 169, 156, 0.54));
  background: var(--folio-card, linear-gradient(105deg, rgba(45, 83, 76, 0.72), rgba(101, 57, 37, 0.44)));
  box-shadow: inset 3px 0 rgba(115, 166, 152, 0.82), 0 12px 28px rgba(0, 0, 0, 0.24);
}

.jinyi-role-picker-heading > div { min-width: 0; display: flex; align-items: baseline; gap: 10px; }
.jinyi-role-picker-heading span { font-size: var(--ming-font-small, 14px); }
.jinyi-role-picker-heading b { color: var(--folio-ink, #839b91); font-size: var(--ming-font-small, 14px); font-weight: 650; letter-spacing: 0.05em; }

.jinyi-role-choice {
  position: relative;
  min-height: 76px;
  grid-template-columns: 54px minmax(0, 1fr);
  padding: 5px 26px 5px 6px;
}

.jinyi-role-choice > figure { width: 54px; height: 64px; border-radius: 2px 2px 9px 2px; }
.jinyi-role-choice small { font-size: 8.5px; }
.jinyi-role-choice strong { font-size: var(--ming-font-small, 14px); }
.jinyi-role-choice em { font-size: 8.5px; }
.jinyi-role-choice-state { position: absolute; top: 5px; right: 5px; color: var(--folio-ink, #766b59); font-size: 7px; font-style: normal; letter-spacing: 0.06em; }
.jinyi-role-choice.selected .jinyi-role-choice-state { color: var(--folio-ink, #a9cfbd); }

.jinyi-role-choice.custom { min-height: 76px; }
.jinyi-role-choice.custom > figure { width: 54px; height: 52px; }

@media (max-width: 760px) {
  .app-shell[data-origin-chapter="jinyi"] .route-list { overflow: visible; }
  .app-shell[data-origin-chapter="jinyi"] .route-button { width: 100%; min-height: 48px; }

  .jinyi-method-tabs { grid-template-columns: minmax(0, 1fr) auto; }
  .jinyi-method-status { padding: 5px 7px; }
  .jinyi-method-status > i { width: 27px; height: 27px; flex-basis: 27px; font-size: 15px; }
  .jinyi-method-status > span { display: none; }

  .jinyi-role-picker-heading > div { align-items: flex-start; flex-direction: column; gap: 2px; }
  .jinyi-role-choice { min-height: 72px; grid-template-columns: 48px minmax(0, 1fr); padding-right: 22px; }
  .jinyi-role-choice.custom { min-height: 76px; }
  .jinyi-role-choice > figure { width: 48px; height: 60px; }
}

/* 特殊玩法按钮改为实体墨色，避免红青双色渐变抢夺人物与场景焦点。 */
.jinyi-start-modal { animation: modal-fade 160ms ease-out; }
.main-menu-chapter-option.active { background: rgba(33, 29, 22, 0.94); }
.main-menu-shell[data-menu-chapter="jinyi"] .main-menu-chapter-option.active { background: rgba(23, 40, 37, 0.96); }

.main-menu-action { background: rgba(6, 11, 10, 0.86); }
.main-menu-action:hover,
.main-menu-action:focus-visible { background: rgba(19, 20, 16, 0.96); }
.main-menu-action.primary { background: rgba(21, 17, 14, 0.96); }
.main-menu-shell[data-menu-chapter="jinyi"] .main-menu-action.primary { background: rgba(10, 22, 20, 0.97); }

.app-shell[data-origin-chapter="jinyi"] .route-button { background: rgba(10, 18, 18, 0.94); }
.app-shell[data-origin-chapter="jinyi"] .route-button.active { background: #18302b; }
.jinyi-method-tabs .method-tab.active { background: var(--folio-selected-surface, rgba(19, 39, 35, 0.94)); }
.start-button.jinyi-character-choice { background: var(--folio-card, #1c302b); }

.jinyi-role-choice.selected { background: var(--folio-selected-surface, #17251f); }
.jinyi-role-choice.custom { background: var(--folio-card, rgba(13, 23, 21, 0.96)); }
.jinyi-custom-portrait-choice.selected {
  border-color: rgba(210, 171, 91, 0.7);
  background: #1b2d27;
  box-shadow: inset 3px 0 #a94f41, inset 0 -1px rgba(220, 182, 101, 0.32);
}
.jinyi-start-modal .modal-actions { background: var(--folio-card, rgba(8, 14, 13, 0.99)); }
.jinyi-start-modal .modal-actions .primary {
  border-left: 3px solid #9e4b3d;
  background: var(--folio-card, #273b34);
}

/* 《岭南尸疫》只开放预告面板，入口保持锁定。 */
.main-menu-chapter-option.teaser-entry {
  opacity: 0.78;
  cursor: pointer;
}

.main-menu-chapter-option.teaser-entry:hover,
.main-menu-chapter-option.teaser-entry:focus-visible {
  opacity: 1;
  color: #e2d7b9;
  border-color: rgba(145, 126, 77, 0.48);
  background: rgba(38, 38, 26, 0.88);
}

.wondrous-teaser-backdrop {
  position: fixed;
  z-index: 180;
  inset: 0;
  display: grid;
  place-items: center;
  padding: clamp(16px, 3vw, 42px);
  overflow: hidden;
  background: rgba(1, 4, 4, 0.9);
  animation: wondrous-teaser-veil-in 260ms ease-out both;
}

.wondrous-teaser-backdrop::after {
  content: '';
  position: absolute;
  inset: 0;
  background: radial-gradient(circle at 50% 42%, transparent 0 20%, rgba(1, 3, 3, 0.55) 72%), rgba(2, 5, 5, 0.34);
  pointer-events: none;
}

.wondrous-teaser-ambient {
  position: absolute;
  inset: -5%;
  width: 110%;
  height: 110%;
  object-fit: cover;
  opacity: 0.22;
  filter: blur(9px) saturate(0.62) brightness(0.64);
  animation: wondrous-teaser-ambient-drift 16s ease-in-out infinite alternate;
}

.wondrous-teaser-panel {
  position: relative;
  z-index: 1;
  width: min(1050px, 96vw);
  max-height: min(86dvh, 760px);
  display: grid;
  grid-template-columns: minmax(340px, 0.84fr) minmax(440px, 1.16fr);
  color: #ded2b9;
  border: 1px solid rgba(150, 129, 79, 0.55);
  border-left: 3px solid #86513b;
  border-radius: 3px;
  overflow: hidden;
  background: #080c0b;
  box-shadow: 0 32px 100px rgba(0, 0, 0, 0.82), inset 0 0 0 1px rgba(244, 223, 173, 0.025);
  outline: none;
  animation: wondrous-teaser-panel-open 480ms cubic-bezier(0.2, 0.78, 0.24, 1) both;
}

.wondrous-teaser-close {
  position: absolute;
  z-index: 5;
  top: 13px;
  right: 13px;
  min-width: 60px;
  min-height: 34px;
  color: #b9ad95;
  border: 1px solid rgba(186, 160, 103, 0.28);
  border-radius: 2px;
  background: rgba(5, 9, 8, 0.88);
  cursor: pointer;
}

.wondrous-teaser-close:hover,
.wondrous-teaser-close:focus-visible {
  color: #f1e2c4;
  border-color: rgba(203, 172, 107, 0.62);
  background: #171914;
}

.wondrous-teaser-poster {
  position: relative;
  min-height: min(86dvh, 760px);
  margin: 0;
  overflow: hidden;
  background: #050807;
}

.wondrous-teaser-poster::after {
  content: '';
  position: absolute;
  inset: 0;
  background: linear-gradient(90deg, transparent 64%, rgba(5, 8, 7, 0.72) 100%), linear-gradient(180deg, rgba(3, 5, 5, 0.18), transparent 46%, rgba(2, 4, 4, 0.84));
  pointer-events: none;
}

.wondrous-teaser-poster > img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center center;
  filter: saturate(0.78) contrast(1.04) brightness(0.82);
  transform: scale(1.025);
  animation: wondrous-teaser-poster-breathe 13s ease-in-out infinite alternate;
}

.wondrous-teaser-poster > i {
  position: absolute;
  z-index: 2;
  inset: -18%;
  opacity: 0.13;
  background: repeating-linear-gradient(104deg, transparent 0 13px, rgba(204, 224, 217, 0.5) 14px, transparent 15px 28px);
  animation: wondrous-teaser-rain 1.8s linear infinite;
  pointer-events: none;
}

.wondrous-teaser-poster figcaption {
  position: absolute;
  z-index: 3;
  right: 18px;
  bottom: 16px;
  left: 18px;
  display: flex;
  justify-content: space-between;
  gap: 12px;
  color: #b7aa8e;
  font-size: var(--ming-font-small, 14px);
  letter-spacing: 0.18em;
}

.wondrous-teaser-poster figcaption strong { color: #d0b77a; font-weight: 650; }

.wondrous-teaser-copy {
  min-width: 0;
  overflow-y: auto;
  padding: clamp(34px, 4vw, 52px) clamp(28px, 4vw, 50px) 32px;
  scrollbar-color: rgba(141, 116, 67, 0.52) rgba(9, 13, 11, 0.9);
}

.wondrous-teaser-copy > header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 14px;
  padding-right: 58px;
  color: #b6a46f;
  font-size: var(--ming-font-small, 14px);
  font-weight: 700;
  letter-spacing: 0.2em;
}

.wondrous-teaser-copy > header b {
  flex: 0 0 auto;
  padding: 5px 8px;
  color: #d3b892;
  border: 1px solid rgba(136, 78, 58, 0.62);
  background: #2a1713;
  font-size: var(--ming-font-small, 14px);
  letter-spacing: 0.1em;
}

.wondrous-teaser-copy h2 {
  margin: 16px 0 0;
  color: #eee2c7;
  font-family: var(--font-brush);
  font-size: clamp(48px, 5vw, 70px);
  font-weight: 500;
  line-height: 0.96;
  letter-spacing: 0.08em;
}

.wondrous-teaser-copy h2 span { color: #b47b60; }

.wondrous-teaser-copy > p {
  margin: 20px 0 0;
  color: #bcb19c;
  font-size: var(--ming-font-body, 16px);
  line-height: 1.82;
}

.wondrous-teaser-tags {
  display: flex;
  flex-wrap: wrap;
  gap: 7px;
  margin-top: 18px;
}

.wondrous-teaser-tags span {
  padding: 5px 8px;
  color: #9fa38b;
  border: 1px solid rgba(135, 137, 98, 0.3);
  background: #101611;
  font-size: var(--ming-font-small, 14px);
  letter-spacing: 0.08em;
}

.wondrous-teaser-beats {
  display: grid;
  gap: 8px;
  margin-top: 22px;
}

.wondrous-teaser-beats article {
  display: grid;
  grid-template-columns: 34px minmax(0, 1fr);
  gap: 12px;
  padding: 11px 12px;
  border: 1px solid rgba(174, 151, 99, 0.16);
  border-left: 2px solid rgba(128, 78, 57, 0.68);
  background: #0c110e;
  opacity: 0;
  animation: wondrous-teaser-beat-in 420ms ease-out forwards;
}

.wondrous-teaser-beats article:nth-child(1) { animation-delay: 260ms; }
.wondrous-teaser-beats article:nth-child(2) { animation-delay: 340ms; }
.wondrous-teaser-beats article:nth-child(3) { animation-delay: 420ms; }

.wondrous-teaser-beats article > i {
  width: 31px;
  height: 31px;
  display: grid;
  place-items: center;
  color: #c1a96f;
  border: 1px solid rgba(167, 137, 78, 0.34);
  border-radius: 50%;
  font-family: var(--font-brush);
  font-size: 15px;
  font-style: normal;
}

.wondrous-teaser-beats strong { color: #ddcfb2; font-size: var(--ming-font-small, 14px); letter-spacing: 0.08em; }
.wondrous-teaser-beats p { margin: 3px 0 0; color: #8f897b; font-size: var(--ming-font-body, 16px); line-height: 1.62; }

.wondrous-teaser-copy > footer {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 178px;
  align-items: center;
  gap: 16px;
  margin-top: 22px;
  padding-top: 16px;
  border-top: 1px solid rgba(174, 151, 99, 0.18);
}

.wondrous-teaser-copy > footer > div { display: flex; flex-direction: column; gap: 3px; }
.wondrous-teaser-copy > footer > div span { color: #b9a777; font-size: var(--ming-font-small, 14px); letter-spacing: 0.16em; }
.wondrous-teaser-copy > footer > div small { color: #756f64; font-size: var(--ming-font-small, 14px); }

.wondrous-teaser-copy > footer > button {
  min-height: 48px;
  display: grid;
  grid-template-columns: 34px minmax(0, 1fr);
  align-items: center;
  gap: 9px;
  padding: 6px 10px;
  color: #8e8676;
  border: 1px solid rgba(139, 116, 75, 0.28);
  background: #111510;
  text-align: left;
  cursor: not-allowed;
}

.wondrous-teaser-copy > footer > button i {
  width: 31px;
  height: 31px;
  display: grid;
  place-items: center;
  color: #a89262;
  border: 1px solid rgba(151, 122, 71, 0.3);
  border-radius: 50%;
  font-family: var(--font-brush);
  font-size: 14px;
  font-style: normal;
}

.wondrous-teaser-copy > footer > button span { display: flex; flex-direction: column; }
.wondrous-teaser-copy > footer > button strong { font-size: var(--ming-font-small, 14px); letter-spacing: 0.12em; }
.wondrous-teaser-copy > footer > button small { margin-top: 2px; color: #6f6a5e; font-size: var(--ming-font-small, 14px); }

@keyframes wondrous-teaser-veil-in { from { opacity: 0; } to { opacity: 1; } }
@keyframes wondrous-teaser-panel-open {
  from { opacity: 0; transform: translateY(22px) scale(0.975); clip-path: inset(8% 3%); }
  to { opacity: 1; transform: translateY(0) scale(1); clip-path: inset(0); }
}
@keyframes wondrous-teaser-ambient-drift {
  from { transform: scale(1.04) translate3d(-0.6%, 0, 0); }
  to { transform: scale(1.09) translate3d(0.8%, -0.5%, 0); }
}
@keyframes wondrous-teaser-poster-breathe { from { transform: scale(1.025); } to { transform: scale(1.065); } }
@keyframes wondrous-teaser-rain { from { transform: translate3d(-2%, -4%, 0); } to { transform: translate3d(2%, 5%, 0); } }
@keyframes wondrous-teaser-beat-in { from { opacity: 0; transform: translateX(14px); } to { opacity: 1; transform: translateX(0); } }

@media (max-width: 700px) {
  .wondrous-teaser-backdrop { padding: 10px; }
  .wondrous-teaser-panel { width: 100%; max-height: 94svh; display: block; overflow-y: auto; }
  .wondrous-teaser-poster { min-height: 0; height: min(39svh, 330px); }
  .wondrous-teaser-poster::after { background: linear-gradient(180deg, rgba(3, 5, 5, 0.12), transparent 42%, rgba(2, 4, 4, 0.9)); }
  .wondrous-teaser-poster > img { object-position: center 43%; }
  .wondrous-teaser-copy { overflow: visible; padding: 24px 19px 20px; }
  .wondrous-teaser-copy > header { padding-right: 0; }
  .wondrous-teaser-copy > header b { margin-right: 58px; }
  .wondrous-teaser-copy h2 { margin-top: 12px; font-size: 46px; }
  .wondrous-teaser-copy > p { margin-top: 14px; font-size: var(--ming-font-body, 16px); line-height: 1.68; }
  .wondrous-teaser-tags { margin-top: 13px; }
  .wondrous-teaser-beats { margin-top: 16px; }
  .wondrous-teaser-copy > footer { grid-template-columns: 1fr; }
  .wondrous-teaser-copy > footer > button { width: 100%; }
}

@media (prefers-reduced-motion: reduce) {
  .wondrous-teaser-backdrop,
  .wondrous-teaser-panel,
  .wondrous-teaser-ambient,
  .wondrous-teaser-poster > img,
  .wondrous-teaser-poster > i,
  .wondrous-teaser-beats article { animation: none; }
  .wondrous-teaser-beats article { opacity: 1; }
}

/* 案卷中的主行动由天机推演，但按钮本身保持纸墨、印章式的扁平层次。 */
button.case-ai-action,
.case-role-method > button.case-ai-action,
.case-failure-pursuit > button.case-ai-action,
.case-historical-card > aside > button.case-ai-action,
.case-closing-options article button.case-ai-action,
.case-evidence-actions button.case-ai-action,
.case-task button.case-ai-action,
.case-route-chapter button.case-ai-action {
  min-height: 44px;
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  align-items: center;
  gap: 10px;
  padding: 7px 10px;
  color: var(--folio-ink, #d9c99e);
  border: 1px solid rgba(181, 145, 75, 0.42);
  border-left: 3px solid #a88443;
  background: var(--folio-card, #121713);
  box-shadow: inset 0 0 0 1px rgba(230, 210, 163, 0.025);
  text-align: left;
  cursor: pointer;
}

button.case-ai-action > span { min-width: 0; font-size: var(--ming-font-small, 14px); font-weight: 700; letter-spacing: 0.04em; }
button.case-ai-action > small { color: var(--folio-muted, #78998a); font-size: var(--ming-font-small, 14px); font-weight: 400; white-space: nowrap; letter-spacing: 0.05em; }
.case-dynamic-ledger button.case-ai-action { min-height: 44px; }

button.case-ai-action:hover,
button.case-ai-action:focus-visible {
  color: var(--folio-ink, #f0dfb5);
  border-color: var(--folio-rule, rgba(210, 171, 88, 0.7));
  border-left-color: var(--folio-rule, #d0a858);
  background: var(--folio-hover, #182019);
  outline: none;
}

button.case-ai-action.danger,
.case-closing-options article button.case-ai-action.danger,
.case-evidence-actions button.case-ai-action.danger {
  color: var(--folio-danger, #dca79d);
  border-color: var(--folio-rule, rgba(175, 77, 63, 0.5));
  border-left-color: var(--folio-rule, #a74a3c);
  background: var(--folio-danger-surface, #1d1312);
}

button.case-ai-action.danger > small { color: var(--folio-danger, #a97870); }
button.case-ai-action:disabled { color: var(--folio-ink, #777266); border-color: var(--folio-rule, rgba(112, 104, 86, 0.26)); border-left-color: var(--folio-rule, #5f5b50); background: var(--folio-card, #101310); opacity: 0.58; cursor: not-allowed; }
button.case-ai-action:disabled > small { color: var(--folio-muted, #666b64); }

.jinyi-timeline-backdrop {
  position: fixed;
  inset: 0;
  z-index: 1120;
  display: grid;
  place-items: center;
  padding: 24px;
  overflow-y: auto;
  background: rgba(3, 5, 5, 0.91);
  backdrop-filter: blur(10px);
  animation: veil-in 220ms ease both;
}

.jinyi-timeline-backdrop:focus { outline: none; }

.jinyi-timeline-milestone {
  width: min(1440px, 96vw);
  min-height: min(800px, 92svh);
  max-height: 94svh;
  display: grid;
  grid-template-columns: minmax(0, 1.18fr) minmax(430px, 0.82fr);
  overflow: hidden;
  border: 1px solid rgba(191, 154, 79, 0.54);
  background: var(--folio-card, #090d0c);
  box-shadow: inset 4px 0 #9c483b, 0 34px 110px rgba(0, 0, 0, 0.76);
  animation: modal-rise 300ms ease both;
}

.tone-xinwang_enthroned .jinyi-timeline-milestone { box-shadow: inset 4px 0 #a58445, 0 34px 110px rgba(0, 0, 0, 0.76); }
.tone-wei_exile .jinyi-timeline-milestone { box-shadow: inset 4px 0 #687d72, 0 34px 110px rgba(0, 0, 0, 0.78); }

.jinyi-timeline-milestone > figure {
  position: relative;
  min-width: 0;
  min-height: min(800px, 92svh);
  margin: 0;
  overflow: hidden;
  background: #070a09;
}

.jinyi-timeline-milestone > figure::after {
  content: '';
  position: absolute;
  inset: 0;
  background: linear-gradient(90deg, rgba(4, 6, 5, 0.05) 35%, rgba(9, 13, 12, 0.96) 100%), linear-gradient(0deg, rgba(4, 6, 5, 0.84), transparent 44%);
  pointer-events: none;
}

.jinyi-timeline-milestone > figure img {
  width: 100%;
  height: 100%;
  display: block;
  object-fit: cover;
  object-position: 64% center;
  filter: saturate(0.68) contrast(1.1) brightness(0.72);
  animation: jinyi-timeline-image-in 1.1s ease-out both;
}

@keyframes jinyi-timeline-image-in {
  from { opacity: 0.58; transform: scale(1.025); }
  to { opacity: 1; transform: scale(1); }
}

.jinyi-timeline-milestone figcaption {
  position: absolute;
  z-index: 1;
  right: 6%;
  bottom: 6%;
  left: 7%;
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 16px;
  color: #d0b16c;
  font-size: var(--ming-font-small, 14px);
  letter-spacing: 0.18em;
}

.jinyi-timeline-milestone figcaption small { color: #a8aaa0; font-size: var(--ming-font-small, 14px); letter-spacing: 0.06em; }

.jinyi-timeline-copy {
  min-width: 0;
  display: flex;
  flex-direction: column;
  gap: 18px;
  overflow-y: auto;
  padding: clamp(30px, 4vw, 64px);
  border-left: 1px solid rgba(190, 151, 76, 0.17);
  background: var(--folio-card, #0b100e);
  scrollbar-width: thin;
  scrollbar-color: rgba(190, 151, 76, 0.38) #090d0c;
}

.jinyi-timeline-copy > header > span,
.jinyi-timeline-date > span,
.jinyi-timeline-rule > span { color: var(--folio-muted, #bd9d58); font-size: var(--ming-font-small, 14px); font-weight: 750; letter-spacing: 0.2em; }
.jinyi-timeline-copy > header h2 { margin: 10px 0 12px; color: var(--folio-ink, #f0e2c1); font-family: var(--font-brush); font-size: clamp(42px, 4.4vw, 66px); font-weight: 400; line-height: 1.03; letter-spacing: 0.06em; }
.jinyi-timeline-copy > header p { margin: 0; color: var(--folio-muted, #c2b69d); font-size: var(--ming-font-body, 16px); line-height: 1.9; }

.jinyi-timeline-date {
  padding: 13px 15px;
  border: 1px solid rgba(174, 81, 63, 0.36);
  border-left: 3px solid #a44e3f;
  background: var(--folio-card, #17110f);
}
.jinyi-timeline-date b { display: block; margin: 7px 0 4px; color: var(--folio-ink, #e0c990); font-size: 14px; line-height: 1.45; }
.jinyi-timeline-date small { display: block; color: var(--folio-muted, #978e7e); font-size: var(--ming-font-small, 14px); line-height: 1.6; }

.jinyi-timeline-consequences { display: grid; gap: 7px; margin: 0; padding: 0; list-style: none; }
.jinyi-timeline-consequences li { display: grid; grid-template-columns: 40px minmax(0, 1fr); align-items: center; min-height: 48px; border: 1px solid rgba(191, 154, 79, 0.22); background: var(--folio-card, #101512); }
.jinyi-timeline-consequences span { align-self: stretch; display: grid; place-items: center; color: var(--folio-muted, #b99147); border-right: 1px solid rgba(191, 154, 79, 0.22); font-family: var(--font-brush); font-size: 17px; }
.jinyi-timeline-consequences p { margin: 0; padding: 9px 12px; color: var(--folio-muted, #aeb5a9); font-size: var(--ming-font-body, 16px); line-height: 1.6; }

.jinyi-timeline-rule { padding: 14px 16px; border: 1px solid rgba(99, 139, 118, 0.36); border-left: 3px solid #638a76; background: var(--folio-card, #101713); }
.jinyi-timeline-rule p { margin: 8px 0; color: var(--folio-muted, #c8bea5); font-size: var(--ming-font-body, 16px); line-height: 1.75; }
.jinyi-timeline-rule b { display: block; color: var(--folio-ink, #87a996); font-size: var(--ming-font-small, 14px); line-height: 1.55; }

.jinyi-timeline-copy > footer { display: grid; grid-template-columns: 1fr 1.15fr; gap: 8px; margin-top: auto; }
.jinyi-timeline-copy > footer button { min-height: 46px; padding: 9px 13px; color: var(--folio-ink, #acb9b0); border: 1px solid rgba(103, 146, 126, 0.43); background: var(--folio-card, #111815); font-size: var(--ming-font-small, 14px); font-weight: 700; cursor: pointer; }
.jinyi-timeline-copy > footer button:hover,
.jinyi-timeline-copy > footer button:focus-visible { color: var(--folio-ink, #edddb7); border-color: var(--folio-rule, rgba(203, 164, 81, 0.66)); background: var(--folio-hover, #182019); outline: none; }
.jinyi-timeline-copy > footer button.primary { color: var(--folio-ink, #ead7a5); border-color: var(--folio-rule, rgba(191, 154, 79, 0.56)); border-left: 3px solid #a88440; background: var(--folio-card, #1a1911); }

@media (min-width: 1081px) and (max-height: 760px) {
  .jinyi-timeline-copy { gap: 9px; padding: 22px 30px; }
  .jinyi-timeline-copy > header h2 { margin: 5px 0 6px; font-size: 41px; line-height: 0.98; }
  .jinyi-timeline-copy > header p { font-size: var(--ming-font-body, 16px); line-height: 1.6; }
  .jinyi-timeline-date { padding: 8px 11px; }
  .jinyi-timeline-date b { margin: 4px 0 2px; font-size: var(--ming-font-small, 14px); }
  .jinyi-timeline-date small { font-size: var(--ming-font-small, 14px); line-height: 1.45; }
  .jinyi-timeline-consequences { gap: 4px; }
  .jinyi-timeline-consequences li { min-height: 36px; }
  .jinyi-timeline-consequences p { padding: 5px 9px; font-size: var(--ming-font-body, 16px); line-height: 1.4; }
  .jinyi-timeline-consequences span { font-size: 14px; }
  .jinyi-timeline-rule { padding: 8px 11px; }
  .jinyi-timeline-rule p { margin: 4px 0; font-size: var(--ming-font-body, 16px); line-height: 1.5; }
  .jinyi-timeline-rule b { font-size: var(--ming-font-small, 14px); line-height: 1.4; }
  .jinyi-timeline-copy > footer button { min-height: 44px; }
}

.jinyi-daily-review-backdrop {
  position: fixed;
  inset: 0;
  z-index: 1100;
  display: grid;
  place-items: center;
  padding: 24px;
  overflow-y: auto;
  background: rgba(3, 6, 5, 0.88);
  backdrop-filter: blur(8px);
  animation: veil-in 220ms ease both;
}

.jinyi-daily-review {
  width: min(1320px, 96vw);
  max-height: min(92svh, 820px);
  display: grid;
  grid-template-columns: minmax(0, 1.08fr) minmax(420px, 0.92fr);
  overflow: hidden;
  border: 1px solid rgba(190, 151, 76, 0.48);
  background: var(--folio-card, #090e0c);
  box-shadow: inset 4px 0 #638a76, 0 30px 100px rgba(0, 0, 0, 0.72);
  animation: modal-rise 280ms ease both;
}

.jinyi-daily-review > figure {
  position: relative;
  min-width: 0;
  min-height: min(82svh, 720px);
  margin: 0;
  overflow: hidden;
  background: #080c0b;
}

.jinyi-daily-review > figure::after {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(90deg, rgba(4, 7, 6, 0.18), transparent 46%, rgba(7, 11, 9, 0.94)), linear-gradient(0deg, rgba(4, 7, 6, 0.9), transparent 56%);
  pointer-events: none;
}

.jinyi-daily-review > figure img {
  width: 100%;
  height: 100%;
  display: block;
  object-fit: cover;
  object-position: 62% center;
  filter: saturate(0.72) contrast(1.08) brightness(0.76);
}

.jinyi-daily-review figcaption { position: absolute; z-index: 1; right: 7%; bottom: 7%; left: 7%; }
.jinyi-daily-review figcaption span,
.jinyi-daily-review-copy > header > span,
.jinyi-daily-review-next > span { color: #b99b5c; font-size: var(--ming-font-small, 14px); letter-spacing: 0.16em; }
.jinyi-daily-review figcaption h2 { margin: 8px 0 4px; color: #eee0bd; font-family: var(--font-brush); font-size: clamp(42px, 4.6vw, 70px); font-weight: 400; line-height: 1; letter-spacing: 0.07em; text-shadow: 0 4px 20px #000; }
.jinyi-daily-review figcaption p { margin: 0; color: #9aac9f; font-size: var(--ming-font-body, 16px); line-height: 1.6; }

.jinyi-daily-review-copy {
  min-width: 0;
  display: flex;
  flex-direction: column;
  gap: 12px;
  overflow-y: auto;
  padding: clamp(24px, 3.2vw, 48px);
  border-left: 1px solid rgba(190, 151, 76, 0.16);
  background: var(--folio-card, #0c1210);
  scrollbar-width: thin;
  scrollbar-color: rgba(190, 151, 76, 0.36) rgba(7, 11, 9, 0.4);
}

.jinyi-daily-review-copy > header h3,
.jinyi-daily-review-next h3 { margin: 6px 0; color: var(--folio-ink, #e8dabc); font-size: 21px; line-height: 1.35; }
.jinyi-daily-review-copy > header p,
.jinyi-daily-review-next p { margin: 0; color: var(--folio-muted, #bdb19a); font-size: var(--ming-font-body, 16px); line-height: 1.75; }
.jinyi-daily-review-changes { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); border-top: 1px solid rgba(190, 151, 76, 0.18); border-left: 1px solid rgba(190, 151, 76, 0.18); }
.jinyi-daily-review-changes span { min-width: 0; padding: 7px 9px; color: var(--folio-muted, #9fb3a7); border-right: 1px solid rgba(190, 151, 76, 0.18); border-bottom: 1px solid rgba(190, 151, 76, 0.18); font-size: var(--ming-font-small, 14px); line-height: 1.5; }
.jinyi-daily-review-status { display: grid; grid-template-columns: 1fr 1fr; gap: 7px; }
.jinyi-daily-review-status article { min-width: 0; padding: 10px; border: 1px solid rgba(99, 138, 118, 0.32); background: var(--folio-card, #101713); }
.jinyi-daily-review-status span { display: block; color: var(--folio-muted, #8d9e94); font-size: var(--ming-font-small, 14px); letter-spacing: 0.1em; }
.jinyi-daily-review-status b { display: block; margin: 5px 0 2px; color: var(--folio-ink, #d7c69e); font-size: var(--ming-font-small, 14px); line-height: 1.45; }
.jinyi-daily-review-status small { display: block; color: var(--folio-muted, #86968d); font-size: var(--ming-font-small, 14px); line-height: 1.45; }
.jinyi-daily-review-next { padding: 11px 13px; border: 1px solid rgba(183, 144, 70, 0.34); border-left: 3px solid #a17c3d; background: var(--folio-card, #151710); }
.jinyi-daily-review-next h3 { font-size: 17px; }
.jinyi-daily-review-next p { font-size: var(--ming-font-body, 16px); }
.jinyi-daily-review-copy > footer { display: grid; grid-template-columns: 1fr 1fr; gap: 7px; margin-top: auto; }
.jinyi-daily-review-copy > footer button { min-height: 44px; padding: 8px 12px; color: var(--folio-ink, #a8b8ae); border: 1px solid rgba(99, 138, 118, 0.42); background: var(--folio-card, #111815); font-size: var(--ming-font-small, 14px); cursor: pointer; }
.jinyi-daily-review-copy > footer button:hover,
.jinyi-daily-review-copy > footer button:focus-visible { color: var(--folio-ink, #eedeb8); border-color: var(--folio-rule, rgba(204, 166, 82, 0.62)); background: var(--folio-hover, #182019); outline: none; }
.jinyi-daily-review-copy > footer button.primary { color: var(--folio-ink, #ead7a7); border-color: var(--folio-rule, rgba(190, 151, 76, 0.5)); border-left: 3px solid #a98544; background: var(--folio-card, #181912); }

.jinyi-ending-terminal {
  min-height: clamp(560px, 69vh, 760px);
  display: grid;
  grid-template-columns: minmax(0, 1.08fr) minmax(360px, 0.92fr);
  overflow: hidden;
  border: 1px solid rgba(190, 151, 76, 0.44);
  background: var(--folio-card, #090d0c);
  box-shadow: inset 4px 0 #6e927f, 0 22px 64px rgba(0, 0, 0, 0.38);
}

.jinyi-ending-terminal.tone-costly { box-shadow: inset 4px 0 #9c493c, 0 22px 64px rgba(0, 0, 0, 0.42); }
.jinyi-ending-terminal > figure { position: relative; min-width: 0; min-height: 560px; margin: 0; overflow: hidden; background: #080b0b; }
.jinyi-ending-terminal > figure::after { content: ""; position: absolute; inset: 0; background: linear-gradient(90deg, transparent 54%, rgba(9, 13, 12, 0.96)), linear-gradient(0deg, rgba(5, 8, 8, 0.92), transparent 52%); pointer-events: none; }
.jinyi-ending-terminal > figure img { width: 100%; height: 100%; display: block; object-fit: cover; filter: saturate(0.72) contrast(1.08) brightness(0.78); }
.jinyi-ending-terminal.tone-costly > figure img { filter: saturate(0.58) sepia(0.08) contrast(1.1) brightness(0.72); }
.jinyi-ending-terminal figcaption { position: absolute; z-index: 1; right: 7%; bottom: 8%; left: 8%; }
.jinyi-ending-terminal figcaption span { color: #b99b5c; font-size: var(--ming-font-small, 14px); letter-spacing: 0.2em; }
.jinyi-ending-terminal figcaption h2 { margin: 8px 0 5px; color: #eee0bd; font-family: var(--font-brush); font-size: clamp(44px, 5.5vw, 78px); font-weight: 400; line-height: 0.96; letter-spacing: 0.08em; text-shadow: 0 3px 18px #000; }
.jinyi-ending-terminal figcaption p { margin: 0; color: #9aa89d; font-size: var(--ming-font-body, 16px); letter-spacing: 0.08em; }

.jinyi-ending-terminal-copy { min-width: 0; min-height: 0; display: flex; flex-direction: column; justify-content: flex-start; gap: 16px; overflow-x: hidden; overflow-y: auto; padding: clamp(28px, 3.2vw, 52px); border-left: 1px solid rgba(190, 151, 76, 0.16); background: var(--folio-card, #0c1110); scrollbar-gutter: stable; scrollbar-width: thin; scrollbar-color: rgba(184, 147, 72, 0.46) #0b100f; }
.jinyi-ending-terminal-copy > p { margin: 0; color: var(--folio-muted, #d2c5a7); font-size: var(--ming-font-body, 16px); line-height: 1.95; }
.jinyi-ending-terminal-copy > small { color: var(--folio-muted, #8e8778); font-size: var(--ming-font-small, 14px); line-height: 1.7; }
.jinyi-ending-terminal-ledger { display: grid; gap: 7px; padding: 12px; border: 1px solid rgba(187, 150, 77, 0.22); background: var(--folio-card, #101612); }
.jinyi-ending-terminal-ledger span { display: grid; grid-template-columns: 42px minmax(0, 1fr); gap: 10px; color: var(--folio-muted, #aba28f); font-size: var(--ming-font-small, 14px); line-height: 1.55; }
.jinyi-ending-terminal-ledger b { color: var(--folio-ink, #bba05f); letter-spacing: 0.1em; }
.jinyi-ending-protagonist { min-width: 0; display: grid; grid-template-columns: 86px minmax(0, 1fr); gap: 13px; padding: 12px; border: 1px solid rgba(187, 150, 77, 0.3); border-left: 3px solid #9e7c3f; background: var(--folio-card, #121713); box-shadow: inset 0 0 0 1px rgba(107, 145, 126, 0.06); }
.jinyi-ending-protagonist-portrait { width: 86px; min-height: 112px; margin: 0; overflow: hidden; border: 1px solid rgba(199, 165, 91, 0.42); background: #090e0c; box-shadow: inset 0 0 0 3px #101612; }
.jinyi-ending-protagonist-portrait img { width: 100%; height: 100%; min-height: 112px; display: block; object-fit: cover; object-position: center 18%; filter: saturate(0.84) contrast(1.04) brightness(0.88); }
.jinyi-ending-protagonist-copy { min-width: 0; display: grid; align-content: start; gap: 8px; }
.jinyi-ending-protagonist-copy header span { display: block; color: var(--folio-muted, #b99a5c); font-size: var(--ming-font-small, 14px); font-weight: 700; letter-spacing: 0.15em; }
.jinyi-ending-protagonist-copy header h3 { margin: 3px 0 1px; color: var(--folio-ink, #eadbb6); font-family: var(--font-brush); font-size: 27px; font-weight: 400; line-height: 1; }
.jinyi-ending-protagonist-copy header small { color: var(--folio-muted, #9b9482); font-size: var(--ming-font-small, 14px); line-height: 1.4; }
.jinyi-ending-protagonist-copy > p { min-width: 0; display: flex; flex-wrap: wrap; align-items: baseline; gap: 3px 8px; margin: 0; color: var(--folio-muted, #9bad9f); font-size: var(--ming-font-body, 16px); line-height: 1.45; }
.jinyi-ending-protagonist-copy > p b { color: var(--folio-muted, #c9bc98); }
.jinyi-ending-protagonist-copy > p span { min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.jinyi-ending-protagonist-copy > p em { color: var(--folio-muted, #86aa98); font-style: normal; }
.jinyi-ending-protagonist-facts { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); border-top: 1px solid rgba(100, 139, 120, 0.22); border-left: 1px solid rgba(100, 139, 120, 0.22); }
.jinyi-ending-protagonist-facts span { min-width: 0; display: flex; align-items: baseline; justify-content: space-between; gap: 4px; padding: 5px 6px; border-right: 1px solid rgba(100, 139, 120, 0.22); border-bottom: 1px solid rgba(100, 139, 120, 0.22); }
.jinyi-ending-protagonist-facts small { color: var(--folio-muted, #75887e); font-size: var(--ming-font-small, 14px); }
.jinyi-ending-protagonist-facts b { color: var(--folio-ink, #d5c59e); font-size: var(--ming-font-small, 14px); }
.jinyi-ending-aftermath { display: grid; gap: 9px; padding-top: 2px; }
.jinyi-ending-aftermath > header { display: flex; align-items: end; justify-content: space-between; gap: 12px; padding-bottom: 7px; border-bottom: 1px solid rgba(187, 150, 77, 0.26); }
.jinyi-ending-aftermath > header div { min-width: 0; }
.jinyi-ending-aftermath > header span,
.jinyi-ending-evidence-legacy > header span { display: block; color: var(--folio-muted, #b99a5c); font-size: var(--ming-font-small, 14px); font-weight: 700; letter-spacing: 0.14em; }
.jinyi-ending-aftermath > header h3 { margin: 3px 0 0; color: var(--folio-ink, #e3d4af); font-family: var(--font-brush); font-size: 24px; font-weight: 400; line-height: 1; }
.jinyi-ending-aftermath > header small { color: var(--folio-muted, #81968a); font-size: var(--ming-font-small, 14px); line-height: 1.45; text-align: right; }
.jinyi-ending-character-fates { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 6px; }
.jinyi-ending-character-fates article { min-width: 0; padding: 8px 9px; border: 1px solid rgba(102, 145, 125, 0.26); border-left: 2px solid #607f70; background: var(--folio-card, #101713); }
.jinyi-ending-character-fates article > header { display: flex; align-items: baseline; justify-content: space-between; gap: 7px; }
.jinyi-ending-character-fates strong { min-width: 0; overflow: hidden; color: var(--folio-ink, #d9cba9); font-size: var(--ming-font-small, 14px); text-overflow: ellipsis; white-space: nowrap; }
.jinyi-ending-character-fates span { flex: 0 0 auto; color: var(--folio-muted, #91b4a3); font-size: var(--ming-font-small, 14px); }
.jinyi-ending-character-fates p { margin: 4px 0 0; color: var(--folio-muted, #afa590); font-size: var(--ming-font-body, 16px); line-height: 1.45; }
.jinyi-ending-character-fates small { display: -webkit-box; overflow: hidden; margin-top: 3px; color: var(--folio-muted, #818d85); font-size: var(--ming-font-small, 14px); line-height: 1.45; -webkit-box-orient: vertical; -webkit-line-clamp: 2; }
.jinyi-ending-evidence-legacy { display: grid; gap: 6px; }
.jinyi-ending-evidence-legacy > header { display: flex; align-items: baseline; justify-content: space-between; gap: 8px; }
.jinyi-ending-evidence-legacy > header small { color: var(--folio-muted, #84988c); font-size: var(--ming-font-small, 14px); }
.jinyi-ending-evidence-legacy > div { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 5px; }
.jinyi-ending-evidence-legacy article { min-width: 0; display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 2px 7px; padding: 7px 8px; border: 1px solid rgba(187, 150, 77, 0.19); background: var(--folio-card, #111410); }
.jinyi-ending-evidence-legacy strong { min-width: 0; overflow: hidden; color: var(--folio-ink, #cab98f); font-size: var(--ming-font-small, 14px); text-overflow: ellipsis; white-space: nowrap; }
.jinyi-ending-evidence-legacy span { color: var(--folio-muted, #a99872); font-size: var(--ming-font-small, 14px); white-space: nowrap; }
.jinyi-ending-evidence-legacy small { grid-column: 1 / -1; color: var(--folio-muted, #7d8981); font-size: var(--ming-font-small, 14px); }
.jinyi-ending-terminal-facts { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); border-top: 1px solid rgba(186, 149, 76, 0.2); border-left: 1px solid rgba(186, 149, 76, 0.2); }
.jinyi-ending-terminal-facts span { display: flex; align-items: baseline; justify-content: space-between; gap: 8px; padding: 8px 9px; color: var(--folio-muted, #7e8e84); border-right: 1px solid rgba(186, 149, 76, 0.2); border-bottom: 1px solid rgba(186, 149, 76, 0.2); font-size: var(--ming-font-small, 14px); }
.jinyi-ending-terminal-facts b { color: var(--folio-ink, #dbc99f); font-size: var(--ming-font-small, 14px); }
.jinyi-ending-terminal-actions { display: grid; grid-template-columns: 1fr 1fr; gap: 7px; margin-top: 4px; }
.jinyi-ending-terminal-actions button { min-height: 44px; padding: 7px 10px; color: var(--folio-ink, #a9b8ae); border: 1px solid rgba(104, 151, 130, 0.34); background: var(--folio-card, #111815); cursor: pointer; }
.jinyi-ending-terminal-actions button:hover,
.jinyi-ending-terminal-actions button:focus-visible { color: var(--folio-ink, #e8d8b5); border-color: var(--folio-rule, rgba(201, 163, 83, 0.56)); background: var(--folio-hover, #18201a); outline: none; }
.jinyi-ending-terminal-actions button.primary { grid-column: 1 / -1; color: var(--folio-ink, #e1cc94); border-color: var(--folio-rule, rgba(190, 151, 76, 0.5)); border-left: 3px solid #aa8645; background: var(--folio-card, #171813); }
.jinyi-ending-terminal.tone-costly .jinyi-ending-terminal-actions button.primary { color: var(--folio-danger, #dda69b); border-color: var(--folio-rule, rgba(171, 73, 59, 0.5)); border-left-color: var(--folio-rule, #a74a3c); background: var(--folio-danger-surface, #1c1312); }

.start-modal:focus { outline: none; }

.actor-action-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 6px;
}

.actor-dialogue-panel {
  padding: 8px;
  border: 1px solid rgba(190, 151, 76, 0.2);
  border-top-color: var(--folio-rule, rgba(190, 151, 76, 0.42));
  background: var(--folio-card, #0d1411);
  box-shadow: inset 3px 0 rgba(91, 137, 114, 0.45);
}

.actor-dialogue-panel > header {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 8px;
  margin: 0 2px 7px;
}

.actor-dialogue-panel > header span { color: var(--folio-muted, #d1b66f); font-size: var(--ming-font-small, 14px); font-weight: 780; letter-spacing: 0.12em; }
.actor-dialogue-panel > header small { color: var(--folio-muted, #91aa9d); font-size: var(--ming-font-small, 14px); }

.actor-action-grid .system-action-seed {
  min-height: 54px;
  display: flex;
  align-items: flex-start;
  justify-content: center;
  gap: 3px;
  padding: 8px 10px;
  color: var(--folio-ink, #d9c99f);
  border: 1px solid rgba(190, 151, 76, 0.32);
  border-left: 3px solid #638a76;
  border-radius: 2px;
  background: var(--folio-card, #101511);
}

.actor-action-grid .system-action-seed span { font-size: var(--ming-font-small, 14px); }
.actor-action-grid .system-action-seed small { color: var(--folio-muted, #91aa9d); font-size: var(--ming-font-small, 14px); line-height: 1.35; text-align: left; }
.actor-action-grid .system-action-seed:hover,
.actor-action-grid .system-action-seed:focus-visible {
  color: var(--folio-ink, #f0dfb5);
  border-color: var(--folio-rule, rgba(210, 171, 88, 0.66));
  border-left-color: var(--folio-rule, #c9a253);
  background: var(--folio-hover, #182019);
}

.actor-hostile-panel {
  display: grid;
  gap: 8px;
  margin-top: 8px;
  padding: 10px;
  border: 1px solid rgba(145, 67, 55, 0.42);
  border-left: 3px solid rgba(169, 74, 58, 0.78);
  background: linear-gradient(135deg, rgba(47, 20, 17, 0.46), rgba(10, 14, 12, 0.96));
}
.actor-hostile-panel > header { display: flex; align-items: end; justify-content: space-between; gap: 12px; }
.actor-hostile-panel > header div { min-width: 0; }
.actor-hostile-panel > header span { color: #d48f78; font-size: var(--ming-font-small, 14px); font-weight: 780; letter-spacing: 0.16em; }
.actor-hostile-panel > header h4 { margin: 2px 0 0; color: #ead7b8; font-size: 14px; }
.actor-hostile-panel > header > b { flex: 0 0 auto; color: #a4bbaa; font-size: var(--ming-font-small, 14px); }
.actor-hostile-panel > p { margin: 0; color: #aa9d88; font-size: var(--ming-font-body, 16px); line-height: 1.55; }
.actor-hostile-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 7px; }
.actor-hostile-grid button {
  min-width: 0;
  min-height: 60px;
  display: grid;
  grid-template-columns: 32px minmax(0, 1fr);
  align-items: center;
  gap: 8px;
  padding: 8px;
  color: #d9c6a5;
  border: 1px solid rgba(157, 83, 67, 0.4);
  background: rgba(31, 19, 16, 0.76);
  font: inherit;
  text-align: left;
  cursor: pointer;
}
.actor-hostile-grid button i {
  width: 30px;
  height: 30px;
  display: grid;
  place-items: center;
  color: #e0a88e;
  border: 1px solid rgba(194, 103, 80, 0.58);
  border-radius: 50%;
  font-style: normal;
  font-weight: 800;
}
.actor-hostile-grid button span { min-width: 0; display: grid; gap: 3px; }
.actor-hostile-grid button b { font-size: var(--ming-font-small, 14px); }
.actor-hostile-grid button small { color: #9a8d7a; font-size: var(--ming-font-small, 14px); line-height: 1.35; white-space: normal; }
.actor-hostile-grid button:not(:disabled):hover,
.actor-hostile-grid button:not(:disabled):focus-visible { color: #f1ddbd; border-color: #bc705b; background: #311d18; outline: none; }
.actor-hostile-grid button:disabled { opacity: 0.46; cursor: not-allowed; }
.actor-hostile-panel > footer { color: #798e82; font-size: var(--ming-font-small, 14px); line-height: 1.45; }

.combat-choice-readout {
  display: grid;
  gap: 5px;
  margin-top: 8px;
  padding: 8px 10px;
  color: #c8d8cf;
  border: 1px solid rgba(91, 139, 120, 0.48);
  border-left: 3px solid #6b9c86;
  border-radius: 7px;
  background: linear-gradient(110deg, rgba(19, 45, 38, 0.88), rgba(17, 29, 27, 0.58));
  text-align: left;
}
.combat-choice-readout > span { display: flex; align-items: center; gap: 7px; flex-wrap: wrap; }
.combat-choice-readout i { display: grid; width: 23px; height: 23px; place-items: center; color: #e4d4ad; border: 1px solid rgba(197, 160, 105, 0.58); border-radius: 50%; font-size: var(--ming-font-small, 14px); font-style: normal; }
.combat-choice-readout b { color: #dfecdf; font-size: var(--ming-font-small, 14px); line-height: 1.4; }
.combat-choice-readout small { color: #aebfb4; font-size: var(--ming-font-small, 14px); line-height: 1.5; white-space: normal; }
.combat-choice-readout em { padding: 2px 6px; color: #ffd8c5; border: 1px solid rgba(202, 93, 62, 0.62); border-radius: 999px; background: rgba(100, 28, 19, 0.55); font-size: var(--ming-font-small, 14px); font-style: normal; font-weight: 780; }
.combat-choice-readout.lethal { border-color: rgba(188, 80, 54, 0.7); border-left-color: #c4543a; background: linear-gradient(110deg, rgba(76, 27, 21, 0.88), rgba(31, 24, 22, 0.66)); }

.combat-resolution-ledger {
  position: relative;
  isolation: isolate;
  display: grid;
  gap: 12px;
  margin-top: 12px;
  padding: 15px;
  overflow: hidden;
  color: #d8ded7;
  border: 1px solid rgba(168, 139, 84, 0.54);
  border-radius: 4px;
  background:
    radial-gradient(circle at 50% 0%, rgba(130, 89, 38, 0.2), transparent 42%),
    linear-gradient(135deg, rgba(20, 37, 31, 0.98), rgba(7, 13, 11, 0.98));
  box-shadow: inset 0 0 0 1px rgba(255, 240, 195, 0.035), 0 18px 44px rgba(0, 0, 0, 0.34);
}
.combat-resolution-ledger::before,
.combat-resolution-ledger::after {
  content: '';
  position: absolute;
  z-index: -1;
  pointer-events: none;
}
.combat-resolution-ledger::before { inset: 7px; border: 1px solid rgba(226, 199, 139, 0.08); }
.combat-resolution-ledger::after { width: 190px; height: 190px; top: -136px; left: calc(50% - 95px); border: 1px solid rgba(208, 172, 97, 0.16); border-radius: 50%; }
.combat-resolution-ledger.lethal {
  border-color: rgba(186, 82, 61, 0.76);
  background:
    radial-gradient(circle at 50% 0%, rgba(151, 48, 31, 0.23), transparent 44%),
    linear-gradient(135deg, rgba(55, 24, 20, 0.98), rgba(12, 12, 10, 0.98));
}
.combat-resolution-heading { display: flex; align-items: end; justify-content: space-between; gap: 12px; padding: 0 2px 10px; border-bottom: 1px solid rgba(220, 190, 128, 0.16); }
.combat-resolution-heading > div { display: grid; gap: 2px; }
.combat-resolution-heading span { color: #9db7a9; font-size: var(--ming-font-small, 14px); font-weight: 780; letter-spacing: 0.18em; }
.combat-resolution-heading h4 { margin: 0; color: #f0e3c7; font-family: var(--font-display); font-size: 18px; line-height: 1.45; letter-spacing: 0.05em; }
.combat-resolution-heading > b { padding: 4px 10px; color: #e1bd79; border: 1px solid rgba(210, 169, 91, 0.36); background: rgba(81, 57, 24, 0.32); font-size: var(--ming-font-small, 14px); white-space: nowrap; }
.combat-resolution-ledger.lethal .combat-resolution-heading > b { color: #f0aa92; border-color: rgba(200, 91, 65, 0.46); background: rgba(103, 34, 24, 0.42); }

.combat-narrative {
  display: grid;
  gap: 7px;
  padding: 10px 12px 11px;
  border-left: 3px solid rgba(207, 169, 91, 0.72);
  background:
    linear-gradient(90deg, rgba(115, 78, 30, 0.19), transparent 62%),
    rgba(2, 8, 6, 0.42);
}
.combat-narrative > header { display: flex; align-items: baseline; justify-content: space-between; gap: 10px; flex-wrap: wrap; }
.combat-narrative > header b { color: #e5c77f; font-family: var(--font-display); font-size: 14px; letter-spacing: 0.13em; }
.combat-narrative > header small { color: #91aa9d; font-size: var(--ming-font-small, 14px); line-height: 1.45; }
.combat-narrative > p { margin: 0; color: #e3ddcf; font-size: var(--ming-font-body, 16px); line-height: 1.78; letter-spacing: 0.025em; white-space: pre-wrap; }

.combat-closure-ledger {
  display: grid;
  grid-template-columns: minmax(0, 0.72fr) minmax(0, 1.08fr) minmax(0, 1.3fr);
  gap: 7px;
}
.combat-closure-ledger > div {
  min-width: 0;
  display: grid;
  grid-template-columns: 30px minmax(0, 1fr);
  align-items: center;
  gap: 8px;
  padding: 8px 9px;
  border: 1px solid rgba(114, 151, 133, 0.24);
  background: rgba(6, 14, 11, 0.62);
}
.combat-closure-ledger > div > i {
  width: 28px;
  height: 28px;
  display: grid;
  place-items: center;
  color: #cdb36f;
  border: 1px solid rgba(200, 162, 81, 0.36);
  border-radius: 50%;
  font-family: var(--font-brush);
  font-size: 17px;
  font-style: normal;
}
.combat-closure-ledger > div > span { min-width: 0; display: grid; gap: 2px; }
.combat-closure-ledger small { color: #80978b; font-size: var(--ming-font-small, 14px); line-height: 1.35; }
.combat-closure-ledger b { color: #ded2b5; font-size: var(--ming-font-small, 14px); line-height: 1.45; }
.combat-closure-ledger em { color: #899b91; font-size: var(--ming-font-small, 14px); font-style: normal; line-height: 1.4; }
.combat-closure-ledger .survival.down { border-color: rgba(191, 125, 66, 0.42); background: rgba(65, 40, 18, 0.38); }
.combat-closure-ledger .kill-confirmation.none { border-color: rgba(82, 147, 117, 0.38); background: rgba(19, 58, 43, 0.38); }
.combat-closure-ledger .kill-confirmation.none > i { color: #a9d3be; border-color: rgba(102, 175, 142, 0.48); }
.combat-closure-ledger .kill-confirmation.confirmed,
.combat-closure-ledger .kill-confirmation.player-killed { border-color: rgba(196, 75, 57, 0.58); background: linear-gradient(110deg, rgba(96, 31, 23, 0.64), rgba(35, 15, 13, 0.54)); }
.combat-closure-ledger .kill-confirmation.confirmed > i,
.combat-closure-ledger .kill-confirmation.player-killed > i { color: #f0a48f; border-color: rgba(214, 91, 69, 0.62); background: rgba(92, 25, 19, 0.44); }
.combat-closure-ledger .kill-confirmation.confirmed b,
.combat-closure-ledger .kill-confirmation.player-killed b { color: #f0b09e; }

.combat-resolution-actors {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 82px minmax(0, 1fr);
  align-items: stretch;
  gap: 9px;
}
.combatant-result {
  min-width: 0;
  display: grid;
  gap: 10px;
  padding: 11px;
  border: 1px solid rgba(121, 155, 137, 0.22);
  background: linear-gradient(145deg, rgba(27, 51, 41, 0.6), rgba(4, 10, 8, 0.72));
  box-shadow: inset 3px 0 rgba(111, 157, 135, 0.38);
}
.combatant-result.deceased,
.combatant-result.incapacitated { border-color: rgba(177, 78, 59, 0.36); background: rgba(64, 25, 20, 0.58); box-shadow: inset 3px 0 rgba(190, 72, 52, 0.58); }
.combatant-result > header { min-width: 0; display: grid; grid-template-columns: 32px minmax(0, 1fr) auto; align-items: center; gap: 8px; }
.combatant-result > header > i {
  width: 30px;
  height: 30px;
  display: grid;
  place-items: center;
  color: #dfc17c;
  border: 1px solid rgba(207, 169, 91, 0.42);
  border-radius: 50%;
  font-family: var(--font-brush);
  font-size: 18px;
  font-style: normal;
}
.combatant-result > header > div { min-width: 0; display: grid; gap: 1px; }
.combatant-result > header small { color: #81998d; font-size: var(--ming-font-small, 14px); font-weight: 680; }
.combatant-result > header b { overflow: hidden; color: #eee0c3; font-size: 15px; text-overflow: ellipsis; white-space: nowrap; }
.combatant-result > header em { padding: 2px 6px; color: #e49a7f; border: 1px solid rgba(194, 94, 72, 0.36); background: rgba(95, 34, 25, 0.3); font-size: var(--ming-font-small, 14px); font-style: normal; font-weight: 780; white-space: nowrap; }
.combatant-meters { display: grid; gap: 6px; }
.combatant-meters > span { min-width: 0; display: grid; grid-template-columns: 34px minmax(48px, 1fr) 24px; align-items: center; gap: 6px; color: inherit; letter-spacing: 0; }
.combatant-meters small { color: #93a79b; font-size: var(--ming-font-small, 14px); }
.combatant-meters > span > i { height: 5px; overflow: hidden; background: rgba(255, 255, 255, 0.075); }
.combatant-meters > span > i > b { height: 100%; display: block; background: linear-gradient(90deg, #477c65, #91bda7); }
.combatant-meters > span.stamina > i > b { background: linear-gradient(90deg, #7d6735, #d0ad64); }
.combatant-meters > span.injury > i > b { background: linear-gradient(90deg, #7d3025, #d56e55); }
.combatant-meters strong { color: #d8cbae; font-size: var(--ming-font-small, 14px); font-weight: 760; text-align: right; }

.combat-clash-seal { display: grid; place-content: center; justify-items: center; gap: 3px; text-align: center; }
.combat-clash-seal > i {
  width: 42px;
  height: 42px;
  display: grid;
  place-items: center;
  color: #ebd29a;
  border: 1px solid rgba(218, 177, 94, 0.56);
  border-radius: 50%;
  background: radial-gradient(circle, rgba(131, 86, 30, 0.68), rgba(25, 20, 12, 0.88));
  box-shadow: 0 0 0 4px rgba(203, 158, 74, 0.06), 0 8px 18px rgba(0, 0, 0, 0.38);
  font-family: var(--font-brush);
  font-size: 25px;
  font-style: normal;
}
.combat-clash-seal > span { color: #9dad9f; font-size: var(--ming-font-small, 14px); letter-spacing: 0; white-space: nowrap; }
.combat-clash-seal > b { color: #d9b977; font-size: var(--ming-font-small, 14px); line-height: 1.3; }

.combat-consequence-ledger { display: grid; grid-template-columns: minmax(0, 0.72fr) minmax(0, 1.28fr); gap: 8px; }
.combat-consequence-ledger > div { min-width: 0; display: grid; grid-template-columns: 32px minmax(0, 1fr); align-items: center; gap: 8px; padding: 9px 10px; border-top: 1px solid rgba(221, 192, 131, 0.16); background: rgba(0, 0, 0, 0.14); }
.combat-consequence-ledger > div > i { width: 28px; height: 28px; display: grid; place-items: center; color: #d5b66f; border: 1px solid rgba(203, 163, 81, 0.38); border-radius: 50%; font-family: var(--font-brush); font-size: 17px; font-style: normal; }
.combat-consequence-ledger > div > span { min-width: 0; display: grid; gap: 2px; color: inherit; letter-spacing: 0; }
.combat-consequence-ledger small { color: #8fa699; font-size: var(--ming-font-small, 14px); line-height: 1.4; }
.combat-consequence-ledger b { color: #e3d5b8; font-size: var(--ming-font-small, 14px); line-height: 1.5; }
.local-offense-readout { border-left: 2px solid rgba(186, 135, 81, 0.52); }

.turn-change-disclosure { margin-top: 9px; border: 1px solid rgba(183, 151, 91, 0.22); background: rgba(4, 9, 7, 0.56); }
.turn-change-disclosure > summary {
  min-height: 52px;
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  align-items: center;
  gap: 12px;
  padding: 8px 11px;
  color: #d7c8a8;
  background: linear-gradient(90deg, rgba(82, 60, 25, 0.18), rgba(16, 30, 24, 0.5));
  cursor: pointer;
  list-style: none;
}
.turn-change-disclosure > summary::-webkit-details-marker { display: none; }
.turn-change-disclosure > summary > span { min-width: 0; display: grid; gap: 2px; color: inherit; letter-spacing: 0; }
.turn-change-disclosure > summary b { color: #d8bd7d; font-size: var(--ming-font-small, 14px); }
.turn-change-disclosure > summary small { color: #8da095; font-size: var(--ming-font-small, 14px); line-height: 1.45; }
.turn-change-disclosure > summary em { padding: 4px 8px; color: #b9cabc; border: 1px solid rgba(116, 157, 137, 0.3); font-size: var(--ming-font-small, 14px); font-style: normal; white-space: nowrap; }
.turn-change-disclosure[open] > summary em { color: #e1c882; border-color: rgba(201, 164, 87, 0.42); }
.turn-change-disclosure > .turn-change-ledger { margin-top: 0; border: 0; border-top: 1px solid rgba(195, 164, 102, 0.16); overflow: visible; }

.turn-transition.revealed.has-personal-combat {
  --combat-action-rail-height: 78px;
  place-items: stretch center;
  overflow: hidden;
}
.turn-transition.revealed.has-personal-combat::after {
  content: '';
  position: absolute;
  right: 0;
  bottom: 0;
  left: 0;
  z-index: 6;
  height: var(--combat-action-rail-height);
  border-top: 1px solid rgba(211, 179, 112, 0.22);
  background: linear-gradient(180deg, rgba(4, 8, 6, 0.82), rgba(3, 6, 5, 0.98) 42%);
  box-shadow: 0 -14px 30px rgba(0, 0, 0, 0.3);
  pointer-events: none;
}
.turn-transition.revealed.has-personal-combat .turn-transition-copy {
  width: min(900px, calc(100% - 32px));
  height: calc(100dvh - var(--combat-action-rail-height));
  max-height: calc(100dvh - var(--combat-action-rail-height));
  margin: 0 auto;
  padding: 12px 24px 24px;
  overflow-x: hidden;
  overflow-y: auto;
  overscroll-behavior: contain;
  scrollbar-gutter: stable;
}
.turn-transition.revealed.has-personal-combat .turn-outcome-mark { display: none; }
.turn-transition.revealed.has-personal-combat .turn-transition-copy h2 { margin: 2px 0; font-size: clamp(34px, 4vw, 48px); }
.turn-transition.revealed.has-personal-combat .turn-time-ledger,
.turn-transition.revealed.has-personal-combat .turn-action-summary,
.turn-transition.revealed.has-personal-combat .turn-transition-copy blockquote { width: min(820px, 100%); }
.turn-transition.revealed.has-personal-combat .turn-time-ledger { margin-top: 5px; }
.turn-transition.revealed.has-personal-combat .turn-action-summary { margin-top: 7px; }
.turn-transition.revealed.has-personal-combat .turn-transition-copy blockquote { gap: 4px; margin-top: 8px; padding: 11px 14px; }
.turn-transition.revealed.has-personal-combat .turn-result-continue {
  position: absolute;
  left: 50%;
  bottom: max(14px, env(safe-area-inset-bottom));
  z-index: 8;
  width: min(300px, calc(100vw - 32px));
  margin: 0;
  transform: translateX(-50%);
  box-shadow: 0 10px 26px rgba(0, 0, 0, 0.58), inset 0 1px rgba(255, 255, 255, 0.08);
}
.turn-transition.revealed.has-personal-combat .turn-result-continue:hover,
.turn-transition.revealed.has-personal-combat .turn-result-continue:focus-visible { transform: translate(-50%, -1px); }
.turn-transition.revealed.has-personal-combat.player-killed::after { border-top-color: rgba(185, 69, 52, 0.42); background: linear-gradient(180deg, rgba(25, 7, 5, 0.84), rgba(8, 3, 3, 0.99) 42%); }
.turn-transition.revealed.has-personal-combat.player-killed .turn-result-continue { color: #f0c0b2; border-color: rgba(202, 84, 63, 0.62); background: linear-gradient(180deg, rgba(81, 32, 25, 0.98), rgba(38, 15, 12, 0.98)); }

.robbery-loot-backdrop {
  position: fixed;
  inset: 0;
  z-index: 1200;
  display: grid;
  place-items: center;
  padding: 22px;
  overflow: hidden;
  color: #e9dfc7;
  background: radial-gradient(circle at 20% 18%, rgba(107, 53, 29, 0.22), transparent 38%), rgba(2, 6, 5, 0.94);
  backdrop-filter: blur(6px);
}
.robbery-loot-backdrop:focus { outline: none; }
.robbery-loot-panel {
  width: min(1040px, 96vw);
  max-height: min(820px, calc(100dvh - 44px));
  display: grid;
  grid-template-rows: auto minmax(0, 1fr);
  overflow: hidden;
  border: 1px solid rgba(198, 157, 77, 0.56);
  background: #09100c;
  box-shadow: 0 28px 90px rgba(0, 0, 0, 0.78), inset 0 0 0 1px rgba(231, 202, 135, 0.04);
}
.robbery-loot-panel > header {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 58px;
  align-items: center;
  gap: 18px;
  padding: 20px 24px;
  border-bottom: 1px solid rgba(191, 149, 72, 0.34);
  background: linear-gradient(100deg, rgba(78, 42, 23, 0.58), rgba(18, 28, 22, 0.94));
}
.robbery-loot-panel > header span { color: #cba45f; font-size: var(--ming-font-small, 14px); font-weight: 800; letter-spacing: 0.16em; }
.robbery-loot-panel > header h2 { margin: 4px 0 5px; color: #f0dfb6; font-family: var(--font-brush); font-size: clamp(36px, 5vw, 54px); font-weight: 400; line-height: 1; letter-spacing: 0.08em; }
.robbery-loot-panel > header p { margin: 0; color: #b8b09d; font-size: var(--ming-font-body, 16px); line-height: 1.62; }
.robbery-loot-panel > header > i { width: 54px; height: 54px; display: grid; place-items: center; color: #e2c27b; border: 1px solid rgba(211, 169, 84, 0.6); border-radius: 50%; background: rgba(79, 44, 24, 0.52); font-family: var(--font-brush); font-size: 31px; font-style: normal; }
.robbery-loot-body { min-height: 0; display: grid; grid-template-columns: minmax(240px, 0.78fr) minmax(0, 1.55fr); }
.robbery-loot-target { min-width: 0; display: grid; align-content: start; gap: 15px; padding: 22px; border-right: 1px solid rgba(178, 139, 68, 0.24); background: linear-gradient(180deg, #141713, #0b100d); }
.robbery-loot-target > figure { position: relative; min-height: 250px; margin: 0; overflow: hidden; border: 1px solid rgba(181, 140, 69, 0.34); background: #0a0d0b; }
.robbery-loot-target > figure > img { width: 100%; height: 100%; min-height: 250px; display: block; object-fit: cover; object-position: center 22%; filter: saturate(0.78) contrast(1.04); }
.robbery-loot-target > figure > i { min-height: 250px; display: grid; place-items: center; color: #9d8352; font-family: var(--font-brush); font-size: 72px; font-style: normal; }
.robbery-loot-target figcaption { position: absolute; right: 0; bottom: 0; left: 0; padding: 52px 15px 14px; background: linear-gradient(transparent, rgba(3, 6, 5, 0.96)); }
.robbery-loot-target figcaption span { color: #ba9d62; font-size: var(--ming-font-small, 14px); }
.robbery-loot-target figcaption h3 { margin: 3px 0; color: #f0e2c5; font-size: 24px; }
.robbery-loot-target figcaption b { color: #dc9176; font-size: var(--ming-font-small, 14px); }
.robbery-loot-target > p { margin: 0; padding: 13px 14px; color: #c7bcaa; border-left: 3px solid #a96548; background: rgba(59, 33, 23, 0.48); font-size: var(--ming-font-body, 16px); line-height: 1.7; }
.robbery-loot-target > p strong { color: #e3bb75; }
.robbery-loot-target > small { color: #83978c; font-size: var(--ming-font-small, 14px); line-height: 1.5; }
.robbery-loot-ledger { min-height: 0; display: grid; grid-template-rows: auto minmax(0, 1fr) auto auto; padding: 18px 20px 0; }
.robbery-loot-ledger > header { min-width: 0; display: flex; align-items: center; justify-content: space-between; gap: 16px; padding: 0 2px 13px; }
.robbery-loot-ledger > header span { color: #a88850; font-size: var(--ming-font-small, 14px); font-weight: 800; letter-spacing: 0.13em; }
.robbery-loot-ledger > header h3 { margin: 3px 0 0; color: #e3d5b7; font-size: 20px; }
.robbery-loot-ledger > header > b { color: #d2b36f; font-size: var(--ming-font-small, 14px); white-space: nowrap; }
.robbery-loot-items { min-height: 0; display: grid; align-content: start; gap: 8px; padding: 2px 4px 10px 2px; overflow-y: auto; overscroll-behavior: contain; scrollbar-gutter: stable; }
.robbery-loot-item { min-width: 0; display: grid; grid-template-columns: 60px minmax(0, 1fr) auto; align-items: center; gap: 11px; padding: 9px 10px; border: 1px solid rgba(119, 151, 133, 0.22); background: rgba(12, 24, 18, 0.78); box-shadow: inset 3px 0 rgba(96, 139, 116, 0.32); }
.robbery-loot-item.selected { border-color: rgba(201, 160, 79, 0.52); background: linear-gradient(100deg, rgba(65, 45, 23, 0.7), rgba(15, 31, 23, 0.82)); box-shadow: inset 3px 0 #b98b42; }
.robbery-loot-item > figure { position: relative; width: 56px; height: 56px; margin: 0; padding: 5px; border: 1px solid rgba(179, 148, 85, 0.28); background: #070c09; }
.robbery-loot-item > figure img { width: 100%; height: 100%; object-fit: contain; }
.robbery-loot-item > figure b { position: absolute; right: -4px; bottom: -4px; padding: 2px 4px; color: #edbd91; border: 1px solid rgba(198, 102, 70, 0.54); background: #48251b; font-size: var(--ming-font-small, 14px); white-space: nowrap; }
.robbery-loot-item-copy { min-width: 0; }
.robbery-loot-item-copy header { display: flex; align-items: baseline; gap: 8px; }
.robbery-loot-item-copy span { color: #829b8d; font-size: var(--ming-font-small, 14px); }
.robbery-loot-item-copy h3 { margin: 0; color: #eadbbd; font-size: 16px; }
.robbery-loot-item-copy p { margin: 5px 0 0; color: #9fa89e; font-size: var(--ming-font-body, 16px); line-height: 1.5; }
.robbery-loot-item-controls { display: grid; grid-template-columns: 44px 50px 44px; align-items: center; gap: 5px; }
.robbery-loot-item-controls button { min-width: 44px; min-height: 44px; padding: 0; color: #e5cf9c; border: 1px solid rgba(190, 152, 75, 0.44); background: #19251e; font-size: 22px; cursor: pointer; }
.robbery-loot-item-controls button:disabled { color: #5f6962; border-color: rgba(102, 121, 110, 0.2); background: #0c120e; cursor: not-allowed; }
.robbery-loot-item-controls > b { color: #f0dcae; font-size: 18px; text-align: center; }
.robbery-loot-item-controls > b small { display: block; color: #86978d; font-size: var(--ming-font-small, 14px); font-weight: 500; }
.robbery-loot-cash { border-color: rgba(211, 166, 74, 0.48); background: radial-gradient(circle at 13% 50%, rgba(145, 93, 33, 0.24), transparent 24%), linear-gradient(100deg, rgba(57, 39, 18, 0.82), rgba(11, 25, 18, 0.84)); box-shadow: inset 3px 0 #bd8a34, inset 0 0 22px rgba(187, 131, 45, 0.05); }
.robbery-loot-cash.selected { border-color: rgba(231, 184, 88, 0.68); box-shadow: inset 3px 0 #e0ac4b, 0 0 18px rgba(191, 133, 43, 0.08); }
.robbery-loot-cash > figure { padding: 2px; border-color: rgba(217, 170, 78, 0.54); background: radial-gradient(circle, rgba(120, 76, 27, 0.3), #070b08 68%); }
.robbery-loot-cash > figure img { filter: drop-shadow(0 4px 6px rgba(0, 0, 0, 0.7)) saturate(0.92); }
.robbery-loot-cash .robbery-loot-item-copy h3 { color: #f0d48d; font-size: 18px; }
.robbery-loot-cash .robbery-loot-item-copy span { color: #b89550; font-weight: 800; }
.robbery-loot-cash-controls { display: grid; grid-template-columns: 50px 44px minmax(66px, auto) 44px 50px 56px; align-items: center; gap: 5px; }
.robbery-loot-cash-controls button { min-width: 44px; min-height: 44px; padding: 0 5px; color: #efd99f; border: 1px solid rgba(205, 163, 77, 0.48); background: #2a2416; font-size: var(--ming-font-small, 14px); font-weight: 800; white-space: nowrap; cursor: pointer; }
.robbery-loot-cash-controls button:disabled { color: #6d6a5c; border-color: rgba(120, 108, 72, 0.24); background: #12140f; cursor: not-allowed; }
.robbery-loot-cash-controls > b { min-width: 0; color: #f1d58e; font-size: 18px; text-align: center; }
.robbery-loot-cash-controls > b small { display: block; color: #9d9479; font-size: var(--ming-font-small, 14px); font-weight: 500; white-space: nowrap; }
.robbery-loot-empty { min-height: 210px; display: grid; place-items: center; align-content: center; gap: 8px; padding: 24px; border: 1px dashed rgba(152, 124, 67, 0.3); color: #8e9a92; text-align: center; }
.robbery-loot-empty i { width: 50px; height: 50px; display: grid; place-items: center; border: 1px solid rgba(168, 138, 76, 0.38); border-radius: 50%; font-family: var(--font-brush); font-size: 24px; font-style: normal; }
.robbery-loot-empty h3, .robbery-loot-empty p { margin: 0; }
.robbery-loot-empty h3 { color: #c8b994; font-size: 17px; }
.robbery-loot-empty p { max-width: 380px; font-size: var(--ming-font-body, 16px); line-height: 1.6; }
.robbery-loot-summary { display: grid; grid-template-columns: auto minmax(90px, 1fr) auto; align-items: center; gap: 11px; padding: 12px 13px; border-top: 1px solid rgba(185, 149, 76, 0.24); background: #0d1712; }
.robbery-loot-summary > div { display: grid; gap: 2px; }
.robbery-loot-summary > div span { color: #849a8d; font-size: var(--ming-font-small, 14px); }
.robbery-loot-summary > div b { color: #dac79f; font-size: var(--ming-font-small, 14px); white-space: nowrap; }
.robbery-loot-summary > i { height: 7px; overflow: hidden; border: 1px solid rgba(111, 150, 130, 0.3); background: #050907; }
.robbery-loot-summary > i > b { height: 100%; display: block; background: linear-gradient(90deg, #47775f, #c49e52); }
.robbery-loot-summary > p { grid-column: 1 / -1; display: flex; align-items: baseline; justify-content: space-between; gap: 12px; margin: 0; }
.robbery-loot-summary > p strong { color: #ddbc76; font-size: var(--ming-font-body, 16px); }
.robbery-loot-summary > p small { color: #8da097; font-size: var(--ming-font-small, 14px); text-align: right; }
.robbery-loot-summary.blocked { border-color: rgba(194, 84, 60, 0.5); background: rgba(55, 24, 19, 0.74); }
.robbery-loot-summary.blocked > i > b { background: #b44f3d; }
.robbery-loot-actions { position: sticky; z-index: 2; bottom: 0; display: grid; grid-template-columns: minmax(0, 0.82fr) minmax(0, 1.18fr); gap: 9px; padding: 12px 0 calc(14px + env(safe-area-inset-bottom)); border-top: 1px solid rgba(194, 157, 82, 0.26); background: linear-gradient(180deg, rgba(9, 16, 12, 0.92), #09100c 28%); }
.robbery-loot-actions button { min-height: 54px; display: grid; align-content: center; gap: 3px; padding: 8px 13px; color: #c9c0ad; border: 1px solid rgba(139, 158, 145, 0.3); background: #111a15; text-align: left; cursor: pointer; }
.robbery-loot-actions button.primary { color: #f0dfb6; border-color: rgba(207, 169, 87, 0.62); background: linear-gradient(115deg, #5e3e20, #31513f); }
.robbery-loot-actions button:disabled { opacity: 0.5; cursor: not-allowed; }
.robbery-loot-actions b { font-size: 14px; }
.robbery-loot-actions small { color: #8fa096; font-size: var(--ming-font-small, 14px); line-height: 1.4; }

@media (max-width: 900px) and (min-width: 761px) {
  .robbery-loot-target { padding: 17px; }
  .robbery-loot-ledger { padding-right: 15px; padding-left: 15px; }
  .robbery-loot-cash { grid-template-columns: 54px minmax(0, 1fr); }
  .robbery-loot-cash-controls { grid-column: 1 / -1; grid-template-columns: 50px 44px minmax(66px, 1fr) 44px 50px 56px; }
}

@media (max-width: 760px) {
  .robbery-loot-backdrop { display: block; padding: 0; overflow-y: auto; }
  .robbery-loot-panel { width: 100%; max-height: none; min-height: 100dvh; overflow: visible; border: 0; }
  .robbery-loot-panel > header { grid-template-columns: minmax(0, 1fr) 48px; padding: 18px 16px; }
  .robbery-loot-panel > header h2 { font-size: 39px; }
  .robbery-loot-panel > header > i { width: 46px; height: 46px; font-size: 27px; }
  .robbery-loot-body { grid-template-columns: 1fr; }
  .robbery-loot-target { grid-template-columns: 112px minmax(0, 1fr); gap: 12px; padding: 14px 16px; border-right: 0; border-bottom: 1px solid rgba(178, 139, 68, 0.24); }
  .robbery-loot-target > figure, .robbery-loot-target > figure > img, .robbery-loot-target > figure > i { min-height: 128px; height: 128px; }
  .robbery-loot-target figcaption { padding: 34px 8px 8px; }
  .robbery-loot-target figcaption span, .robbery-loot-target figcaption b { font-size: var(--ming-font-small, 14px); }
  .robbery-loot-target figcaption h3 { font-size: 17px; }
  .robbery-loot-target > p { align-self: stretch; font-size: var(--ming-font-body, 16px); line-height: 1.62; }
  .robbery-loot-target > small { grid-column: 1 / -1; }
  .robbery-loot-ledger { display: block; padding: 16px 14px 0; }
  .robbery-loot-items { overflow: visible; }
  .robbery-loot-item { grid-template-columns: 52px minmax(0, 1fr); }
  .robbery-loot-item > figure { width: 48px; height: 48px; }
  .robbery-loot-item-controls { grid-column: 1 / -1; grid-template-columns: 1fr 64px 1fr; }
  .robbery-loot-item-controls button { width: 100%; }
  .robbery-loot-cash-controls { grid-column: 1 / -1; grid-template-columns: 50px 44px minmax(52px, 1fr) 44px 50px; }
  .robbery-loot-cash-controls button { width: 100%; padding: 0 3px; }
  .robbery-loot-cash-controls button:last-child { grid-column: 1 / -1; }
  .robbery-loot-summary { grid-template-columns: auto minmax(54px, 1fr) auto; margin-top: 4px; }
  .robbery-loot-summary > p { align-items: flex-start; flex-direction: column; gap: 4px; }
  .robbery-loot-summary > p small { text-align: left; }
  .robbery-loot-actions { position: static; margin-top: 0; grid-template-columns: 1fr 1fr; }
  .robbery-loot-actions button { min-height: 60px; }
  .character-state-card .money-ledger :is(.money-ledger-cash, .money-ledger-silver) > span small { display: block; font-size: var(--ming-font-small, 14px); white-space: normal; }
}
.actor-hostile-grid button.lethal { border-color: rgba(180, 73, 52, 0.66); background: rgba(66, 24, 19, 0.72); }
.actor-hostile-grid button em { color: #f0a188; font-size: var(--ming-font-small, 14px); font-style: normal; font-weight: 800; }
.free-action-actor-target.lethal { border-color: rgba(187, 77, 54, 0.68); background: rgba(70, 25, 19, 0.74); }
.actor-hostile-panel > header span,
.actor-hostile-panel > header > b,
.actor-hostile-grid button small,
.actor-hostile-panel > footer { font-size: var(--ming-font-small, 14px); }
.actor-hostile-panel > p { font-size: var(--ming-font-body, 16px); }

@media (max-width: 760px) {
  .actor-hostile-panel > header { align-items: flex-start; flex-direction: column; gap: 4px; }
  .actor-hostile-grid { grid-template-columns: 1fr; }
  .combat-resolution-ledger > header { align-items: flex-start; flex-direction: column; }
  .combat-resolution-actors,
  .combat-resolution-ledger > footer { grid-template-columns: 1fr; }
  .turn-transition.revealed.has-personal-combat { --combat-action-rail-height: 76px; }
  .turn-transition.revealed.has-personal-combat .turn-transition-copy { width: calc(100% - 14px); margin: 0 auto; padding: 9px 7px 18px; }
  .turn-transition.revealed.has-personal-combat .turn-transition-copy h2 { font-size: 34px; }
  .turn-transition.revealed.has-personal-combat .turn-transition-copy blockquote { padding: 9px; }
  .combat-resolution-ledger { gap: 9px; padding: 11px; }
  .combat-resolution-heading h4 { font-size: 16px; }
  .combat-narrative { padding: 9px 10px; }
  .combat-narrative > header { align-items: flex-start; flex-direction: column; gap: 2px; }
  .combat-narrative > p { font-size: var(--ming-font-body, 16px); line-height: 1.72; }
  .combat-closure-ledger { grid-template-columns: 1fr; gap: 5px; }
  .combat-closure-ledger > div { min-height: 48px; }
  .combat-resolution-actors { gap: 7px; }
  .combat-clash-seal { grid-template-columns: auto auto auto; align-items: center; justify-content: center; gap: 7px; }
  .combat-clash-seal > i { width: 34px; height: 34px; font-size: 20px; }
  .combat-clash-seal > span { font-size: var(--ming-font-small, 14px); }
  .combat-clash-seal > b { font-size: var(--ming-font-small, 14px); }
  .combat-consequence-ledger { gap: 5px; }
  .turn-change-disclosure > summary { grid-template-columns: 1fr; gap: 6px; }
  .turn-change-disclosure > summary em { justify-self: start; }
  .combat-choice-readout { padding: 8px; }
}

.campaign-death-terminal {
  position: relative;
  min-width: 0;
  min-height: clamp(560px, 69vh, 780px);
  height: 100%;
  overflow: hidden;
  border: 1px solid rgba(154, 72, 57, 0.55);
  background: #08090a;
  box-shadow: inset 4px 0 #7f352b, 0 24px 70px rgba(0, 0, 0, 0.5);
}
.campaign-death-terminal-art,
.campaign-death-terminal-shade { position: absolute; inset: 0; width: 100%; height: 100%; }
.campaign-death-terminal-art { object-fit: cover; object-position: center; filter: saturate(0.7) contrast(1.08) brightness(0.76); }
.campaign-death-terminal-shade {
  background:
    linear-gradient(90deg, rgba(4, 6, 6, 0.03) 0 40%, rgba(6, 7, 8, 0.68) 59%, rgba(5, 6, 7, 0.98) 78%),
    linear-gradient(0deg, rgba(3, 4, 4, 0.9), transparent 40%);
}
.campaign-death-terminal-copy {
  position: relative;
  z-index: 1;
  width: min(600px, 48%);
  min-height: 100%;
  max-height: 100%;
  display: flex;
  flex-direction: column;
  justify-content: center;
  gap: 18px;
  margin-left: auto;
  padding: clamp(30px, 4vw, 62px);
  overflow-x: hidden;
  overflow-y: auto;
  scrollbar-gutter: stable;
}
.campaign-death-terminal-copy > header > span { color: #c57968; font-size: var(--ming-font-small, 14px); font-weight: 780; letter-spacing: 0.18em; }
.campaign-death-terminal-copy > header h2 { margin: 9px 0 11px; color: #eee0cd; font-family: var(--font-brush); font-size: clamp(48px, 5vw, 72px); font-weight: 400; line-height: 1; letter-spacing: 0.06em; text-shadow: 0 4px 22px #000; }
.campaign-death-terminal-copy > header p { margin: 0; color: #c6bbae; font-size: var(--ming-font-body, 16px); line-height: 1.85; }
.campaign-death-facts { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); border-top: 1px solid rgba(163, 78, 61, 0.32); border-left: 1px solid rgba(163, 78, 61, 0.32); }
.campaign-death-facts > span { min-width: 0; display: grid; gap: 4px; padding: 10px 11px; border-right: 1px solid rgba(163, 78, 61, 0.32); border-bottom: 1px solid rgba(163, 78, 61, 0.32); background: rgba(24, 11, 10, 0.46); }
.campaign-death-facts small { color: #9c847c; font-size: var(--ming-font-small, 14px); }
.campaign-death-facts b { color: #dfcabb; font-size: var(--ming-font-small, 14px); line-height: 1.45; }
.campaign-death-case { display: grid; grid-template-columns: 42px minmax(0, 1fr); gap: 12px; padding: 13px; border: 1px solid rgba(176, 93, 68, 0.42); border-left: 3px solid #944536; background: rgba(45, 20, 16, 0.62); }
.campaign-death-case > i { width: 40px; height: 40px; display: grid; place-items: center; color: #e0a18f; border: 1px solid rgba(205, 102, 78, 0.55); border-radius: 50%; font-family: var(--font-brush); font-size: 24px; font-style: normal; }
.campaign-death-case > span { min-width: 0; display: grid; gap: 3px; }
.campaign-death-case small { color: #b47f70; font-size: var(--ming-font-small, 14px); }
.campaign-death-case b { color: #e6c9bc; font-size: 14px; }
.campaign-death-case p { margin: 2px 0 0; color: #a99891; font-size: var(--ming-font-body, 16px); line-height: 1.6; }
.campaign-death-terminal.historical-possibility {
  border-color: rgba(151, 117, 65, 0.58);
  box-shadow: inset 4px 0 #755b31, 0 24px 70px rgba(0, 0, 0, 0.54);
}
.campaign-death-terminal.historical-possibility .campaign-death-terminal-art { filter: saturate(0.62) contrast(1.1) brightness(0.72); }
.campaign-death-terminal.historical-possibility .campaign-death-terminal-shade {
  background:
    linear-gradient(90deg, rgba(4, 6, 6, 0.02) 0 41%, rgba(6, 8, 8, 0.7) 59%, rgba(5, 7, 7, 0.98) 79%),
    linear-gradient(0deg, rgba(3, 5, 5, 0.92), transparent 42%);
}
.campaign-death-terminal.historical-possibility .campaign-death-terminal-copy > header > span { color: #c1a66e; }
.campaign-death-history-boundary {
  display: grid;
  grid-template-columns: 42px minmax(0, 1fr);
  gap: 12px;
  padding: 13px;
  border: 1px solid rgba(164, 137, 79, 0.42);
  border-left: 3px solid #9a783c;
  background: linear-gradient(100deg, rgba(58, 45, 21, 0.68), rgba(18, 24, 21, 0.72));
}
.campaign-death-history-boundary > i {
  width: 40px;
  height: 40px;
  display: grid;
  place-items: center;
  color: #dbc07c;
  border: 1px solid rgba(194, 157, 78, 0.58);
  border-radius: 50%;
  font-family: var(--font-brush);
  font-size: 24px;
  font-style: normal;
}
.campaign-death-history-boundary > span { min-width: 0; display: grid; gap: 4px; }
.campaign-death-history-boundary small { color: #bea66f; font-size: var(--ming-font-small, 14px); font-weight: 760; letter-spacing: 0.12em; }
.campaign-death-history-boundary b { color: #e3d5b4; font-size: var(--ming-font-small, 14px); line-height: 1.55; }
.campaign-death-history-boundary p { margin: 2px 0 0; color: #aca58f; font-size: var(--ming-font-body, 16px); line-height: 1.65; }
.campaign-death-history-boundary p strong { margin-right: 7px; color: #c5ab70; font-size: var(--ming-font-body, 16px); }
.campaign-death-terminal-copy > footer { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; }
.campaign-death-terminal-copy > footer button { min-height: 46px; padding: 9px 12px; color: #cbbcb0; border: 1px solid rgba(137, 112, 100, 0.42); background: rgba(18, 16, 15, 0.8); font: inherit; cursor: pointer; }
.campaign-death-terminal-copy > footer button:hover,
.campaign-death-terminal-copy > footer button:focus-visible { color: #f0ddd3; border-color: rgba(197, 100, 79, 0.66); background: rgba(61, 28, 23, 0.82); outline: none; }
.campaign-death-terminal-copy > footer button.primary { grid-column: 1 / -1; color: #efc0b3; border-color: rgba(190, 76, 57, 0.62); border-left: 3px solid #a94a3b; background: rgba(73, 27, 21, 0.86); }

@media (max-width: 760px) {
  .campaign-death-terminal { height: auto; min-height: 0; overflow: hidden; border-right: 0; border-left: 0; }
  .campaign-death-terminal-art { position: relative; inset: auto; height: min(48svh, 410px); display: block; object-position: 18% 82%; }
  .campaign-death-terminal-shade { right: 0; bottom: auto; left: 0; height: min(48svh, 410px); background: linear-gradient(0deg, rgba(5, 6, 7, 0.99), rgba(5, 6, 7, 0.2) 48%, rgba(5, 6, 7, 0.04)); }
  .campaign-death-terminal.historical-possibility .campaign-death-terminal-shade { background: linear-gradient(0deg, rgba(5, 7, 7, 0.99), rgba(5, 7, 7, 0.22) 50%, rgba(5, 7, 7, 0.04)); }
  .campaign-death-terminal-copy { width: 100%; min-height: 0; max-height: none; justify-content: flex-start; gap: 13px; margin-top: -48px; padding: 0 17px 26px; overflow: visible; background: linear-gradient(180deg, transparent, #050607 48px); }
  .campaign-death-terminal-copy > header > span { font-size: var(--ming-font-small, 14px); }
  .campaign-death-terminal-copy > header h2 { margin: 7px 0 9px; font-size: 46px; }
  .campaign-death-terminal-copy > header p { font-size: var(--ming-font-body, 16px); line-height: 1.72; }
  .campaign-death-facts { grid-template-columns: 1fr; }
  .campaign-death-terminal-copy > footer { grid-template-columns: 1fr; }
  .campaign-death-terminal-copy > footer button.primary { grid-column: auto; }
  .campaign-ended .toast-region { top: 72px; bottom: auto; width: calc(100% - 32px); }
  .campaign-ended .toast { max-width: 100%; }
}

.actor-ledger-card {
  grid-template-columns: 108px minmax(0, 1fr) !important;
  align-items: stretch;
  gap: 12px !important;
  padding: 10px !important;
  border-color: var(--folio-rule, rgba(190, 151, 76, 0.2)) !important;
  background: var(--folio-card, linear-gradient(120deg, rgba(35, 43, 36, 0.74), rgba(7, 12, 10, 0.94))) !important;
}

.actor-ledger-portrait {
  align-self: start;
  height: 148px;
  min-height: 148px;
  overflow: hidden;
  margin: 0;
  border: 1px solid rgba(205, 169, 93, 0.44);
  background: #0a100d;
  box-shadow: inset 0 0 0 4px rgba(6, 10, 8, 0.68);
}

.actor-ledger-portrait img { width: 100%; height: 100%; display: block; object-fit: cover; object-position: center 24%; }
.actor-ledger-portrait.fallback { display: grid; place-items: center; }
.actor-ledger-portrait.fallback i { color: #c3a562; font-family: var(--display); font-size: 44px; font-style: normal; }
.actor-ledger-copy { min-width: 0; display: grid; align-content: start; }
.actor-ledger-copy > div:first-child { display: flex; align-items: baseline; justify-content: space-between; gap: 8px; }
.actor-ledger-copy > p { margin: 5px 0 0 !important; }

.actor-assignment-ledger {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr) auto;
  align-items: center;
  gap: 8px;
  margin-top: 8px;
  padding: 7px 9px;
  color: #9eb9aa;
  border: 1px solid rgba(96, 146, 120, 0.36);
  border-left: 3px solid #5f9479;
  background: rgba(17, 38, 29, 0.58);
}

.actor-assignment-ledger > span { color: #d8bf7d; font-size: var(--ming-font-small, 14px); font-weight: 750; white-space: nowrap; }
.actor-assignment-ledger > div { min-width: 0; display: flex; flex-wrap: wrap; gap: 5px; }
.actor-assignment-ledger b { padding: 3px 6px; color: #d7e7dc; border: 1px solid rgba(104, 151, 130, 0.26); font-size: var(--ming-font-small, 14px); }
.actor-assignment-ledger small { color: #91aa9d !important; font-size: var(--ming-font-small, 14px); }

.actor-dialogue-backdrop { z-index: 1500; padding: 18px; background: rgba(2, 6, 5, 0.9); }
.actor-dialogue-modal {
  width: min(980px, 100%);
  max-height: calc(100svh - 36px);
  display: grid;
  grid-template-rows: auto auto minmax(0, 1fr) auto;
  overflow: hidden;
  color: var(--folio-ink, #d8c9a8);
  border: 1px solid rgba(204, 168, 90, 0.52);
  background: var(--folio-card, radial-gradient(circle at 86% 3%, rgba(79, 124, 101, 0.2), transparent 32%),
    repeating-linear-gradient(90deg, rgba(214, 184, 112, 0.018) 0 1px, transparent 1px 8px),
    linear-gradient(145deg, #121913, #070c0a 72%));
  box-shadow: 0 32px 90px rgba(0, 0, 0, 0.78), inset 5px 0 #783c31;
  animation: modal-rise 180ms ease-out;
}

.actor-dialogue-modal:focus { outline: none; }
.actor-dialogue-heading { display: flex; align-items: flex-start; justify-content: space-between; gap: 20px; padding: 17px 24px 13px 29px; border-bottom: 1px solid rgba(204, 168, 90, 0.28); }
.actor-dialogue-heading > div > span { color: var(--folio-muted, #b8954d); font-size: var(--ming-font-small, 14px); font-weight: 750; letter-spacing: 0.16em; }
.actor-dialogue-heading h2 { margin: 2px 0 0; color: var(--folio-ink, #f1e4c5); font-family: var(--display); font-size: 34px; line-height: 1.05; letter-spacing: 0.08em; }
.actor-dialogue-heading p { margin: 7px 0 0; color: var(--folio-muted, #9d927d); font-size: var(--ming-font-body, 16px); }
.actor-dialogue-heading button,
.actor-dialogue-modal > footer > button:first-child { min-height: 44px; padding: 8px 15px; color: var(--folio-ink, #c1af89); border: 1px solid rgba(190, 151, 76, 0.3); background: var(--folio-card, rgba(8, 13, 11, 0.78)); cursor: pointer; }

.actor-dialogue-portraits {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 54px minmax(0, 1fr);
  align-items: center;
  gap: 14px;
  padding: 11px 29px;
  border-bottom: 1px solid rgba(204, 168, 90, 0.19);
  background: rgba(0, 0, 0, 0.16);
}

.actor-dialogue-portraits article { min-width: 0; display: grid; grid-template-columns: 58px minmax(0, 1fr); align-items: center; gap: 11px; }
.actor-dialogue-portraits > i { width: 48px; height: 48px; display: grid; place-items: center; color: #d0b265; border: 1px solid rgba(208, 178, 101, 0.5); border-radius: 50%; font-family: var(--display); font-size: 22px; font-style: normal; }
.actor-dialogue-portrait { width: 58px; height: 66px; overflow: hidden; margin: 0; border: 1px solid rgba(190, 151, 76, 0.42); background: #0b100e; }
.actor-dialogue-portrait img { width: 100%; height: 100%; display: block; object-fit: cover; object-position: center 24%; }
.actor-dialogue-portrait.fallback { display: grid; place-items: center; }
.actor-dialogue-portrait.fallback i { color: #c5aa68; font-family: var(--display); font-size: 34px; font-style: normal; }
.actor-dialogue-portraits article > span { min-width: 0; display: grid; gap: 3px; }
.actor-dialogue-portraits small { color: #8eaa9b; font-size: var(--ming-font-small, 14px); }
.actor-dialogue-portraits strong { overflow: hidden; color: #ecddbc; font-size: 19px; text-overflow: ellipsis; white-space: nowrap; }
.actor-dialogue-portraits em { overflow: hidden; color: #918773; font-size: var(--ming-font-small, 14px); font-style: normal; text-overflow: ellipsis; white-space: nowrap; }

.actor-dialogue-main { min-height: 0; overflow-y: auto; display: grid; grid-template-rows: auto auto auto minmax(132px, 1fr) auto auto; align-content: stretch; padding: 12px 29px 0; scrollbar-color: #78633b #080d0b; }
.actor-dialogue-modes { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 7px; padding: 0; }
.actor-dialogue-modes button { min-height: 48px; display: flex; align-items: center; justify-content: center; gap: 9px; color: var(--folio-ink, #ad9f83); border: 1px solid rgba(190, 151, 76, 0.24); background: var(--folio-card, #0c120f); cursor: pointer; }
.actor-dialogue-modes button i { color: var(--folio-ink, #9d834b); font-family: var(--display); font-size: 20px; font-style: normal; }
.actor-dialogue-modes button span { font-size: 14px; font-weight: 750; }
.actor-dialogue-modes button.active { color: var(--folio-ink, #f0dfb7); border-color: var(--folio-rule, rgba(103, 157, 130, 0.66)); background: var(--folio-selected-surface, linear-gradient(180deg, #193127, #101c17)); box-shadow: inset 0 -3px #66977d; }

.actor-dialogue-rule-line { display: flex; align-items: center; justify-content: center; gap: 20px; min-height: 40px; padding: 7px 10px; color: var(--folio-ink, #9baa9f); border: 1px solid rgba(104, 151, 130, 0.19); border-top: 0; background: var(--folio-card, rgba(7, 15, 12, 0.58)); font-size: var(--ming-font-small, 14px); }
.actor-dialogue-rule-line span { display: inline-flex; align-items: center; gap: 5px; }
.actor-dialogue-rule-line i { width: 22px; height: 22px; display: grid; place-items: center; color: var(--folio-ink, #99c5ae); border: 1px solid currentColor; border-radius: 50%; font-family: var(--display); font-style: normal; }
.actor-dialogue-rule-line span:last-child i { color: var(--folio-muted, #d5b66d); }
.actor-dialogue-rule-line b { color: var(--folio-ink, #ddd0b2); font-size: var(--ming-font-small, 14px); }
.actor-dialogue-routing-notice { display: grid; grid-template-columns: 30px minmax(0, 1fr); align-items: center; gap: 9px; margin: 7px 0 0; padding: 8px 10px; color: var(--folio-ink, #9db2a6); border: 1px solid rgba(106, 154, 132, 0.28); background: var(--folio-card, linear-gradient(90deg, rgba(20, 47, 36, 0.48), rgba(7, 17, 13, 0.7))); }
.actor-dialogue-routing-notice > i { width: 28px; height: 28px; display: grid; place-items: center; color: var(--folio-ink, #d5b86d); border: 1px solid currentColor; border-radius: 50%; font-family: var(--display); font-style: normal; }
.actor-dialogue-routing-notice > span { min-width: 0; display: grid; gap: 2px; }
.actor-dialogue-routing-notice b { color: var(--folio-ink, #dbc99c); font-size: var(--ming-font-small, 14px); letter-spacing: 0.08em; }
.actor-dialogue-routing-notice small { color: var(--folio-muted, #8fa599); font-size: var(--ming-font-small, 14px); line-height: 1.45; }

.actor-dialogue-ledger-details { margin-top: 9px; border: 1px solid rgba(190, 151, 76, 0.18); background: var(--folio-card, rgba(7, 12, 10, 0.6)); }
.actor-dialogue-ledger-details > summary { min-height: 38px; display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 7px 11px; color: var(--folio-ink, #bda66e); cursor: pointer; list-style: none; font-size: var(--ming-font-small, 14px); }
.actor-dialogue-ledger-details > summary::-webkit-details-marker { display: none; }
.actor-dialogue-ledger-details > summary::before { content: '＋'; color: #7fa08e; }
.actor-dialogue-ledger-details[open] > summary::before { content: '－'; }
.actor-dialogue-ledger-details > summary span { margin-right: auto; font-weight: 760; }
.actor-dialogue-ledger-details > summary small { color: var(--folio-muted, #8f9d94); font-size: var(--ming-font-small, 14px); }
.actor-dialogue-ledger-details .actor-dialogue-context { padding: 0 10px 9px; }
.actor-dialogue-ledger-details .actor-dialogue-task-ledger { margin: 0 10px 10px; }

.actor-dialogue-context { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 7px; padding: 13px 30px 0; }
.actor-dialogue-context span { min-width: 0; padding: 9px 10px; color: var(--folio-muted, #9b927f); border: 1px solid rgba(190, 151, 76, 0.16); background: var(--folio-card, rgba(255, 255, 255, 0.018)); font-size: var(--ming-font-small, 14px); line-height: 1.5; }
.actor-dialogue-context b { display: block; margin-bottom: 2px; color: var(--folio-ink, #cfb36f); font-size: var(--ming-font-small, 14px); }
.actor-dialogue-task-ledger { display: grid; grid-template-columns: auto minmax(0, 1fr) auto; align-items: center; gap: 8px; margin: 12px 30px 0; padding: 10px 12px; border: 1px solid rgba(99, 151, 124, 0.34); border-left: 3px solid #63937b; background: var(--folio-card, rgba(19, 45, 34, 0.48)); }
.actor-dialogue-task-ledger > span { color: var(--folio-muted, #d8bd77); font-size: var(--ming-font-small, 14px); font-weight: 750; }
.actor-dialogue-task-ledger > b { color: var(--folio-ink, #d6e4db); font-size: var(--ming-font-small, 14px); }
.actor-dialogue-task-ledger > small { color: var(--folio-muted, #8fa799); font-size: var(--ming-font-small, 14px); text-align: right; }
.actor-dialogue-task-ledger.empty { border-color: var(--folio-rule, rgba(190, 151, 76, 0.2)); border-left-color: var(--folio-rule, #826b38); background: var(--folio-card, rgba(59, 48, 25, 0.18)); }

.actor-dialogue-time-boundary { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; margin: 12px 30px 0; }
.actor-dialogue-time-boundary > div { min-width: 0; display: grid; grid-template-columns: 40px minmax(0, 1fr); align-items: center; gap: 9px; padding: 9px 11px; border: 1px solid rgba(100, 153, 128, 0.28); background: var(--folio-card, rgba(16, 38, 29, 0.36)); }
.actor-dialogue-time-boundary > div:last-child { border-color: var(--folio-rule, rgba(184, 143, 64, 0.28)); background: var(--folio-card, rgba(55, 42, 19, 0.28)); }
.actor-dialogue-time-boundary i { width: 36px; height: 36px; display: grid; place-items: center; color: var(--folio-muted, #9fcab4); border: 1px solid currentColor; border-radius: 50%; font-family: var(--display); font-size: 18px; font-style: normal; }
.actor-dialogue-time-boundary > div:last-child i { color: var(--folio-muted, #d5b66d); }
.actor-dialogue-time-boundary span { min-width: 0; display: grid; gap: 2px; }
.actor-dialogue-time-boundary b { color: var(--folio-muted, #e1d4b7); font-size: var(--ming-font-small, 14px); }
.actor-dialogue-time-boundary small { color: var(--folio-muted, #8d9e94); font-size: var(--ming-font-small, 14px); line-height: 1.45; }

.actor-dialogue-transcript { min-height: 132px; overflow-y: auto; display: grid; align-content: start; gap: 10px; margin: 10px 0 0; padding: 15px; border: 1px solid rgba(190, 151, 76, 0.22); background: var(--folio-card, rgba(1, 5, 4, 0.68)); scrollbar-color: #7e6940 #0a0f0d; }
.actor-dialogue-message { width: min(78%, 650px); display: grid; gap: 4px; padding: 10px 13px; border: 1px solid rgba(100, 153, 128, 0.35); background: var(--folio-card, linear-gradient(135deg, rgba(25, 54, 42, 0.76), rgba(10, 20, 16, 0.88))); }
.actor-dialogue-message.player { justify-self: end; border-color: var(--folio-rule, rgba(191, 151, 76, 0.38)); background: var(--folio-card, linear-gradient(135deg, rgba(64, 46, 22, 0.65), rgba(20, 16, 10, 0.9))); }
.actor-dialogue-message > span { color: var(--folio-muted, #9dc6b1); font-size: var(--ming-font-small, 14px); font-weight: 760; letter-spacing: 0.12em; }
.actor-dialogue-message.player > span { color: var(--folio-muted, #d5b66e); text-align: right; }
.actor-dialogue-message p { margin: 0; color: var(--folio-muted, #e9ddc4); font-size: var(--ming-font-body, 16px); line-height: 1.72; white-space: pre-wrap; }
.actor-dialogue-message small { color: var(--folio-muted, #789688); font-size: var(--ming-font-small, 14px); }
.actor-dialogue-message.thinking { opacity: 0.72; animation: dialogue-pulse 1.1s ease-in-out infinite alternate; }
.actor-dialogue-empty { min-height: 72px; display: grid; place-content: center; gap: 5px; text-align: center; }
.actor-dialogue-empty b { color: var(--folio-ink, #d9c798); font-family: var(--display); font-size: 20px; letter-spacing: 0.08em; }
.actor-dialogue-empty span { color: var(--folio-muted, #978d7a); font-size: var(--ming-font-small, 14px); }
@keyframes dialogue-pulse { to { opacity: 0.42; } }

.actor-dialogue-agreement { margin: 9px 0 0; padding: 12px 14px; border: 1px solid rgba(187, 143, 63, 0.36); background: var(--folio-card, rgba(56, 42, 17, 0.35)); }
.actor-dialogue-agreement.ready { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; border-color: var(--folio-rule, rgba(105, 170, 137, 0.55)); background: var(--folio-card, linear-gradient(135deg, rgba(25, 57, 43, 0.7), rgba(10, 23, 17, 0.7))); }
.actor-dialogue-agreement.ready > :not(button) { grid-column: 1 / -1; }
.actor-dialogue-agreement header { display: flex; align-items: center; justify-content: space-between; gap: 12px; }
.actor-dialogue-agreement header span { color: var(--folio-muted, #d7b86b); font-size: var(--ming-font-small, 14px); font-weight: 780; letter-spacing: 0.12em; }
.actor-dialogue-agreement header b { color: var(--folio-ink, #98c4ad); font-size: var(--ming-font-small, 14px); }
.actor-dialogue-agreement p { margin: 7px 0 0; color: var(--folio-muted, #e8dcc0); font-size: var(--ming-font-body, 16px); line-height: 1.55; }
.actor-dialogue-agreement ul { margin: 7px 0 0; padding-left: 19px; color: var(--folio-ink, #aaa08c); font-size: var(--ming-font-small, 14px); line-height: 1.6; }
.actor-dialogue-agreement > small { display: block; margin-top: 7px; color: var(--folio-muted, #aa9b7e); font-size: var(--ming-font-small, 14px); }
.actor-dialogue-agreement > button { width: 100%; min-height: 50px; display: grid; grid-template-columns: 36px minmax(0, 1fr); align-items: center; gap: 10px; margin-top: 10px; padding: 7px 12px; color: var(--folio-ink, #e9dec5); border: 1px solid rgba(109, 172, 140, 0.66); background: var(--folio-card, linear-gradient(135deg, #28503d, #132a20)); cursor: pointer; font-size: var(--ming-font-small, 14px); text-align: left; }
.actor-dialogue-agreement > button i { width: 32px; height: 32px; display: grid; place-items: center; color: var(--folio-ink, #ddc077); border: 1px solid currentColor; border-radius: 50%; font-family: var(--display); font-style: normal; }
.actor-dialogue-agreement > button span { display: grid; gap: 2px; }
.actor-dialogue-agreement > button b { font-size: var(--ming-font-small, 14px); }
.actor-dialogue-agreement > button small { color: var(--folio-muted, #9db8aa); font-size: var(--ming-font-small, 14px); }
.actor-dialogue-agreement > button.decline { min-height: 46px; grid-template-columns: 32px minmax(0, 1fr); color: var(--folio-ink, #d7cab0); border-color: var(--folio-rule, rgba(179, 145, 91, 0.4)); background: var(--folio-card, rgba(22, 19, 14, 0.72)); }
.actor-dialogue-agreement > button.decline i { width: 28px; height: 28px; color: var(--folio-ink, #ba9961); }
.actor-dialogue-agreement > button.decline small { color: var(--folio-muted, #a99b83); }
.actor-dialogue-assignment-preview {
  display: grid;
  grid-template-columns: minmax(118px, 0.38fr) minmax(0, 1fr);
  gap: 10px;
  margin-top: 10px;
  padding: 9px;
  border: 1px solid rgba(105, 170, 137, 0.3);
  background: var(--folio-card, rgba(5, 15, 12, 0.48));
}
.actor-dialogue-assignment-preview > span { display: grid; align-content: start; gap: 3px; }
.actor-dialogue-assignment-preview > span small { color: var(--folio-muted, #8fa99b); font-size: var(--ming-font-small, 14px); letter-spacing: 0.1em; }
.actor-dialogue-assignment-preview > span b { color: var(--folio-muted, #e3d3ad); font-size: var(--ming-font-small, 14px); line-height: 1.4; }
.actor-dialogue-assignment-preview ol { display: grid; gap: 5px; margin: 0; padding: 0; list-style: none; }
.actor-dialogue-assignment-preview li { display: grid; grid-template-columns: 25px minmax(0, 1fr); align-items: center; gap: 7px; }
.actor-dialogue-assignment-preview li > i { width: 25px; height: 25px; display: grid; place-items: center; color: var(--folio-ink, #c9a95f); border: 1px solid rgba(201, 169, 95, 0.4); border-radius: 50%; font-style: normal; font-size: var(--ming-font-small, 14px); }
.actor-dialogue-assignment-preview li > span { min-width: 0; display: grid; }
.actor-dialogue-assignment-preview li b { color: var(--folio-ink, #d8ceb7); font-size: var(--ming-font-small, 14px); line-height: 1.35; }
.actor-dialogue-assignment-preview li small { color: var(--folio-muted, #85988f); font-size: var(--ming-font-small, 14px); }

.actor-dialogue-agreement.employment {
  border-left: 4px solid #b78c46;
  background: var(--folio-card, linear-gradient(90deg, rgba(165, 122, 48, 0.1), transparent 48%),
    linear-gradient(180deg, rgba(32, 31, 21, 0.94), rgba(10, 18, 14, 0.94)));
}
.actor-dialogue-employment-terms {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 7px;
  margin: 10px 0 0;
}
.actor-dialogue-employment-terms > div {
  min-width: 0;
  padding: 8px 10px;
  border: 1px solid rgba(190, 151, 76, 0.23);
  background: var(--folio-card, rgba(2, 8, 6, 0.52));
}
.actor-dialogue-employment-terms > div.wide { grid-column: 1 / -1; }
.actor-dialogue-employment-terms dt { color: var(--folio-muted, #9d8c69); font-size: var(--ming-font-small, 14px); }
.actor-dialogue-employment-terms dd { margin: 3px 0 0; color: var(--folio-ink, #ead8ad); font-size: var(--ming-font-small, 14px); line-height: 1.45; }
.actor-dialogue-employment-ledger {
  display: grid;
  grid-template-columns: 38px minmax(0, 1fr);
  align-items: center;
  gap: 10px;
  margin: 0 10px 10px;
  padding: 10px 12px;
  border: 1px solid rgba(181, 140, 66, 0.42);
  border-left: 3px solid #b58c42;
  background: var(--folio-card, linear-gradient(90deg, rgba(84, 60, 22, 0.34), rgba(8, 17, 13, 0.68)));
}
.actor-dialogue-employment-ledger > i {
  width: 34px;
  height: 34px;
  display: grid;
  place-items: center;
  color: var(--folio-ink, #ddbf75);
  border: 1px solid currentColor;
  border-radius: 50%;
  font-family: var(--display);
  font-style: normal;
}
.actor-dialogue-employment-ledger > span { min-width: 0; display: grid; gap: 2px; }
.actor-dialogue-employment-ledger small { color: var(--folio-muted, #c0a059); font-size: var(--ming-font-small, 14px); letter-spacing: 0.1em; }
.actor-dialogue-employment-ledger b { color: var(--folio-ink, #eadfc5); font-size: var(--ming-font-small, 14px); }
.actor-dialogue-employment-ledger em { color: var(--folio-muted, #9eaa9f); font-size: var(--ming-font-small, 14px); font-style: normal; line-height: 1.45; }
.actor-dialogue-employment-ledger.empty { border-color: var(--folio-rule, rgba(105, 145, 124, 0.22)); border-left-color: var(--folio-rule, #607d6d); background: var(--folio-card, rgba(10, 25, 19, 0.38)); }
.actor-dialogue-employment-ledger.defaulted { border-color: var(--folio-rule, rgba(165, 74, 58, 0.55)); border-left-color: var(--folio-rule, #a54a3a); }

.actor-dialogue-livelihood-card {
  margin-top: 10px;
  padding: 13px;
  border: 1px solid rgba(190, 151, 76, 0.42);
  border-left: 4px solid #b98e43;
  background: var(--folio-card, linear-gradient(105deg, rgba(78, 57, 21, 0.26), rgba(8, 18, 14, 0.92) 58%));
}
.actor-dialogue-livelihood-card > header { display: flex; align-items: end; justify-content: space-between; gap: 12px; margin-bottom: 9px; }
.actor-dialogue-livelihood-card > header > span { min-width: 0; display: grid; gap: 2px; }
.actor-dialogue-livelihood-card > header small { color: var(--folio-muted, #b9964d); font-size: var(--ming-font-small, 14px); letter-spacing: 0.12em; }
.actor-dialogue-livelihood-card > header b { color: var(--folio-ink, #eddfbd); font-size: 15px; }
.actor-dialogue-livelihood-card > header em { color: var(--folio-muted, #769a87); font-size: var(--ming-font-small, 14px); font-style: normal; white-space: nowrap; }
.actor-dialogue-livelihood-card > div { display: grid; gap: 7px; }
.actor-dialogue-livelihood-card article {
  display: grid;
  grid-template-columns: 34px minmax(0, 1fr) minmax(150px, auto);
  align-items: center;
  gap: 10px;
  min-width: 0;
  padding: 9px;
  border: 1px solid rgba(116, 153, 132, 0.24);
  background: var(--folio-card, rgba(5, 13, 10, 0.72));
}
.actor-dialogue-livelihood-card article > i { width: 32px; height: 32px; display: grid; place-items: center; color: var(--folio-ink, #d3b261); border: 1px solid currentColor; border-radius: 50%; font-family: var(--display); font-size: 16px; font-style: normal; }
.actor-dialogue-livelihood-card article > span { min-width: 0; display: grid; gap: 2px; }
.actor-dialogue-livelihood-card article > span small { color: var(--folio-muted, #89a695); font-size: var(--ming-font-small, 14px); }
.actor-dialogue-livelihood-card article > span b { color: var(--folio-muted, #dfd0ae); font-size: var(--ming-font-small, 14px); }
.actor-dialogue-livelihood-card article > span p { margin: 2px 0 0; color: var(--folio-muted, #918b7c); font-size: var(--ming-font-body, 16px); line-height: 1.45; }
.actor-dialogue-livelihood-card article.work.defaulted {
  border-color: var(--folio-rule, rgba(180, 85, 66, 0.58));
  box-shadow: inset 4px 0 0 rgba(180, 85, 66, 0.5);
  background: var(--folio-card, linear-gradient(105deg, rgba(91, 35, 27, 0.52), rgba(8, 18, 14, 0.92) 62%));
}
.actor-dialogue-livelihood-card article.work.defaulted > i { color: var(--folio-ink, #df927c); }
.actor-dialogue-livelihood-card article.work.defaulted > span :is(small, b, p) {
  white-space: normal;
  overflow-wrap: anywhere;
}
.actor-dialogue-livelihood-card article.work.defaulted > button {
  min-width: 0;
  max-width: 100%;
  border-color: var(--folio-rule, rgba(189, 104, 79, 0.56));
  background: var(--folio-card, #2a1712);
}
.actor-dialogue-work-terms {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 5px;
  margin: 7px 0 0;
}
.actor-dialogue-work-terms > div {
  min-width: 0;
  padding: 6px 7px;
  border: 1px solid rgba(131, 166, 145, 0.2);
  background: var(--folio-card, rgba(15, 29, 23, 0.72));
}
.actor-dialogue-work-terms dt { color: var(--folio-muted, #8eaa99); font-size: var(--ming-font-small, 14px); }
.actor-dialogue-work-terms dd { margin: 2px 0 0; color: var(--folio-ink, #d2c5a5); font-size: var(--ming-font-small, 14px); line-height: 1.35; }
.actor-dialogue-livelihood-card button { min-height: 44px; padding: 7px 10px; color: var(--folio-ink, #dec890); border: 1px solid rgba(190, 151, 76, 0.42); background: var(--folio-card, #17180f); cursor: pointer; }
.actor-dialogue-livelihood-card button b,
.actor-dialogue-livelihood-card button small { display: block; }
.actor-dialogue-livelihood-card button b { font-size: var(--ming-font-small, 14px); }
.actor-dialogue-livelihood-card button small { margin-top: 2px; color: var(--folio-muted, #82998c); font-size: var(--ming-font-small, 14px); line-height: 1.35; }
.actor-dialogue-livelihood-card :is(small, b, p, em) { font-size: var(--ming-font-small, 14px); }
.actor-dialogue-modal .actor-dialogue-livelihood-card small { font-size: var(--ming-font-small, 14px); }
.actor-dialogue-livelihood-card > header b { font-size: 15px; }
.actor-dialogue-livelihood-card button:disabled { color: var(--folio-ink, #777268); border-color: var(--folio-rule, rgba(120, 110, 88, 0.25)); background: var(--folio-card, #101310); opacity: 0.62; cursor: not-allowed; }
.actor-dialogue-livelihood-card article.debt { align-items: start; }
.actor-dialogue-debt-actions { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 6px; }
.actor-dialogue-debt-actions button { min-width: 92px; }
.actor-dialogue-debt-status {
  display: grid;
  gap: 2px;
  margin-top: 7px !important;
  padding: 7px 8px;
  border-left: 3px solid #b99b58;
  background: var(--folio-card, rgba(89, 66, 26, 0.22));
}
.actor-dialogue-debt-status b { color: var(--folio-ink, #dbc079) !important; }
.actor-dialogue-debt-status span { color: var(--folio-muted, #aeb8ad); font-size: var(--ming-font-small, 14px); line-height: 1.45; }
.actor-dialogue-debt-status.defaulted { border-left-color: var(--folio-rule, #a95042); background: var(--folio-card, rgba(116, 44, 35, 0.2)); }
.actor-dialogue-debt-note,
.actor-dialogue-extension-proposal {
  margin-top: 8px;
  border: 1px solid rgba(164, 139, 84, 0.3);
  background: var(--folio-card, rgba(4, 11, 8, 0.56));
}
.actor-dialogue-debt-note > summary,
.actor-dialogue-extension-proposal > summary {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
  min-height: 38px;
  padding: 7px 9px;
  color: var(--folio-ink, #d8c69d);
  cursor: pointer;
}
.actor-dialogue-debt-note > summary small,
.actor-dialogue-extension-proposal > summary small { color: var(--folio-muted, #82998c); text-align: right; }
.actor-dialogue-debt-note dl {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 5px;
  margin: 0;
  padding: 0 8px 8px;
}
.actor-dialogue-debt-note dl > div { padding: 6px; border: 1px solid rgba(126, 147, 130, 0.18); }
.actor-dialogue-debt-note dl > div.wide { grid-column: 1 / -1; }
.actor-dialogue-debt-note dt { color: var(--folio-muted, #87a08f); font-size: var(--ming-font-small, 14px); }
.actor-dialogue-debt-note dd { margin: 2px 0 0; color: var(--folio-ink, #d6c8a7); font-size: var(--ming-font-small, 14px); line-height: 1.4; }
.actor-dialogue-extension-proposal { grid-column: 1 / -1; margin-top: 2px; border-color: var(--folio-rule, rgba(194, 156, 77, 0.43)); }
.actor-dialogue-extension-proposal > summary { min-height: 44px; background: var(--folio-card, rgba(91, 64, 22, 0.2)); }
.actor-dialogue-extension-proposal > summary b { color: var(--folio-ink, #e1c67f); }
.actor-dialogue-extension-proposal > div { display: grid; grid-template-columns: 1fr 1fr; gap: 6px; padding: 9px; }
.actor-dialogue-extension-proposal p,
.actor-dialogue-extension-proposal ul { grid-column: 1 / -1; margin: 0; }
.actor-dialogue-extension-proposal p { color: var(--folio-muted, #d8ccb1) !important; }
.actor-dialogue-extension-proposal ul { display: grid; gap: 3px; padding-left: 18px; color: var(--folio-ink, #99a79e); font-size: var(--ming-font-small, 14px); line-height: 1.5; }
.actor-dialogue-extension-proposal button.accept { border-color: var(--folio-rule, rgba(204, 169, 91, 0.72)); background: var(--folio-card, rgba(79, 56, 19, 0.48)); }
.actor-dialogue-extension-proposal button.decline { border-color: var(--folio-rule, rgba(111, 137, 121, 0.35)); color: var(--folio-ink, #aeb9af); background: var(--folio-card, rgba(8, 19, 14, 0.8)); }

.actor-dialogue-command-proposal {
  position: relative;
  overflow: hidden;
  margin-top: 10px;
  padding: 15px;
  border: 1px solid rgba(197, 161, 82, 0.5);
  border-left: 4px solid #c09b4f;
  background: var(--folio-card, linear-gradient(92deg, rgba(157, 119, 45, 0.11), transparent 44%),
    linear-gradient(180deg, rgba(30, 37, 28, 0.97), rgba(10, 18, 14, 0.97)));
  box-shadow: inset 0 1px rgba(239, 214, 155, 0.08), 0 12px 28px rgba(0, 0, 0, 0.2);
}
.actor-dialogue-command-proposal::after {
  content: '议';
  position: absolute;
  right: 18px;
  top: 44px;
  color: rgba(205, 169, 91, 0.055);
  font-family: var(--display);
  font-size: 118px;
  line-height: 1;
  pointer-events: none;
}
.actor-dialogue-command-proposal.blocked { border-left-color: var(--folio-rule, #985044); border-color: var(--folio-rule, rgba(166, 79, 66, 0.48)); }
.actor-dialogue-command-proposal.employment-assignment {
  border-left-color: var(--folio-rule, #c3a456);
  background: var(--folio-card, linear-gradient(120deg, rgba(105, 77, 28, 0.18), transparent 48%),
    rgba(8, 19, 14, 0.95));
}
.actor-dialogue-command-proposal.employment-assignment > header > i {
  color: var(--folio-ink, #efd58e);
  box-shadow: inset 0 0 0 4px rgba(197, 158, 74, 0.08);
}
.actor-dialogue-command-proposal > header { position: relative; z-index: 1; display: grid; grid-template-columns: 42px minmax(0, 1fr) auto; align-items: start; gap: 11px; }
.actor-dialogue-command-proposal > header > i { width: 40px; height: 40px; display: grid; place-items: center; color: var(--folio-ink, #e2c57b); border: 1px solid currentColor; border-radius: 50%; font-family: var(--display); font-size: 21px; font-style: normal; }
.actor-dialogue-command-proposal > header > div { min-width: 0; }
.actor-dialogue-command-proposal > header span { color: var(--folio-muted, #94b6a4); font-size: var(--ming-font-small, 14px); font-weight: 760; letter-spacing: 0.12em; }
.actor-dialogue-command-proposal > header h3 { margin: 2px 0 0; color: var(--folio-ink, #f0dfb8); font-family: var(--display); font-size: 23px; letter-spacing: 0.04em; }
.actor-dialogue-command-proposal > header p { margin: 4px 0 0; color: var(--folio-muted, #c9bea6); font-size: var(--ming-font-body, 16px); line-height: 1.58; }
.actor-dialogue-command-proposal > header > b { padding: 5px 8px; color: var(--folio-ink, #9fd0b6); border: 1px solid rgba(116, 171, 142, 0.42); background: var(--folio-card, rgba(23, 59, 42, 0.48)); font-size: var(--ming-font-small, 14px); white-space: nowrap; }
.actor-dialogue-command-proposal.blocked > header > b { color: var(--folio-danger, #e1a59b); border-color: var(--folio-rule, rgba(179, 88, 75, 0.42)); background: var(--folio-danger-surface, rgba(75, 28, 22, 0.48)); }
.actor-dialogue-command-proposal > dl { position: relative; z-index: 1; display: grid; grid-template-columns: repeat(6, minmax(0, 1fr)); gap: 1px; margin: 12px 0 0; border: 1px solid rgba(192, 155, 78, 0.22); background: var(--folio-card, rgba(192, 155, 78, 0.22)); }
.actor-dialogue-command-proposal > dl > div { min-width: 0; display: grid; gap: 4px; padding: 9px 10px; background: var(--folio-card, rgba(7, 14, 11, 0.91)); }
.actor-dialogue-command-proposal dt { color: var(--folio-muted, #8ba397); font-size: var(--ming-font-small, 14px); }
.actor-dialogue-command-proposal dd { overflow-wrap: anywhere; margin: 0; color: var(--folio-ink, #e5d5b3); font-size: 14px; font-weight: 760; line-height: 1.4; }
.actor-dialogue-command-proposal > aside { position: relative; z-index: 1; display: grid; grid-template-columns: auto minmax(0, 1fr); gap: 9px; margin-top: 10px; padding: 8px 10px; color: var(--folio-ink, #9cac9f); border-left: 2px solid #6f917f; background: var(--folio-card, rgba(16, 34, 26, 0.48)); font-size: var(--ming-font-small, 14px); line-height: 1.5; }
.actor-dialogue-command-proposal > aside b { color: var(--folio-ink, #cbb77d); }
.actor-dialogue-command-blocker { position: relative; z-index: 1; display: grid; grid-template-columns: auto minmax(0, 1fr); gap: 9px; margin: 10px 0 0; padding: 9px 10px; color: var(--folio-ink, #d6a79e); border: 1px solid rgba(171, 80, 67, 0.38); background: var(--folio-card, rgba(78, 28, 22, 0.38)); font-size: var(--ming-font-small, 14px); line-height: 1.5; }
.actor-dialogue-command-blocker b { color: var(--folio-ink, #efc0b7); }
.actor-dialogue-command-actions { position: relative; z-index: 1; display: grid; grid-template-columns: 1.2fr 0.9fr 0.9fr; gap: 8px; margin-top: 11px; }
.actor-dialogue-command-actions button { min-width: 0; min-height: 46px; display: grid; grid-template-columns: 31px minmax(0, 1fr); align-items: center; gap: 8px; padding: 7px 10px; color: var(--folio-ink, #d7c9ad); border: 1px solid rgba(181, 145, 72, 0.34); background: var(--folio-card, rgba(20, 26, 21, 0.91)); cursor: pointer; text-align: left; }
.actor-dialogue-command-actions button.accept { color: var(--folio-ink, #eddfc4); border-color: var(--folio-rule, rgba(104, 168, 136, 0.64)); background: var(--folio-card, linear-gradient(135deg, #294f3d, #13281f)); }
.actor-dialogue-command-actions button:disabled { opacity: 0.42; cursor: not-allowed; }
.actor-dialogue-command-actions i { width: 29px; height: 29px; display: grid; place-items: center; color: var(--folio-ink, #d6b86c); border: 1px solid currentColor; border-radius: 50%; font-family: var(--display); font-style: normal; }
.actor-dialogue-command-actions span { min-width: 0; display: grid; gap: 1px; }
.actor-dialogue-command-actions b { font-size: var(--ming-font-small, 14px); }
.actor-dialogue-command-actions small { color: var(--folio-muted, #95a69b); font-size: var(--ming-font-small, 14px); line-height: 1.35; }
.actor-dialogue-command-notice { display: grid; grid-template-columns: 30px minmax(0, 1fr); align-items: center; gap: 9px; margin: 9px 0 0; padding: 9px 11px; color: var(--folio-ink, #b9cbbf); border: 1px solid rgba(102, 157, 130, 0.34); background: var(--folio-card, rgba(17, 39, 29, 0.52)); font-size: var(--ming-font-small, 14px); line-height: 1.5; }
.actor-dialogue-command-notice i { width: 28px; height: 28px; display: grid; place-items: center; color: var(--folio-ink, #d3b76e); border: 1px solid currentColor; border-radius: 50%; font-family: var(--display); font-style: normal; }

.actor-dialogue-compose { display: grid; grid-template-columns: minmax(170px, 0.7fr) minmax(0, 1.8fr); gap: 8px 14px; padding: 12px 0; }
.actor-dialogue-compose > header { align-self: center; display: grid; gap: 5px; }
.actor-dialogue-compose > header > span { color: var(--folio-muted, #f0dfb8); font-family: var(--display); font-size: 22px; letter-spacing: 0.06em; }
.actor-dialogue-compose > header > p { margin: 0; color: var(--folio-muted, #aaa087); font-size: var(--ming-font-body, 16px); line-height: 1.5; }
.actor-dialogue-compose textarea { width: 100%; min-height: 112px; resize: vertical; padding: 13px 15px; color: var(--folio-ink, #e8dcc2); border: 1px solid rgba(111, 157, 135, 0.45); outline: none; background: var(--folio-card, rgba(3, 8, 6, 0.8)); font: inherit; font-size: var(--ming-font-body, 16px); line-height: 1.7; }
.actor-dialogue-compose textarea:focus { border-color: var(--folio-rule, rgba(158, 202, 178, 0.75)); box-shadow: inset 3px 0 #66977d; }
.actor-dialogue-compose > small { grid-column: 2; color: var(--folio-muted, #99afa2); font-size: var(--ming-font-small, 14px); line-height: 1.5; }
.actor-dialogue-compose > small em { color: var(--folio-muted, #d98275); font-style: normal; }
.actor-dialogue-modal > footer { display: flex; justify-content: flex-end; gap: 9px; padding: 11px 29px 16px; border-top: 1px solid rgba(190, 151, 76, 0.2); background: var(--folio-card, #080e0b); }
.actor-dialogue-modal > footer .primary { min-width: 310px; min-height: 55px; display: grid; grid-template-columns: 40px minmax(0, 1fr); align-items: center; gap: 10px; padding: 8px 14px; color: var(--folio-ink, #e8ddc3); border: 1px solid rgba(105, 165, 135, 0.65); background: var(--folio-card, linear-gradient(135deg, #284d3c, #142a21)); cursor: pointer; text-align: left; }
.actor-dialogue-modal > footer .primary:disabled { opacity: 0.42; cursor: not-allowed; }
.actor-dialogue-modal > footer .primary > i { width: 38px; height: 38px; display: grid; place-items: center; color: var(--folio-ink, #ddc078); border: 1px solid rgba(221, 192, 120, 0.45); border-radius: 50%; font-family: var(--display); font-size: 20px; font-style: normal; }
.actor-dialogue-modal > footer .primary span { display: grid; gap: 2px; }
.actor-dialogue-modal > footer .primary b { font-size: 14px; }
.actor-dialogue-modal > footer .primary small { color: var(--folio-muted, #96b6a4); font-size: var(--ming-font-small, 14px); }

@media (max-width: 760px) {
  .actor-dialogue-agreement.ready { grid-template-columns: 1fr; }
  .actor-dialogue-agreement.ready > button { grid-column: 1; }
  .actor-ledger-card { grid-template-columns: 76px minmax(0, 1fr) !important; gap: 9px !important; }
  .actor-ledger-portrait { height: 106px; min-height: 106px; }
  .actor-assignment-ledger { grid-template-columns: 1fr; }
  .actor-dialogue-backdrop { display: block; padding: 0; }
  .actor-dialogue-modal { width: 100%; min-height: 100svh; max-height: 100svh; border-width: 0; border-left: 4px solid #783c31; }
  .actor-dialogue-heading { padding: 17px 15px 14px 18px; }
  .actor-dialogue-heading h2 { font-size: 32px; }
  .actor-dialogue-heading p { font-size: var(--ming-font-body, 16px); }
  .actor-dialogue-heading button { min-width: 58px; padding: 7px 9px; }
  .actor-dialogue-portraits { grid-template-columns: minmax(0, 1fr) 28px minmax(0, 1fr); gap: 5px; padding: 9px 13px; }
  .actor-dialogue-portraits article { grid-template-columns: 45px minmax(0, 1fr); gap: 6px; }
  .actor-dialogue-portrait { width: 45px; height: 54px; }
  .actor-dialogue-portraits > i { width: 32px; height: 32px; font-size: 16px; }
  .actor-dialogue-portraits strong { font-size: 15px; }
  .actor-dialogue-portraits em { font-size: var(--ming-font-small, 14px); white-space: normal; }
  .actor-dialogue-main { padding: 9px 13px 0; }
  .actor-dialogue-modes { gap: 5px; padding: 0; }
  .actor-dialogue-modes button { min-height: 45px; gap: 5px; }
  .actor-dialogue-modes button i { font-size: 17px; }
  .actor-dialogue-modes button span { font-size: var(--ming-font-small, 14px); }
  .actor-dialogue-rule-line { display: grid; grid-template-columns: 1fr 1fr; gap: 5px; justify-items: start; padding: 7px 6px; }
  .actor-dialogue-rule-line span { align-items: flex-start; line-height: 1.35; }
  .actor-dialogue-rule-line i { flex: 0 0 auto; }
  .actor-dialogue-ledger-details > summary { align-items: flex-start; }
  .actor-dialogue-ledger-details > summary small { max-width: 48%; text-align: right; line-height: 1.4; }
  .actor-dialogue-context { grid-template-columns: 1fr; padding: 10px 13px 0; }
  .actor-dialogue-context span:nth-child(3) { display: none; }
  .actor-dialogue-task-ledger { grid-template-columns: 1fr; margin: 9px 13px 0; }
  .actor-dialogue-task-ledger > small { text-align: left; }
  .actor-dialogue-time-boundary { grid-template-columns: 1fr; margin: 9px 13px 0; }
  .actor-dialogue-transcript { min-height: 180px; margin: 9px 0 0; padding: 10px; }
  .actor-dialogue-message { width: 90%; }
  .actor-dialogue-agreement { margin: 9px 0 0; }
  .actor-dialogue-command-proposal { padding: 12px 10px; }
  .actor-dialogue-command-proposal > header { grid-template-columns: 36px minmax(0, 1fr) auto; gap: 8px; }
  .actor-dialogue-command-proposal > header > i { width: 34px; height: 34px; font-size: 18px; }
  .actor-dialogue-command-proposal > header > b { grid-column: auto; justify-self: end; padding: 4px 6px; }
  .actor-dialogue-command-proposal > header h3 { font-size: 20px; }
  .actor-dialogue-command-proposal > header p { display: none; }
  .actor-dialogue-command-proposal > dl { grid-template-columns: repeat(3, minmax(0, 1fr)); margin-top: 9px; }
  .actor-dialogue-command-proposal > dl > div { padding: 7px 6px; }
  .actor-dialogue-command-proposal dd { font-size: var(--ming-font-small, 14px); }
  .actor-dialogue-command-proposal > aside,
  .actor-dialogue-command-blocker { grid-template-columns: 1fr; gap: 2px; margin-top: 8px; padding: 7px 8px; }
  .actor-dialogue-command-actions { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 5px; margin-top: 8px; }
  .actor-dialogue-command-actions button { min-height: 48px; grid-template-columns: 27px minmax(0, 1fr); gap: 5px; padding: 6px; }
  .actor-dialogue-command-actions i { width: 25px; height: 25px; }
  .actor-dialogue-command-actions b { font-size: var(--ming-font-small, 14px); }
  .actor-dialogue-command-actions small { display: none; }
  .actor-dialogue-compose { grid-template-columns: 1fr; padding: 10px 0; }
  .actor-dialogue-compose > header > span { font-size: 20px; }
  .actor-dialogue-compose textarea { min-height: 108px; font-size: 16px; }
  .actor-dialogue-compose > small { grid-column: 1; }
  .actor-dialogue-modal > footer { display: grid; grid-template-columns: 0.7fr 1.3fr; padding: 10px 13px 14px; }
  .actor-dialogue-modal > footer .primary { min-width: 0; min-height: 52px; grid-template-columns: 32px minmax(0, 1fr); }
  .actor-dialogue-modal > footer .primary > i { width: 30px; height: 30px; font-size: 16px; }
  .actor-dialogue-modal > footer .primary small { display: none; }
  .actor-dialogue-command-actions button { min-height: 48px; }
}

/* V0.54 scene dialogue: the current exchange leads; ledgers and history stay secondary. */
.actor-dialogue-backdrop {
  display: grid;
  place-items: center;
  z-index: 1500;
  padding: 18px;
  background:
    radial-gradient(circle at 72% 35%, rgba(58, 87, 72, 0.12), transparent 30%),
    rgba(1, 5, 4, 0.94);
}

.actor-dialogue-modal {
  position: relative;
  isolation: isolate;
  width: min(1180px, calc(100vw - 36px));
  height: min(900px, calc(100svh - 36px));
  max-height: calc(100svh - 36px);
  display: grid;
  grid-template-rows: auto minmax(290px, 0.95fr) minmax(0, 1.05fr) auto;
  overflow: hidden;
  border: 1px solid rgba(190, 151, 76, 0.46);
  border-left: 5px solid #783c31;
  background: var(--folio-card, #080d0b);
  box-shadow: 0 30px 100px rgba(0, 0, 0, 0.72), inset 0 0 0 1px rgba(224, 191, 119, 0.05);
}

.actor-dialogue-modal::before {
  content: '';
  position: absolute;
  z-index: -1;
  inset: 0;
  pointer-events: none;
  opacity: 0.15;
  background: repeating-linear-gradient(90deg, transparent 0 4px, rgba(232, 216, 176, 0.028) 4px 5px);
}

.actor-dialogue-heading {
  position: relative;
  z-index: 5;
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto auto;
  align-items: center;
  gap: 18px;
  min-height: 88px;
  padding: 13px 20px 12px 24px;
  border-bottom: 1px solid rgba(204, 168, 90, 0.28);
  background: var(--folio-card, linear-gradient(90deg, rgba(8, 14, 11, 0.98), rgba(13, 24, 19, 0.95)));
}

.actor-dialogue-heading > div:first-child { min-width: 0; }
.actor-dialogue-heading > div:first-child > span { color: var(--folio-muted, #c8a55a); font-size: var(--ming-font-small, 14px); font-weight: 800; letter-spacing: 0.18em; }
.actor-dialogue-heading h2 { margin: 2px 0 0; color: var(--folio-ink, #f3e6c8); font-family: var(--display); font-size: 35px; line-height: 1; letter-spacing: 0.08em; }
.actor-dialogue-heading p { overflow: hidden; margin: 6px 0 0; color: var(--folio-muted, #a99e89); font-size: var(--ming-font-body, 16px); text-overflow: ellipsis; white-space: nowrap; }
.actor-dialogue-heading-status { display: grid; justify-items: end; gap: 3px; }
.actor-dialogue-heading-status span { color: var(--folio-muted, #9bc4ae); font-size: var(--ming-font-small, 14px); font-weight: 800; letter-spacing: 0.08em; }
.actor-dialogue-heading-status b { color: var(--folio-ink, #ad9d7d); font-size: var(--ming-font-small, 14px); font-weight: 620; }
.actor-dialogue-heading > button,
.actor-dialogue-modal > footer > button:first-child {
  min-height: 44px;
  padding: 8px 15px;
  color: var(--folio-ink, #c8b58d);
  border: 1px solid rgba(190, 151, 76, 0.34);
  background: var(--folio-card, rgba(7, 12, 10, 0.82));
  cursor: pointer;
}

.actor-dialogue-heading > button:hover,
.actor-dialogue-heading > button:focus-visible,
.actor-dialogue-modal > footer > button:first-child:hover,
.actor-dialogue-modal > footer > button:first-child:focus-visible {
  color: var(--folio-ink, #f0dfb7);
  border-color: var(--folio-rule, rgba(213, 178, 102, 0.66));
  outline: none;
}

.actor-dialogue-scene {
  position: relative;
  min-height: 0;
  overflow: hidden;
  border-bottom: 1px solid rgba(190, 151, 76, 0.3);
  background:
    linear-gradient(90deg, rgba(2, 5, 4, 0.9) 0%, rgba(3, 8, 6, 0.64) 52%, rgba(3, 7, 6, 0.2) 100%),
    var(--actor-dialogue-scene-art, url('/assets/art/dialogue/commoner-cottage-conversation-v2.png')) var(--actor-dialogue-scene-position, center) / cover no-repeat;
}

.actor-dialogue-scene[data-dialogue-scene-kind="market-shop"] {
  --actor-dialogue-scene-position: 72% center;
}

.actor-dialogue-scene-shade {
  position: absolute;
  inset: 0;
  pointer-events: none;
  background:
    linear-gradient(180deg, rgba(0, 0, 0, 0.08), transparent 28%, rgba(0, 0, 0, 0.5)),
    radial-gradient(circle at 77% 30%, rgba(126, 154, 139, 0.11), transparent 27%);
}

.actor-dialogue-figure {
  position: absolute;
  right: clamp(18px, 4vw, 64px);
  bottom: -10%;
  width: min(35%, 390px);
  height: 112%;
  margin: 0;
  filter: drop-shadow(-18px 14px 24px rgba(0, 0, 0, 0.6));
}

.actor-dialogue-figure img {
  width: 100%;
  height: 100%;
  display: block;
  object-fit: contain;
  object-position: center bottom;
}

.actor-dialogue-figure.fallback {
  bottom: 9%;
  height: 78%;
  display: grid;
  place-items: center;
  border: 1px solid rgba(203, 169, 92, 0.35);
  background: rgba(8, 14, 11, 0.72);
}

.actor-dialogue-figure.fallback i { color: #d7b868; font-family: var(--display); font-size: 110px; font-style: normal; }

.actor-dialogue-current-line {
  position: absolute;
  z-index: 2;
  left: clamp(20px, 3vw, 42px);
  bottom: clamp(18px, 3vh, 28px);
  width: min(61%, 690px);
  max-height: calc(100% - 38px);
  overflow: auto;
  padding: 16px 20px 15px;
  border: 1px solid rgba(205, 169, 88, 0.45);
  border-left: 4px solid #65937a;
  background: var(--folio-card, linear-gradient(135deg, rgba(7, 13, 10, 0.94), rgba(9, 18, 14, 0.84)));
  box-shadow: 0 18px 48px rgba(0, 0, 0, 0.38);
}

.actor-dialogue-current-line[data-dialogue-current-state='error'] { border-left-color: var(--folio-rule, #a65649); }
.actor-dialogue-current-line[data-dialogue-current-state='thinking'] { border-left-color: var(--folio-rule, #b48d44); }
.actor-dialogue-current-line > header { display: flex; align-items: center; gap: 10px; }
.actor-dialogue-current-line > header i {
  width: 36px;
  height: 36px;
  flex: 0 0 auto;
  display: grid;
  place-items: center;
  color: var(--folio-ink, #d9ba6c);
  border: 1px solid rgba(217, 186, 108, 0.62);
  border-radius: 50%;
  font-family: var(--display);
  font-size: 18px;
  font-style: normal;
}
.actor-dialogue-current-line > header span { display: grid; gap: 1px; }
.actor-dialogue-current-line > header small { color: var(--folio-muted, #8fb7a2); font-size: var(--ming-font-small, 14px); font-weight: 760; letter-spacing: 0.12em; }
.actor-dialogue-current-line > header b { color: var(--folio-ink, #f0e3c5); font-size: 19px; }
.actor-dialogue-current-line blockquote {
  margin: 10px 0 0;
  padding: 7px 10px;
  color: var(--folio-ink, #bcb19d);
  border-left: 2px solid rgba(203, 169, 92, 0.48);
  background: var(--folio-card, rgba(197, 158, 76, 0.06));
  font-size: var(--ming-font-body, 16px);
  line-height: 1.55;
}
.actor-dialogue-current-line blockquote span { margin-right: 8px; color: var(--folio-muted, #caa85e); font-size: var(--ming-font-body, 16px); font-weight: 760; }
.actor-dialogue-current-line > p { margin: 10px 0 0; color: var(--folio-muted, #f1e7d2); font-size: clamp(15px, 1.18vw, 18px); font-weight: 650; line-height: 1.78; white-space: pre-wrap; }
.actor-dialogue-current-line > small { display: block; margin-top: 9px; color: var(--folio-muted, #86a492); font-size: var(--ming-font-small, 14px); }

.actor-dialogue-presence {
  position: absolute;
  z-index: 3;
  right: 22px;
  bottom: 18px;
  min-width: 150px;
  display: grid;
  justify-items: end;
  padding: 8px 11px;
  border-right: 3px solid #a94838;
  background: var(--folio-card, linear-gradient(90deg, transparent, rgba(6, 11, 9, 0.83)));
  text-shadow: 0 2px 5px #000;
}
.actor-dialogue-presence span { color: var(--folio-muted, #f0dfbb); font-family: var(--display); font-size: 24px; letter-spacing: 0.08em; }
.actor-dialogue-presence b { color: var(--folio-ink, #d2b466); font-size: var(--ming-font-small, 14px); }
.actor-dialogue-presence small { color: var(--folio-muted, #9cac9f); font-size: var(--ming-font-small, 14px); }

.actor-dialogue-main {
  min-height: 0;
  overflow-y: auto;
  display: block;
  padding: 12px 24px 14px;
  background: var(--folio-card, linear-gradient(180deg, #0b120f, #080d0b));
  scrollbar-color: #78633b #080d0b;
}

.actor-dialogue-commandbar { display: grid; grid-template-columns: minmax(360px, 1fr) auto; align-items: stretch; gap: 9px; }
.actor-dialogue-modes { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 7px; padding: 0; }
.actor-dialogue-modes:has(button:only-child) { grid-template-columns: minmax(180px, 0.34fr); }
.actor-dialogue-modes button {
  min-height: 46px;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  color: var(--folio-ink, #b9aa8c);
  border: 1px solid rgba(190, 151, 76, 0.24);
  background: var(--folio-card, #0c120f);
  cursor: pointer;
}
.actor-dialogue-modes button i { color: var(--folio-ink, #aa8d4d); font-family: var(--display); font-size: 19px; font-style: normal; }
.actor-dialogue-modes button span { font-size: 14px; font-weight: 760; }
.actor-dialogue-modes button.active { color: var(--folio-ink, #f1dfb7); border-color: var(--folio-rule, rgba(103, 157, 130, 0.7)); background: var(--folio-selected-surface, linear-gradient(180deg, #1c352a, #101e18)); box-shadow: inset 0 -3px #6b9c83; }

.actor-dialogue-rule-line {
  display: flex;
  align-items: center;
  gap: 12px;
  min-height: 46px;
  padding: 6px 12px;
  color: var(--folio-ink, #a9b7ad);
  border: 1px solid rgba(104, 151, 130, 0.24);
  background: var(--folio-card, rgba(14, 29, 22, 0.52));
  font-size: var(--ming-font-small, 14px);
}
.actor-dialogue-rule-line span { display: inline-flex; align-items: center; gap: 5px; white-space: nowrap; }
.actor-dialogue-rule-line i { width: 24px; height: 24px; display: grid; place-items: center; color: var(--folio-ink, #9ac6af); border: 1px solid currentColor; border-radius: 50%; font-family: var(--display); font-style: normal; }
.actor-dialogue-rule-line span:last-child i { color: var(--folio-muted, #d4b66c); }
.actor-dialogue-rule-line b { color: var(--folio-ink, #ded1b4); font-size: var(--ming-font-small, 14px); }

.actor-dialogue-ledger-details,
.actor-dialogue-history,
.actor-dialogue-memory-ledger { margin-top: 9px; border: 1px solid rgba(190, 151, 76, 0.19); background: var(--folio-card, rgba(5, 10, 8, 0.58)); }
.actor-dialogue-ledger-details > summary,
.actor-dialogue-history > summary,
.actor-dialogue-memory-ledger > summary {
  min-height: 40px;
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 8px 11px;
  color: var(--folio-ink, #bea86f);
  cursor: pointer;
  list-style: none;
  font-size: var(--ming-font-small, 14px);
}
.actor-dialogue-ledger-details > summary::-webkit-details-marker,
.actor-dialogue-history > summary::-webkit-details-marker,
.actor-dialogue-memory-ledger > summary::-webkit-details-marker { display: none; }
.actor-dialogue-ledger-details > summary::before,
.actor-dialogue-history > summary::before,
.actor-dialogue-memory-ledger > summary::before { content: '＋'; color: #83a793; }
.actor-dialogue-ledger-details[open] > summary::before,
.actor-dialogue-history[open] > summary::before,
.actor-dialogue-memory-ledger[open] > summary::before { content: '－'; }
.actor-dialogue-ledger-details > summary span,
.actor-dialogue-history > summary span,
.actor-dialogue-memory-ledger > summary span { margin-right: auto; font-weight: 780; }
.actor-dialogue-ledger-details > summary small,
.actor-dialogue-history > summary small,
.actor-dialogue-memory-ledger > summary small { color: var(--folio-muted, #91a097); font-size: var(--ming-font-small, 14px); }
.actor-dialogue-ledger-details .actor-dialogue-context { padding: 0 10px 9px; }
.actor-dialogue-ledger-details .actor-dialogue-task-ledger { margin: 0 10px 10px; }

.actor-dialogue-transcript {
  min-height: 0;
  max-height: 240px;
  overflow-y: auto;
  display: grid;
  align-content: start;
  gap: 9px;
  margin: 0;
  padding: 10px 12px 12px;
  border: 0;
  border-top: 1px solid rgba(190, 151, 76, 0.14);
  background: var(--folio-card, rgba(1, 5, 4, 0.34));
}
.actor-dialogue-message { width: min(78%, 650px); display: grid; gap: 4px; padding: 10px 13px; border: 1px solid rgba(100, 153, 128, 0.35); border-radius: 7px; background: var(--folio-card, linear-gradient(135deg, rgba(25, 54, 42, 0.66), rgba(10, 20, 16, 0.8))); }
.actor-dialogue-message.player { justify-self: end; border-color: var(--folio-rule, rgba(191, 151, 76, 0.38)); background: var(--folio-card, linear-gradient(135deg, rgba(64, 46, 22, 0.55), rgba(20, 16, 10, 0.82))); }
.actor-dialogue-message > span { color: var(--folio-muted, #9dc6b1); font-size: var(--ming-font-small, 14px); font-weight: 780; letter-spacing: 0.1em; }
.actor-dialogue-message.player > span { color: var(--folio-muted, #d5b66e); text-align: right; }
.actor-dialogue-message p { margin: 0; color: var(--folio-muted, #ebe0c7); font-size: var(--ming-font-body, 16px); line-height: 1.72; white-space: pre-wrap; }
.actor-dialogue-message small { color: var(--folio-muted, #7f9c8d); font-size: var(--ming-font-small, 14px); }
.actor-dialogue-empty { min-height: 54px; display: grid; place-content: center; gap: 4px; color: var(--folio-ink, #978d7a); text-align: center; font-size: var(--ming-font-small, 14px); }
.actor-dialogue-empty b { color: var(--folio-ink, #d8c698); font-family: var(--display); font-size: 18px; }

.actor-dialogue-memory-ledger { border-color: var(--folio-rule, rgba(111, 157, 135, 0.25)); }
.actor-dialogue-memory-list { max-height: 230px; overflow-y: auto; display: grid; gap: 7px; padding: 10px 12px 12px; border-top: 1px solid rgba(111, 157, 135, 0.16); }
.actor-dialogue-memory-entry { display: grid; grid-template-columns: 34px minmax(0, 1fr); align-items: center; gap: 10px; padding: 9px 11px; border: 1px solid rgba(192, 151, 73, 0.27); border-left: 3px solid #9b7b3e; background: var(--folio-card, linear-gradient(135deg, rgba(53, 42, 20, 0.42), rgba(8, 15, 12, 0.76))); }
.actor-dialogue-memory-entry.confirmed { border-color: var(--folio-rule, rgba(102, 162, 132, 0.46)); border-left-color: var(--folio-rule, #68a083); background: var(--folio-card, linear-gradient(135deg, rgba(20, 53, 39, 0.55), rgba(7, 15, 11, 0.78))); }
.actor-dialogue-memory-entry.rejected { border-left-color: var(--folio-rule, #a45247); opacity: 0.76; }
.actor-dialogue-memory-entry > i { width: 30px; height: 30px; display: grid; place-items: center; color: var(--folio-ink, #d6b76b); border: 1px solid currentColor; border-radius: 50%; font-family: var(--display); font-style: normal; }
.actor-dialogue-memory-entry.confirmed > i { color: var(--folio-ink, #91c0a7); }
.actor-dialogue-memory-entry > span { min-width: 0; display: grid; gap: 3px; }
.actor-dialogue-memory-entry b { color: var(--folio-ink, #e8dcc1); font-size: var(--ming-font-small, 14px); font-weight: 650; line-height: 1.55; }
.actor-dialogue-memory-entry small { color: var(--folio-muted, #a79b83); font-size: var(--ming-font-small, 14px); line-height: 1.5; }

.actor-dialogue-compose {
  display: grid;
  grid-template-columns: minmax(230px, 0.78fr) minmax(0, 1.7fr);
  gap: 12px 16px;
  align-items: center;
  margin-top: 10px;
  padding: 12px 0 0;
  border-top: 1px solid rgba(190, 151, 76, 0.18);
}
.actor-dialogue-compose > header { min-width: 0; display: grid; grid-template-columns: 56px minmax(0, 1fr); align-items: center; gap: 11px; }
.actor-dialogue-player-portrait { width: 56px; height: 66px; overflow: hidden; margin: 0; border: 1px solid rgba(190, 151, 76, 0.42); background: #0b100e; }
.actor-dialogue-player-portrait img { width: 100%; height: 100%; display: block; object-fit: cover; object-position: center 22%; }
.actor-dialogue-player-portrait.fallback { display: grid; place-items: center; }
.actor-dialogue-player-portrait.fallback i { color: #c8ac69; font-family: var(--display); font-size: 30px; font-style: normal; }
.actor-dialogue-compose > header > span { min-width: 0; display: grid; gap: 2px; }
.actor-dialogue-compose > header small { color: var(--folio-muted, #8fb5a1); font-size: var(--ming-font-small, 14px); font-weight: 760; }
.actor-dialogue-compose > header b { color: var(--folio-ink, #f0dfb8); font-family: var(--display); font-size: 21px; letter-spacing: 0.05em; }
.actor-dialogue-compose > header p { margin: 0; color: var(--folio-muted, #a79d87); font-size: var(--ming-font-body, 16px); line-height: 1.45; }
.actor-dialogue-compose > div { min-width: 0; display: grid; gap: 5px; }
.actor-dialogue-compose textarea { width: 100%; min-height: 88px; resize: vertical; padding: 11px 13px; color: var(--folio-ink, #eee2c8); border: 1px solid rgba(111, 157, 135, 0.46); border-radius: 5px; outline: none; background: var(--folio-card, rgba(2, 7, 5, 0.78)); font: inherit; font-size: var(--ming-font-body, 16px); line-height: 1.62; }
.actor-dialogue-compose textarea:focus { border-color: var(--folio-rule, rgba(158, 202, 178, 0.78)); box-shadow: inset 3px 0 #66977d; }
.actor-dialogue-compose > div > small { color: var(--folio-muted, #9bb0a3); font-size: var(--ming-font-small, 14px); line-height: 1.45; }
.actor-dialogue-compose > div > small em { color: var(--folio-muted, #dc8a7d); font-style: normal; }

.actor-dialogue-modal > footer {
  display: grid;
  grid-template-columns: auto minmax(190px, 1fr) minmax(290px, 360px);
  align-items: center;
  gap: 12px;
  padding: 10px 24px 13px;
  border-top: 1px solid rgba(190, 151, 76, 0.23);
  background: var(--folio-card, #070c0a);
}
.actor-dialogue-modal > footer > span { display: grid; justify-items: end; gap: 1px; color: var(--folio-muted, #8fa598); }
.actor-dialogue-modal > footer > span b { color: var(--folio-muted, #c8b27d); font-size: var(--ming-font-small, 14px); }
.actor-dialogue-modal > footer > span small { font-size: var(--ming-font-small, 14px); }
.actor-dialogue-modal > footer .primary {
  min-width: 0;
  min-height: 54px;
  display: grid;
  grid-template-columns: 38px minmax(0, 1fr);
  align-items: center;
  gap: 10px;
  padding: 7px 13px;
  color: var(--folio-ink, #eadfc7);
  border: 1px solid rgba(105, 165, 135, 0.7);
  background: var(--folio-card, #193326);
  cursor: pointer;
  text-align: left;
}
.actor-dialogue-modal > footer .primary:disabled { opacity: 0.42; cursor: not-allowed; }
.actor-dialogue-modal > footer .primary > i { width: 36px; height: 36px; display: grid; place-items: center; color: var(--folio-ink, #dec078); border: 1px solid rgba(221, 192, 120, 0.5); border-radius: 50%; font-family: var(--display); font-size: 19px; font-style: normal; }
.actor-dialogue-modal > footer .primary span { display: grid; gap: 2px; }
.actor-dialogue-modal > footer .primary b { font-size: 14px; }
.actor-dialogue-modal > footer .primary small { color: var(--folio-muted, #9bb8aa); font-size: var(--ming-font-small, 14px); }

@media (max-width: 760px) {
  .actor-dialogue-backdrop { display: block; padding: 0; }
  .actor-dialogue-modal {
    width: 100%;
    height: 100svh;
    min-height: 100svh;
    max-height: 100svh;
    grid-template-rows: auto 286px minmax(0, 1fr) auto;
    border-width: 0;
    border-left: 4px solid #783c31;
  }
  .actor-dialogue-modal button { min-height: 44px; }
  .actor-dialogue-heading { grid-template-columns: minmax(0, 1fr) auto; gap: 8px; min-height: 78px; padding: 11px 10px 10px 14px; }
  .actor-dialogue-heading h2 { font-size: 29px; }
  .actor-dialogue-heading p { font-size: var(--ming-font-body, 16px); }
  .actor-dialogue-heading-status { display: none; }
  .actor-dialogue-heading > button { min-width: 54px; padding: 7px 8px; }
  .actor-dialogue-scene {
    display: grid;
    grid-template-columns: clamp(102px, 29vw, 116px) minmax(0, 1fr);
    background-position: 56% center;
  }
  .actor-dialogue-figure {
    position: relative;
    z-index: 2;
    right: auto;
    bottom: auto;
    grid-column: 1;
    grid-row: 1;
    width: 100%;
    height: 100%;
    overflow: hidden;
    opacity: 1;
    border-right: 1px solid rgba(205, 169, 88, 0.5);
    background: #090f0c;
    filter: drop-shadow(10px 0 18px rgba(0, 0, 0, 0.48));
  }
  .actor-dialogue-figure img {
    object-fit: cover;
    object-position: center 18%;
  }
  .actor-dialogue-presence { display: none; }
  .actor-dialogue-current-line {
    position: relative;
    right: auto;
    left: auto;
    bottom: auto;
    grid-column: 2;
    grid-row: 1;
    align-self: stretch;
    width: auto;
    max-height: none;
    margin: 10px;
    padding: 12px 13px 11px;
    background: var(--folio-card, linear-gradient(135deg, rgba(5, 11, 8, 0.97), rgba(8, 16, 12, 0.91)));
  }
  .actor-dialogue-current-line > header i { width: 32px; height: 32px; font-size: 16px; }
  .actor-dialogue-current-line > header b { font-size: 17px; }
  .actor-dialogue-current-line blockquote { max-height: 59px; overflow: auto; margin-top: 7px; padding: 5px 8px; font-size: var(--ming-font-body, 16px); }
  .actor-dialogue-current-line > p { margin-top: 7px; font-size: var(--ming-font-body, 16px); line-height: 1.62; }
  .actor-dialogue-current-line > small { margin-top: 6px; font-size: var(--ming-font-small, 14px); }
  .actor-dialogue-main { padding: 9px 10px 11px; }
  .actor-dialogue-commandbar { grid-template-columns: 1fr; gap: 6px; }
  .actor-dialogue-modes { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 5px; }
  .actor-dialogue-modes:has(button:only-child) { grid-template-columns: 1fr; }
  .actor-dialogue-modes button { min-height: 44px; gap: 5px; }
  .actor-dialogue-modes button span { font-size: var(--ming-font-small, 14px); }
  .actor-dialogue-rule-line { min-height: 37px; justify-content: center; padding: 5px 7px; }
  .actor-dialogue-rule-line i { width: 21px; height: 21px; }
  .actor-dialogue-ledger-details > summary,
  .actor-dialogue-history > summary,
  .actor-dialogue-memory-ledger > summary { align-items: flex-start; min-height: 42px; font-size: var(--ming-font-small, 14px); }
  .actor-dialogue-ledger-details > summary small,
  .actor-dialogue-history > summary small,
  .actor-dialogue-memory-ledger > summary small { max-width: 51%; text-align: right; line-height: 1.35; }
  .actor-dialogue-context { grid-template-columns: 1fr; padding: 8px 8px 0; }
  .actor-dialogue-context span:nth-child(3) { display: none; }
  .actor-dialogue-task-ledger { grid-template-columns: 1fr; margin: 8px; }
  .actor-dialogue-task-ledger > small { text-align: left; }
  .actor-dialogue-employment-terms { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .actor-dialogue-assignment-preview { grid-template-columns: 1fr; }
  .actor-dialogue-employment-ledger { margin: 8px; }
  .actor-dialogue-livelihood-card { padding: 9px; }
  .actor-dialogue-livelihood-card > header { align-items: start; }
  .actor-dialogue-livelihood-card > header em { white-space: normal; text-align: right; }
  .actor-dialogue-livelihood-card article { grid-template-columns: 32px minmax(0, 1fr); }
  .actor-dialogue-work-terms { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .actor-dialogue-livelihood-card article > button,
  .actor-dialogue-debt-actions { grid-column: 1 / -1; width: 100%; }
  .actor-dialogue-debt-actions { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .actor-dialogue-debt-actions button { min-width: 0; }
  .actor-dialogue-transcript { max-height: 190px; padding: 8px; }
  .actor-dialogue-memory-list { max-height: 190px; padding: 8px; }
  .actor-dialogue-message { width: 92%; }
  .actor-dialogue-compose { grid-template-columns: 1fr; gap: 8px; margin-top: 8px; padding-top: 10px; }
  .actor-dialogue-compose > header { grid-template-columns: 44px minmax(0, 1fr); gap: 8px; }
  .actor-dialogue-player-portrait { width: 44px; height: 52px; }
  .actor-dialogue-compose > header b { font-size: 18px; }
  .actor-dialogue-compose > header p { font-size: var(--ming-font-body, 16px); }
  .actor-dialogue-compose textarea { min-height: 92px; font-size: 16px; }
  .actor-dialogue-modal > footer { grid-template-columns: 0.68fr 1.32fr; gap: 8px; padding: 9px 10px 12px; }
  .actor-dialogue-modal > footer > button:first-child { min-height: 44px; }
  .actor-dialogue-modal > footer > span { display: none; }
  .actor-dialogue-modal > footer .primary { min-height: 64px; grid-template-columns: 32px minmax(0, 1fr); }
  .actor-dialogue-modal > footer .primary > i { width: 30px; height: 30px; font-size: 16px; }
  .actor-dialogue-modal > footer .primary small { display: block; line-height: 1.3; }
  .actor-dialogue-command-actions button { min-height: 48px; }
}

/* 人物对白最低阅读规范：所有次级说明不低于 12px，折叠账页展开后也保持可读。 */
.actor-dialogue-modal small { font-size: var(--ming-font-small, 14px); }
.actor-dialogue-modal .actor-dialogue-context :is(span, b),
.actor-dialogue-modal .actor-body-ledger > header :is(span, b),
.actor-dialogue-modal .actor-body-condition b,
.actor-dialogue-modal .actor-dialogue-employment-ledger em,
.actor-dialogue-modal .disease-ledger :is(span, p),
.actor-dialogue-modal .disease-ledger-disclosure > summary em { font-size: var(--ming-font-body, 16px); }
.actor-dialogue-modal .actor-dialogue-heading > button,
.actor-dialogue-modal > footer > button:first-child { min-height: 44px; }

@media (max-width: 760px) {
  .actor-dialogue-modal .actor-dialogue-heading p,
  .actor-dialogue-modal .actor-dialogue-compose > header p { font-size: var(--ming-font-body, 16px); }
}

.free-action-actor-target {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr) auto;
  align-items: center;
  gap: 7px;
  padding: 6px 8px;
  color: #91a99c;
  border: 1px solid rgba(99, 138, 118, 0.38);
  border-left: 3px solid #638a76;
  background: #101612;
  font-size: var(--ming-font-small, 14px);
}

.free-action-actor-target span { color: #b99b5c; letter-spacing: 0.08em; }
.free-action-actor-target b { min-width: 0; overflow: hidden; color: #d8ccb0; text-overflow: ellipsis; white-space: nowrap; }
.free-action-actor-target button {
  padding: 3px 7px;
  color: #a9b8ae;
  border: 1px solid rgba(109, 148, 129, 0.34);
  background: #151c17;
  font-size: var(--ming-font-small, 14px);
  cursor: pointer;
}

.free-action-actor-target button:hover,
.free-action-actor-target button:focus-visible { color: #ecd9ae; border-color: rgba(205, 168, 85, 0.55); outline: none; }

@media (min-width: 1080px) and (min-height: 680px) {
  .commoner-campaign .campaign-sidebar {
    grid-template-rows: minmax(260px, 0.82fr) minmax(300px, 1.18fr);
  }

  .commoner-campaign .character-state-card {
    position: relative;
    min-height: 0;
    display: block;
    overflow: hidden;
    padding: 0;
  }

  .commoner-campaign .character-state-scroll {
    width: 100%;
    height: 100%;
    min-height: 0;
    overflow-x: hidden;
    overflow-y: auto;
    overscroll-behavior: contain;
    scrollbar-gutter: stable;
    scrollbar-width: thin;
    scrollbar-color: rgba(190, 157, 96, 0.42) rgba(10, 15, 13, 0.22);
    padding: 10px 20px 10px 12px;
  }

  .commoner-campaign .character-state-card .need-grid,
  .jinyi-campaign .character-state-card .need-grid {
    grid-template-columns: repeat(5, minmax(0, 1fr));
    gap: 6px;
  }

  .commoner-campaign .character-state-card .need-cell,
  .jinyi-campaign .character-state-card .need-cell {
    min-height: 58px;
    padding: 8px 9px;
  }

  .commoner-campaign .character-state-card .money-ledger,
  .jinyi-campaign .character-state-card .money-ledger {
    min-height: 96px;
    margin-top: 0;
  }

  .commoner-campaign .character-state-card .money-ledger div,
  .jinyi-campaign .character-state-card .money-ledger div {
    min-height: 48px;
    padding: 8px 11px;
  }

  .commoner-campaign .system-dock { min-height: 300px; }

  .jinyi-campaign .campaign-sidebar {
    grid-template-rows: minmax(260px, 0.82fr) minmax(300px, 1.18fr);
  }

  .jinyi-campaign .character-state-card {
    position: relative;
    min-height: 0;
    display: block;
    overflow: hidden;
    padding: 0;
  }

  .jinyi-campaign .character-state-scroll {
    width: 100%;
    height: 100%;
    min-height: 0;
    overflow-x: hidden;
    overflow-y: auto;
    overscroll-behavior: contain;
    scrollbar-gutter: stable;
    scrollbar-width: thin;
    scrollbar-color: rgba(190, 157, 96, 0.42) rgba(10, 15, 13, 0.22);
    padding: 10px 20px 10px 12px;
  }

  .jinyi-campaign .system-dock { min-height: 300px; }

  .commoner-campaign .character-state-scroll::-webkit-scrollbar,
  .jinyi-campaign .character-state-scroll::-webkit-scrollbar { width: 9px; }

  .commoner-campaign .character-state-scroll::-webkit-scrollbar-track,
  .jinyi-campaign .character-state-scroll::-webkit-scrollbar-track { background: rgba(10, 15, 13, 0.28); }

  .commoner-campaign .character-state-scroll::-webkit-scrollbar-thumb,
  .jinyi-campaign .character-state-scroll::-webkit-scrollbar-thumb {
    border: 2px solid rgba(10, 15, 13, 0.24);
    border-radius: 8px;
    background: linear-gradient(#b39454, #5b846f);
  }

  .character-state-card.has-character-overflow .character-state-scroll { padding-bottom: 68px; }

  .character-scroll-cue {
    position: absolute;
    z-index: 12;
    right: 21px;
    bottom: 10px;
    left: 12px;
    min-height: 49px;
    display: grid;
    grid-template-columns: 34px minmax(0, 1fr) auto;
    align-items: center;
    gap: 9px;
    padding: 6px 10px;
    color: #efe0ba;
    border: 1px solid rgba(205, 170, 94, 0.62);
    border-left: 3px solid #c8a45a;
    border-radius: 2px;
    background: linear-gradient(90deg, rgba(45, 37, 20, 0.98), rgba(13, 28, 23, 0.97));
    box-shadow: 0 -16px 34px rgba(4, 8, 7, 0.95), 0 8px 20px rgba(0, 0, 0, 0.42);
    opacity: 0;
    transform: translateY(8px);
    pointer-events: none;
    transition: opacity 160ms ease, transform 160ms ease, border-color 160ms ease;
    cursor: pointer;
  }

  .character-scroll-cue.is-visible { opacity: 1; transform: translateY(0); pointer-events: auto; }
  .character-scroll-cue > i {
    width: 32px;
    height: 32px;
    display: grid;
    place-items: center;
    color: #f1d381;
    border: 1px solid rgba(214, 178, 97, 0.48);
    border-radius: 50%;
    background: rgba(89, 67, 29, 0.42);
    font-size: 18px;
    font-style: normal;
  }
  .character-scroll-cue > span { min-width: 0; display: grid; gap: 1px; text-align: left; }
  .character-scroll-cue > span b { font-size: var(--ming-font-small, 14px); line-height: 1.3; }
  .character-scroll-cue > span small { color: #9fb9aa; font-size: var(--ming-font-small, 14px); line-height: 1.3; }
  .character-scroll-cue > em { color: #c2a562; font-size: var(--ming-font-small, 14px); font-style: normal; letter-spacing: 0.12em; }
  .character-scroll-cue:hover,
  .character-scroll-cue:focus-visible { border-color: rgba(226, 193, 117, 0.86); background: linear-gradient(90deg, rgba(62, 49, 24, 0.99), rgba(17, 38, 31, 0.99)); }
}

@media (max-width: 1079px) {
  .character-scroll-cue { display: none; }
}

@media (prefers-reduced-motion: reduce) {
  .character-scroll-cue { transition: none; }
}

@media (max-width: 1080px) {
  .jinyi-timeline-milestone { grid-template-columns: 1fr; max-height: none; }
  .jinyi-timeline-milestone > figure { min-height: min(54svh, 540px); }
  .jinyi-timeline-milestone > figure::after { background: linear-gradient(0deg, rgba(9, 13, 12, 0.98), transparent 62%); }
  .jinyi-timeline-copy { overflow: visible; border-top: 1px solid rgba(190, 151, 76, 0.16); border-left: 0; }
  .jinyi-daily-review { grid-template-columns: 1fr; max-height: none; }
  .jinyi-daily-review > figure { min-height: min(52svh, 500px); }
  .jinyi-daily-review > figure::after { background: linear-gradient(0deg, rgba(7, 11, 9, 0.96), transparent 62%); }
  .jinyi-daily-review-copy { overflow: visible; border-top: 1px solid rgba(190, 151, 76, 0.16); border-left: 0; }
  .jinyi-ending-terminal { grid-template-columns: 1fr; }
  .jinyi-ending-terminal > figure { min-height: min(54svh, 540px); }
  .jinyi-ending-terminal > figure::after { background: linear-gradient(0deg, rgba(9, 13, 12, 0.98), transparent 62%); }
  .jinyi-ending-terminal-copy { border-top: 1px solid rgba(190, 151, 76, 0.16); border-left: 0; }
}

@media (max-width: 620px) {
  .jinyi-timeline-backdrop { display: block; padding: 0; }
  .jinyi-timeline-milestone { width: 100%; min-height: 100svh; border-right: 0; border-left: 0; }
  .jinyi-timeline-milestone > figure { min-height: 390px; }
  .jinyi-timeline-milestone figcaption { align-items: flex-start; flex-direction: column; gap: 5px; }
  .jinyi-timeline-copy { gap: 13px; padding: 24px 17px 30px; }
  .jinyi-timeline-copy > header h2 { font-size: 40px; }
  .jinyi-timeline-copy > header p { font-size: var(--ming-font-body, 16px); }
  .jinyi-timeline-copy > footer { grid-template-columns: 1fr; }
  .jinyi-timeline-copy > footer button { min-height: 48px; }
  .jinyi-daily-review-backdrop { display: block; padding: 0; }
  .jinyi-daily-review { width: 100%; min-height: 100svh; border-right: 0; border-left: 0; }
  .jinyi-daily-review > figure { min-height: 360px; }
  .jinyi-daily-review figcaption h2 { font-size: 38px; }
  .jinyi-daily-review-copy { gap: 10px; padding: 22px 16px 28px; }
  .jinyi-daily-review-changes,
  .jinyi-daily-review-status,
  .jinyi-daily-review-copy > footer { grid-template-columns: 1fr; }
  .jinyi-daily-review-copy > footer button { min-height: 46px; }
  .actor-action-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .actor-action-grid .system-action-seed { min-height: 46px; padding: 6px; }
  .actor-action-grid .system-action-seed span { font-size: var(--ming-font-small, 14px); }
  .actor-action-grid .system-action-seed small { display: none; }
  .actor-dialogue-panel > header { align-items: center; }
  .free-action-actor-target { grid-template-columns: auto minmax(0, 1fr); }
  .free-action-actor-target button { grid-column: 1 / -1; justify-self: start; }
  button.case-ai-action { grid-template-columns: 1fr; gap: 2px; min-height: 44px; }
  .case-route-chapter button.case-ai-action { min-height: 44px; }
  button.case-ai-action > small { white-space: normal; }
  .jinyi-ending-terminal > figure { min-height: 400px; }
  .jinyi-ending-terminal figcaption h2 { font-size: 42px; }
  .jinyi-ending-terminal-copy { padding: 24px 18px; }
  .jinyi-ending-terminal-copy { overflow: visible; }
  .jinyi-ending-protagonist { grid-template-columns: 78px minmax(0, 1fr); gap: 11px; padding: 10px; }
  .jinyi-ending-protagonist-portrait { width: 78px; min-height: 104px; }
  .jinyi-ending-protagonist-portrait img { min-height: 104px; }
  .jinyi-ending-protagonist-facts { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .jinyi-ending-character-fates,
  .jinyi-ending-evidence-legacy > div { grid-template-columns: 1fr; }
  .jinyi-ending-aftermath > header { align-items: flex-start; flex-direction: column; }
  .jinyi-ending-aftermath > header small { text-align: left; }
  .jinyi-ending-terminal-facts,
  .jinyi-ending-terminal-actions { grid-template-columns: 1fr; }
  .jinyi-ending-terminal-actions button.primary { grid-column: auto; }
}

/* 0.1.3 · 租田农民的田业卷。小栏只留能判断的事实，完整操作进入独立卷页。 */
.livelihood-list { display: grid; gap: 10px; }
.livelihood-tenure-opportunities {
  box-sizing: border-box;
  min-width: 0;
  max-width: 100%;
  overflow-x: clip;
  display: grid;
  gap: 12px;
  padding: 15px 16px;
  border: 1px solid rgba(184, 145, 73, 0.48);
  border-left: 4px solid #9f7438;
  background: var(--folio-card, #100f0a);
  box-shadow: inset 0 0 0 1px rgba(233, 206, 143, 0.04);
}
.livelihood-tenure-opportunities,
.livelihood-tenure-opportunities * {
  box-sizing: border-box;
  min-width: 0;
  overflow-wrap: anywhere;
}
.livelihood-tenure-opportunities > header {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 14px;
  padding-bottom: 11px;
  border-bottom: 1px solid rgba(194, 158, 86, 0.2);
}
.livelihood-tenure-opportunities > header > div { min-width: 0; }
.livelihood-tenure-opportunities > header span {
  display: block;
  color: var(--folio-muted, #c0a15d);
  font-size: var(--ming-font-small, 14px);
  font-weight: 760;
  letter-spacing: 0.08em;
}
.livelihood-tenure-opportunities > header h3 {
  margin: 4px 0;
  color: var(--folio-ink, #eee0bf);
  font-size: 20px;
  line-height: 1.35;
}
.livelihood-tenure-opportunities > header p,
.livelihood-tenure-opportunities > footer {
  margin: 0;
  color: var(--folio-muted, #b9ad94);
  font-size: var(--ming-font-body, 16px);
  line-height: 1.65;
}
.livelihood-tenure-opportunities > header > b {
  flex: 0 0 auto;
  padding: 7px 10px;
  border: 1px solid rgba(196, 153, 72, 0.42);
  background: var(--folio-card, #2a2114);
  color: var(--folio-ink, #dfc276);
  font-size: var(--ming-font-small, 14px);
  line-height: 1.35;
}
.livelihood-tenure-opportunities > div {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 9px;
}
.livelihood-tenure-opportunity {
  grid-column: span 4;
  min-width: 0;
  overflow-wrap: anywhere;
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(188px, 0.34fr);
  align-items: stretch;
  gap: 12px;
  padding: 12px;
  border: 1px solid rgba(171, 131, 63, 0.45);
  border-left: 3px solid #9e743c;
  background: var(--folio-card, #18140d);
}
.livelihood-tenure-opportunity.available {
  border-color: var(--folio-rule, #a98243);
  border-left-color: var(--folio-rule, #c3984b);
  background: var(--folio-success-surface, #19140c);
}
.livelihood-tenure-opportunity.blocked {
  border-color: var(--folio-rule, rgba(155, 103, 79, 0.48));
  border-left-color: var(--folio-rule, rgba(174, 103, 76, 0.76));
  background: var(--folio-danger-surface, #17100e);
}
.livelihood-tenure-opportunity > div {
  display: grid;
  align-content: center;
  gap: 4px;
  min-width: 0;
}
.livelihood-tenure-opportunity > div > span {
  color: var(--folio-muted, #bfa15f);
  font-size: var(--ming-font-small, 14px);
  font-weight: 730;
  line-height: 1.45;
}
.livelihood-tenure-opportunity h4 {
  margin: 0;
  color: var(--folio-ink, #ecddba);
  font-size: 17px;
  line-height: 1.4;
}
.livelihood-tenure-opportunity p {
  margin: 0;
  color: var(--folio-muted, #d0c1a2);
  font-size: var(--ming-font-body, 16px);
  line-height: 1.55;
}
.livelihood-tenure-opportunity > div > small {
  color: var(--folio-muted, #9f947d);
  font-size: var(--ming-font-small, 14px);
  line-height: 1.5;
}
.livelihood-tenure-opportunity.blocked > div > small { color: var(--folio-danger, #c19b8d); }
.livelihood-tenure-opportunity button {
  width: 100%;
  min-height: 54px;
  padding: 9px 11px;
  border: 1px solid rgba(197, 153, 68, 0.6);
  background: var(--folio-card, #352716);
  color: var(--folio-ink, #f0ddb1);
  text-align: left;
  cursor: pointer;
}
.livelihood-tenure-opportunity button b,
.livelihood-tenure-opportunity button small { display: block; }
.livelihood-tenure-opportunity button b {
  font-size: 14px;
  line-height: 1.4;
}
.livelihood-tenure-opportunity button small {
  margin-top: 3px;
  color: var(--folio-muted, #c9b791);
  font-size: var(--ming-font-small, 14px);
  line-height: 1.45;
}
.livelihood-tenure-opportunity button:not(:disabled):hover,
.livelihood-tenure-opportunity button:not(:disabled):focus-visible {
  border-color: var(--folio-rule, #d4af61);
  background: var(--folio-hover, #41301a);
  outline: 2px solid rgba(212, 175, 97, 0.15);
  outline-offset: 2px;
}
.livelihood-tenure-opportunity button:disabled {
  cursor: not-allowed;
  border-color: var(--folio-rule, rgba(157, 98, 75, 0.4));
  background: var(--folio-card, #251817);
  color: var(--folio-ink, #c79c90);
  opacity: 0.84;
}
.livelihood-tenure-opportunity button:disabled small { color: inherit; }
.livelihood-tenure-opportunities > footer {
  padding-top: 9px;
  border-top: 1px solid rgba(194, 158, 86, 0.16);
}
@media (max-width: 620px) {
  .livelihood-tenure-opportunities > div { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .livelihood-tenure-opportunity { grid-column: span 2; }
}
@media (max-width: 420px) {
  .livelihood-tenure-opportunities { padding: 12px; }
  .livelihood-tenure-opportunities > header { flex-direction: column; gap: 7px; }
  .livelihood-tenure-opportunities > header > b { align-self: flex-start; }
  .livelihood-tenure-opportunities > div { grid-template-columns: 1fr; }
  .livelihood-tenure-opportunity {
    grid-column: auto;
    grid-template-columns: 1fr;
    gap: 10px;
  }
  .livelihood-tenure-opportunity button { width: 100%; min-height: 56px; }
}
.courier-commission-ledger {
  box-sizing: border-box;
  min-width: 0;
  overflow: hidden;
  display: grid;
  gap: 12px;
  padding: 14px;
  border: 1px solid rgba(177, 139, 67, 0.48);
  border-left: 4px solid #a77a35;
  background: #0b110e;
  box-shadow: inset 0 0 0 1px rgba(226, 199, 130, 0.05);
}
.courier-commission-ledger,
.courier-commission-ledger * {
  overflow-wrap: anywhere;
}
.courier-commission-ledger * {
  box-sizing: border-box;
  min-width: 0;
}
.courier-commission-ledger > header {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 12px;
  padding-bottom: 11px;
  border-bottom: 1px solid rgba(195, 163, 92, 0.22);
}
.courier-commission-ledger > header > div { min-width: 0; }
.courier-commission-ledger > header span {
  display: block;
  color: #b99b5c;
  font-size: var(--ming-font-small, 14px);
  font-weight: 760;
  letter-spacing: 0.08em;
}
.courier-commission-ledger > header h3 {
  margin: 4px 0;
  color: #eee0c1;
  font-size: 19px;
  line-height: 1.35;
}
.courier-commission-ledger p,
.courier-commission-ledger footer {
  color: #b8ac93;
  font-size: var(--ming-font-body, 16px);
  line-height: 1.7;
}
.courier-commission-ledger > header p { margin: 0; }
.courier-commission-ledger > header > strong {
  flex: 0 0 auto;
  padding: 7px 9px;
  border: 1px solid rgba(202, 164, 85, 0.44);
  background: #2a2114;
  color: #e2c77d;
  font-size: var(--ming-font-small, 14px);
  line-height: 1.35;
}
.courier-commission-route {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto minmax(0, 1fr);
  align-items: stretch;
  gap: 8px;
}
.courier-commission-route > span {
  display: grid;
  align-content: center;
  gap: 3px;
  min-height: 74px;
  padding: 9px 10px;
  border: 1px solid rgba(126, 162, 143, 0.25);
  background: #101d17;
}
.courier-commission-route > i {
  align-self: center;
  color: #b7964f;
  font-size: var(--ming-font-small, 14px);
  font-style: normal;
  text-align: center;
}
.courier-commission-route small,
.courier-commission-facts small {
  color: #9c8f75;
  font-size: var(--ming-font-small, 14px);
}
.courier-commission-route b {
  color: #ebddbd;
  font-size: 15px;
  line-height: 1.4;
}
.courier-commission-route em {
  color: #9db7a9;
  font-size: var(--ming-font-small, 14px);
  font-style: normal;
  line-height: 1.45;
}
.courier-commission-facts {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 7px;
}
.courier-commission-facts > span {
  display: grid;
  gap: 3px;
  padding: 8px 9px;
  border: 1px solid rgba(255, 255, 255, 0.07);
  background: #0a0e0c;
}
.courier-commission-facts b {
  color: #d9c8a5;
  font-size: var(--ming-font-small, 14px);
  line-height: 1.45;
}
.courier-commission-progress {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 6px;
  margin: 0;
  padding: 0;
  list-style: none;
}
.courier-commission-progress li {
  display: flex;
  align-items: center;
  gap: 7px;
  min-height: 44px;
  padding: 7px 8px;
  border: 1px solid rgba(255, 255, 255, 0.07);
  background: #111512;
  color: #a99d85;
  font-size: var(--ming-font-small, 14px);
  line-height: 1.4;
}
.courier-commission-progress li.current {
  border-color: rgba(204, 164, 79, 0.52);
  color: #e1c47d;
}
.courier-commission-progress li.done {
  border-color: rgba(106, 159, 131, 0.4);
  background: #102019;
  color: #abd0bb;
}
.courier-commission-progress i {
  display: inline-grid;
  place-items: center;
  flex: 0 0 24px;
  width: 24px;
  height: 24px;
  border: 1px solid currentColor;
  border-radius: 50%;
  font-size: var(--ming-font-small, 14px);
  font-style: normal;
}
.courier-commission-next { display: grid; min-width: 0; }
.courier-commission-action {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  width: 100%;
  min-height: 52px;
  padding: 9px 11px;
  border: 1px solid rgba(195, 151, 65, 0.62);
  background: #342616;
  color: #f1dfb5;
  text-align: left;
}
.courier-commission-action:not(:disabled):hover,
.courier-commission-action:not(:disabled):focus-visible {
  border-color: #d6b467;
  background: #41301a;
}
.courier-commission-action:disabled {
  cursor: not-allowed;
  border-color: rgba(162, 99, 79, 0.42);
  background: #251817;
  color: #c89d91;
  opacity: 0.82;
}
.courier-commission-action span { display: grid; gap: 3px; min-width: 0; }
.courier-commission-action b { font-size: 14px; line-height: 1.4; }
.courier-commission-action small {
  color: inherit;
  font-size: var(--ming-font-small, 14px);
  line-height: 1.5;
  opacity: 0.82;
}
.courier-commission-action em {
  flex: 0 0 auto;
  color: inherit;
  font-size: var(--ming-font-small, 14px);
  font-style: normal;
  white-space: nowrap;
}
.courier-commission-last,
.courier-commission-blocked {
  margin: 0;
  padding: 8px 10px;
  border-left: 3px solid rgba(169, 127, 57, 0.7);
  background: #17130e;
}
.courier-commission-last b { margin-right: 8px; color: #dfc173; }
.courier-commission-ledger > footer {
  padding-top: 9px;
  border-top: 1px solid rgba(195, 163, 92, 0.16);
}
@media (max-width: 420px) {
  .courier-commission-ledger { padding: 12px; }
  .courier-commission-ledger > header { flex-direction: column; }
  .courier-commission-ledger > header > strong { align-self: flex-start; }
  .courier-commission-route { grid-template-columns: 1fr; }
  .courier-commission-route > i { padding: 1px 0; }
  .courier-commission-facts { grid-template-columns: 1fr; }
  .courier-commission-progress { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .courier-commission-action { align-items: flex-start; flex-direction: column; min-height: 56px; }
  .courier-commission-action em { white-space: normal; }
}

/* V0.1.2 · 高记铺中家庭副业账。只呈事实、权威步骤与真实受阻原因。 */
.household-service-commission-ledger {
  box-sizing: border-box;
  min-width: 0;
  max-width: 100%;
  overflow-x: clip;
  display: grid;
  gap: 12px;
  padding: 14px;
  border: 1px solid rgba(182, 144, 72, 0.46);
  border-left: 4px solid #aa7d38;
  background: var(--folio-card, linear-gradient(135deg, rgba(105, 75, 30, 0.12), transparent 42%),
    #0d110d);
  box-shadow: inset 0 0 0 1px rgba(229, 204, 145, 0.045);
}
.household-service-commission-ledger,
.household-service-commission-ledger * {
  overflow-wrap: anywhere;
}
.household-service-commission-ledger * {
  box-sizing: border-box;
  min-width: 0;
}
.household-service-commission-ledger > header {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 12px;
  padding-bottom: 11px;
  border-bottom: 1px solid rgba(198, 166, 94, 0.22);
}
.household-service-commission-ledger > header > div { min-width: 0; }
.household-service-commission-ledger > header span {
  display: block;
  color: var(--folio-muted, #c3a45f);
  font-size: var(--ming-font-small, 14px);
  font-weight: 760;
  letter-spacing: 0.08em;
}
.household-service-commission-ledger > header h3 {
  margin: 4px 0;
  color: var(--folio-ink, #f0e0bc);
  font-size: 20px;
  line-height: 1.35;
}
.household-service-commission-ledger p,
.household-service-commission-ledger footer {
  color: var(--folio-muted, #bdb29a);
  font-size: var(--ming-font-body, 16px);
  line-height: 1.7;
}
.household-service-commission-ledger > header p { margin: 0; }
.household-service-commission-ledger > header > strong {
  flex: 0 0 auto;
  padding: 7px 9px;
  color: var(--folio-ink, #e4c77c);
  border: 1px solid rgba(202, 164, 85, 0.44);
  background: var(--folio-card, #2b2113);
  font-size: var(--ming-font-small, 14px);
  line-height: 1.35;
}
.household-service-commission-terms,
.household-service-commission-materials {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 8px;
  color: var(--folio-ink, #c7bba2);
  font-size: var(--ming-font-small, 14px);
  line-height: 1.6;
}
.household-service-commission-terms > *,
.household-service-commission-materials > * {
  min-width: 0;
  padding: 9px 10px;
  border: 1px solid rgba(124, 158, 139, 0.24);
  background: var(--folio-card, #101b15);
}
.household-service-commission-terms small,
.household-service-commission-materials small {
  font-size: var(--ming-font-small, 14px);
  line-height: 1.45;
}
.household-service-commission-route {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 7px;
}
.household-service-commission-route > span,
.household-service-commission-facts > span {
  display: grid;
  align-content: center;
  gap: 3px;
  min-height: 66px;
  padding: 8px 9px;
  color: var(--folio-muted, #cabd9f);
  border: 1px solid rgba(255, 255, 255, 0.07);
  background: var(--folio-card, #0a0e0b);
  font-size: var(--ming-font-small, 14px);
  line-height: 1.45;
}
.household-service-commission-route small,
.household-service-commission-facts small,
.household-service-commission-progress small {
  color: var(--folio-muted, #9f947d);
  font-size: var(--ming-font-small, 14px);
  line-height: 1.45;
}
.household-service-commission-route b,
.household-service-commission-facts b {
  color: var(--folio-ink, #e5d4ae);
  font-size: 14px;
  line-height: 1.4;
}
.household-service-commission-facts {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 7px;
}
.household-service-commission-progress {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 6px;
  margin: 0;
  padding: 0;
  list-style: none;
  font-size: var(--ming-font-small, 14px);
}
.household-service-commission-progress li {
  display: flex;
  align-items: center;
  gap: 7px;
  min-height: 44px;
  padding: 7px 8px;
  color: var(--folio-ink, #aaa088);
  border: 1px solid rgba(255, 255, 255, 0.07);
  background: #111512;
  font-size: var(--ming-font-small, 14px);
  line-height: 1.4;
}
.household-service-commission-progress li.current {
  color: var(--folio-ink, #e3c67e);
  border-color: var(--folio-rule, rgba(204, 164, 79, 0.52));
}
.household-service-commission-progress li.done {
  color: var(--folio-success, #acd0bb);
  border-color: var(--folio-rule, rgba(106, 159, 131, 0.4));
  background: #102019;
}
.household-service-commission-next { display: grid; min-width: 0; }
.household-service-commission-action {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  width: 100%;
  min-height: 52px;
  padding: 9px 11px;
  color: var(--folio-ink, #f1dfb5);
  border: 1px solid rgba(195, 151, 65, 0.62);
  background: var(--folio-card, #342616);
  text-align: left;
}
.household-service-commission-action:not(:disabled):hover,
.household-service-commission-action:not(:disabled):focus-visible {
  color: var(--folio-ink, #fff0c7);
  border-color: var(--folio-rule, #d6b467);
  background: var(--folio-hover, #41301a);
}
.household-service-commission-action:disabled {
  cursor: not-allowed;
  color: var(--folio-ink, #c89d91);
  border-color: var(--folio-rule, rgba(162, 99, 79, 0.42));
  background: var(--folio-card, #251817);
  opacity: 0.82;
}
.household-service-commission-action span { display: grid; gap: 3px; min-width: 0; }
.household-service-commission-action b { font-size: 14px; line-height: 1.4; }
.household-service-commission-action small {
  color: inherit;
  font-size: var(--ming-font-small, 14px);
  line-height: 1.5;
  opacity: 0.84;
}
.household-service-commission-action em {
  flex: 0 0 auto;
  color: inherit;
  font-size: var(--ming-font-small, 14px);
  font-style: normal;
  white-space: nowrap;
}
.household-service-commission-blocked,
.household-service-commission-last {
  margin: 0;
  padding: 8px 10px;
  color: var(--folio-danger, #c0b19a);
  border-left: 3px solid rgba(169, 127, 57, 0.7);
  background: var(--folio-danger-surface, #17130e);
  font-size: var(--ming-font-small, 14px);
  line-height: 1.55;
}
.household-service-commission-ledger > footer {
  padding-top: 9px;
  border-top: 1px solid rgba(195, 163, 92, 0.16);
}
.system-focus-backdrop ~ .toast-region {
  z-index: 1400;
}
@media (max-width: 420px) {
  .household-service-commission-ledger { padding: 12px; }
  .household-service-commission-ledger > header { flex-direction: column; }
  .household-service-commission-ledger > header > strong { align-self: flex-start; }
  .household-service-commission-terms,
  .household-service-commission-materials,
  .household-service-commission-route,
  .household-service-commission-facts { grid-template-columns: 1fr; }
  .household-service-commission-progress { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .household-service-commission-action {
    align-items: flex-start;
    flex-direction: column;
    min-height: 56px;
  }
  .household-service-commission-action em { white-space: normal; }
}
.livelihood-card {
  display: grid;
  gap: 10px;
  padding: 12px;
  border: 1px solid rgba(193, 158, 86, 0.3);
  background: var(--folio-card, linear-gradient(135deg, rgba(101, 73, 29, 0.15), transparent 40%),
    rgba(5, 10, 8, 0.74));
  box-shadow: inset 3px 0 rgba(157, 122, 56, 0.38);
}
.livelihood-card > header {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 12px;
  padding-bottom: 9px;
  border-bottom: 1px solid rgba(196, 164, 94, 0.2);
}
.livelihood-card > header div { min-width: 0; }
.livelihood-card > header span { color: var(--folio-muted, #b89b59); font-size: var(--ming-font-small, 14px); font-weight: 720; letter-spacing: 0.08em; }
.livelihood-card > header h3 { margin: 2px 0; color: var(--folio-ink, #eee0c2); font-size: 17px; line-height: 1.25; }
.livelihood-card > header p { margin: 0; color: var(--folio-muted, #978a70); font-size: var(--ming-font-body, 16px); }
.livelihood-card > header > strong {
  flex: 0 0 auto;
  padding: 5px 8px;
  color: var(--folio-ink, #e2c77d);
  border: 1px solid rgba(204, 167, 88, 0.38);
  background: var(--folio-card, rgba(79, 56, 22, 0.26));
  font-size: var(--ming-font-small, 14px);
}
.livelihood-metrics { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px 10px; }
.livelihood-metrics > span { display: grid; grid-template-columns: 64px minmax(36px, 1fr) 24px; align-items: center; gap: 7px; }
.livelihood-metrics small { color: var(--folio-muted, #b7a98b); font-size: var(--ming-font-small, 14px); }
.livelihood-metrics i { height: 5px; overflow: hidden; background: var(--folio-card, rgba(255, 255, 255, 0.08)); }
.livelihood-metrics i b { display: block; height: 100%; background: var(--folio-card, linear-gradient(90deg, #826c37, #d1b86f)); }
.livelihood-metrics em { color: var(--folio-muted, #d6c7a6); font-size: var(--ming-font-small, 14px); font-style: normal; text-align: right; }
.livelihood-facts { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 6px; }
.livelihood-facts span {
  min-width: 0;
  padding: 7px 8px;
  color: var(--folio-muted, #c9baa0);
  border: 1px solid rgba(255, 255, 255, 0.06);
  background: var(--folio-card, rgba(0, 0, 0, 0.18));
  font-size: var(--ming-font-small, 14px);
  line-height: 1.45;
}
.livelihood-facts b { display: block; margin-bottom: 2px; color: var(--folio-ink, #8fae9f); font-size: var(--ming-font-small, 14px); }
.livelihood-obligations { display: grid; gap: 5px; margin: 0; padding: 0; list-style: none; }
.livelihood-obligations li {
  display: grid;
  grid-template-columns: minmax(74px, 0.75fr) minmax(104px, 1.25fr);
  gap: 2px 10px;
  padding: 7px 9px;
  border-left: 2px solid rgba(166, 71, 56, 0.7);
  background: var(--folio-card, rgba(68, 31, 24, 0.22));
}
.livelihood-obligations span { color: var(--folio-muted, #d8c9ac); font-size: var(--ming-font-small, 14px); font-weight: 700; }
.livelihood-obligations b { color: var(--folio-ink, #d99882); font-size: var(--ming-font-small, 14px); text-align: right; }
.livelihood-obligations small { grid-column: 1 / -1; color: var(--folio-muted, #8d806d); font-size: var(--ming-font-small, 14px); }
.livelihood-obligation-summary { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 6px; }
.livelihood-obligation-summary span { min-width: 0; display: grid; gap: 2px; padding: 6px 7px; border-left: 2px solid rgba(166, 71, 56, 0.68); background: var(--folio-card, rgba(68, 31, 24, 0.22)); }
.livelihood-obligation-summary b { color: var(--folio-ink, #aa9d84); font-size: var(--ming-font-small, 14px); white-space: nowrap; }
.livelihood-obligation-summary em { color: var(--folio-muted, #db9983); font-size: var(--ming-font-small, 14px); font-style: normal; font-weight: 760; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.farm-accounting-note { margin: 0; padding: 7px 9px; color: var(--folio-ink, #9f927c); border-left: 2px solid rgba(113, 166, 143, 0.45); background: var(--folio-card, rgba(15, 32, 25, 0.32)); font-size: var(--ming-font-small, 14px); line-height: 1.45; }
.farm-accounting-note b { margin-right: 7px; color: var(--folio-ink, #9fc0af); }
.livelihood-card.compact .farm-accounting-note { display: -webkit-box; overflow: hidden; -webkit-box-orient: vertical; -webkit-line-clamp: 2; }
.livelihood-expand-hint { color: var(--folio-ink, #887e6d); font-size: var(--ming-font-small, 14px); line-height: 1.35; }
.livelihood-actions { display: grid; gap: 7px; padding-top: 2px; }
.livelihood-actions > span { color: var(--folio-muted, #b9974e); font-size: var(--ming-font-small, 14px); font-weight: 760; letter-spacing: 0.08em; }
.farm-daily-guidance {
  display: grid;
  gap: 12px;
  padding: 16px;
  color: var(--folio-ink, #cfc1a5);
  border: 1px solid rgba(133, 169, 139, 0.32);
  background: var(--folio-card, radial-gradient(circle at 92% 8%, rgba(107, 151, 124, 0.14), transparent 34%),
    linear-gradient(135deg, rgba(22, 43, 33, 0.68), rgba(8, 16, 12, 0.84)));
  box-shadow: inset 3px 0 rgba(105, 157, 129, 0.52);
  font-size: var(--ming-font-small, 14px);
}
.farm-daily-guidance > header,
.farm-routine-actions > header,
.farm-family-labor > header { display: flex; align-items: flex-start; justify-content: space-between; gap: 18px; }
.farm-daily-guidance > header span,
.farm-routine-actions > header span,
.farm-family-labor > header span { color: var(--folio-muted, #8fbea6); font-size: var(--ming-font-small, 14px); font-weight: 780; letter-spacing: 0.08em; }
.farm-daily-guidance > header h4,
.farm-routine-actions > header h4,
.farm-family-labor > header h4 { margin: 3px 0 0; color: var(--folio-ink, #eee0c2); font-size: 17px; line-height: 1.35; }
.farm-daily-guidance > header > b { max-width: 48%; color: var(--folio-ink, #b8aa8f); font-size: var(--ming-font-small, 14px); font-weight: 600; line-height: 1.5; text-align: right; }
.farm-daily-facts { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 8px; }
.farm-daily-facts > span { display: grid; gap: 3px; min-width: 0; padding: 10px 11px; border: 1px solid rgba(143, 190, 166, 0.16); background: var(--folio-card, rgba(1, 8, 5, 0.34)); }
.farm-daily-facts small { color: var(--folio-muted, #9d9078); font-size: var(--ming-font-small, 14px); }
.farm-daily-facts strong { color: var(--folio-ink, #e3d3b2); font-size: 17px; }
.farm-daily-guidance > p { margin: 0; color: var(--folio-muted, #cec0a3); font-size: var(--ming-font-body, 16px); line-height: 1.65; }
.farm-daily-guidance > aside { display: grid; grid-template-columns: auto minmax(0, 1fr); gap: 4px 12px; padding: 11px 13px; border-left: 2px solid rgba(180, 129, 76, 0.72); background: var(--folio-card, rgba(68, 39, 22, 0.26)); }
.farm-daily-guidance > aside b { color: var(--folio-ink, #d7ad72); font-size: var(--ming-font-small, 14px); }
.farm-daily-guidance > aside span { min-width: 0; color: var(--folio-muted, #ddceb1); font-size: var(--ming-font-small, 14px); line-height: 1.5; }
.farm-daily-guidance > aside small { grid-column: 1 / -1; color: var(--folio-muted, #ad9c80); font-size: var(--ming-font-small, 14px); line-height: 1.55; }
.farm-routine-actions,
.farm-family-labor { display: grid; gap: 12px; padding: 15px 16px; border: 1px solid rgba(194, 159, 85, 0.23); background: var(--folio-card, rgba(8, 14, 10, 0.68)); }
.farm-routine-actions > header > small,
.farm-family-labor > header > small { max-width: 52%; color: var(--folio-muted, #9f927b); font-size: var(--ming-font-small, 14px); line-height: 1.55; text-align: right; }
.farm-routine-actions > div { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 9px; }
.farm-routine-action,
.farm-travel-action {
  min-width: 0;
  min-height: 56px;
  display: grid;
  align-items: center;
  padding: 10px 12px;
  border: 1px solid rgba(194, 158, 84, 0.36);
  background: var(--folio-card, linear-gradient(180deg, rgba(64, 49, 23, 0.62), rgba(28, 24, 13, 0.78)));
  text-align: left;
}
.farm-routine-action { grid-template-columns: 34px minmax(0, 1fr); gap: 9px; }
.farm-routine-action > i { width: 32px; height: 32px; display: grid; place-items: center; color: var(--folio-ink, #dcc27d); border: 1px solid rgba(210, 177, 91, 0.42); border-radius: 50%; background: var(--folio-card, rgba(101, 72, 28, 0.24)); font-size: 14px; font-style: normal; font-weight: 800; }
.farm-routine-action > span,
.farm-travel-action { gap: 3px; }
.farm-routine-action b,
.farm-travel-action b { color: var(--folio-ink, #ebdcba); font-size: 14px; }
.farm-routine-action small,
.farm-travel-action small { color: var(--folio-muted, #aa9d83); font-size: var(--ming-font-small, 14px); line-height: 1.45; white-space: normal; }
.farm-routine-action.available,
.farm-travel-action { cursor: pointer; box-shadow: inset 0 1px rgba(255, 238, 184, 0.06); }
.farm-routine-action.available:hover,
.farm-travel-action:hover { border-color: var(--folio-rule, rgba(222, 187, 101, 0.72)); filter: brightness(1.08); transform: translateY(-1px); }
.farm-routine-action.unavailable { opacity: 0.7; border-color: var(--folio-rule, rgba(126, 119, 96, 0.22)); background: var(--folio-card, rgba(12, 17, 13, 0.62)); }
.farm-routine-action.unavailable > i { color: var(--folio-ink, #8f8875); border-color: var(--folio-rule, rgba(142, 134, 107, 0.28)); }
.farm-travel-action { align-content: center; border-color: var(--folio-rule, rgba(102, 164, 134, 0.5)); background: var(--folio-card, linear-gradient(180deg, rgba(38, 74, 57, 0.78), rgba(19, 42, 31, 0.86))); }
.farm-family-labor > div { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; }
.farm-family-labor article { display: grid; grid-template-columns: 34px minmax(0, 1fr); gap: 10px; align-items: start; padding: 11px; border-left: 2px solid rgba(108, 165, 138, 0.55); background: var(--folio-card, rgba(17, 39, 29, 0.3)); }
.farm-family-labor article > i { width: 30px; height: 30px; display: grid; place-items: center; color: var(--folio-ink, #9bc1ac); border: 1px solid rgba(126, 177, 151, 0.32); border-radius: 50%; font-size: var(--ming-font-small, 14px); font-style: normal; }
.farm-family-labor article > div { min-width: 0; display: grid; gap: 3px; }
.farm-family-labor article b { color: var(--folio-ink, #e1d1af); font-size: 14px; }
.farm-family-labor article span { color: var(--folio-muted, #9fc5af); font-size: var(--ming-font-small, 14px); }
.farm-family-labor article small { color: var(--folio-muted, #a39780); font-size: var(--ming-font-small, 14px); line-height: 1.5; }
.farm-family-request-list { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 7px; margin-top: 7px; }
.farm-family-request {
  min-width: 0;
  min-height: 44px;
  display: grid;
  gap: 2px;
  align-content: center;
  padding: 8px 10px;
  border: 1px solid rgba(126, 177, 151, 0.3);
  background: var(--folio-card, linear-gradient(180deg, rgba(36, 70, 53, 0.68), rgba(17, 38, 28, 0.8)));
  text-align: left;
}
.farm-family-request b { color: var(--folio-ink, #d9cfaa); font-size: var(--ming-font-small, 14px); }
.farm-family-request small { color: var(--folio-muted, #9fbaa8); font-size: var(--ming-font-small, 14px); line-height: 1.4; }
.farm-family-request:not(:disabled) { cursor: pointer; }
.farm-family-request:not(:disabled):hover { border-color: var(--folio-rule, rgba(153, 205, 177, 0.66)); filter: brightness(1.08); }
.farm-family-request:disabled { opacity: 0.64; }
.farm-family-labor article.unavailable { opacity: 0.66; border-left-color: var(--folio-rule, rgba(133, 118, 87, 0.36)); background: var(--folio-card, rgba(30, 27, 20, 0.26)); }
.farm-family-labor > div > p { grid-column: 1 / -1; margin: 0; color: var(--folio-muted, #aa9b80); font-size: var(--ming-font-body, 16px); }
.farm-family-labor > footer { display: grid; grid-template-columns: auto minmax(0, 1fr); gap: 10px; padding-top: 10px; border-top: 1px solid rgba(195, 161, 87, 0.15); }
.farm-family-labor > footer b { color: var(--folio-ink, #cfad65); font-size: var(--ming-font-small, 14px); }
.farm-family-labor > footer span { color: var(--folio-muted, #aa9b81); font-size: var(--ming-font-small, 14px); line-height: 1.55; }

.family-farm-settlements {
  display: grid;
  gap: 9px;
  margin: 14px 0;
  padding: 12px 13px;
  border: 1px solid rgba(126, 177, 151, 0.32);
  border-left: 3px solid rgba(117, 176, 145, 0.82);
  background: linear-gradient(90deg, rgba(20, 49, 35, 0.68), rgba(9, 19, 14, 0.7));
}
.family-farm-settlements > header {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 12px;
}
.family-farm-settlements > header b { color: #d8c593; font-size: 14px; }
.family-farm-settlements > header small { color: #9fb5a7; font-size: var(--ming-font-small, 14px); line-height: 1.45; }
.family-farm-settlements > div { display: grid; gap: 7px; }
.family-farm-settlements article {
  display: grid;
  grid-template-columns: 32px minmax(0, 1fr);
  gap: 10px;
  align-items: start;
  padding: 9px 10px;
  border: 1px solid rgba(142, 178, 157, 0.17);
  background: rgba(8, 17, 12, 0.56);
}
.family-farm-settlements article > i {
  width: 30px;
  height: 30px;
  display: grid;
  place-items: center;
  color: #c9b472;
  border: 1px solid rgba(201, 180, 114, 0.42);
  border-radius: 50%;
  font-size: var(--ming-font-small, 14px);
  font-style: normal;
}
.family-farm-settlements article > span { display: grid; gap: 2px; min-width: 0; letter-spacing: normal; }
.family-farm-settlements article b { color: #e2d3ae; font-size: 14px; line-height: 1.42; }
.family-farm-settlements article small { color: #b3c3b8; font-size: var(--ming-font-small, 14px); line-height: 1.55; }
.family-farm-settlements article.blocked { border-color: rgba(166, 91, 69, 0.35); background: rgba(59, 25, 19, 0.35); }
.family-farm-settlements article.blocked > i { color: #d7a28d; border-color: rgba(178, 96, 72, 0.5); }
.family-farm-settlements article.completed > i { color: #b9d6c4; border-color: rgba(120, 184, 148, 0.52); }
.family-household-change-ledger,
.family-clothing-repair-ledger {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 7px;
  margin: 8px 0 0;
}
.family-household-change-ledger > div,
.family-clothing-repair-ledger > div {
  display: grid;
  gap: 4px;
  min-width: 0;
  padding: 8px 9px;
  border: 1px solid rgba(146, 183, 162, 0.2);
  background: rgba(18, 35, 26, 0.78);
}
.family-household-change-ledger dt,
.family-clothing-repair-ledger dt {
  color: #91ad9d;
  font-size: var(--ming-font-small, 14px);
  line-height: 1.35;
}
.family-household-change-ledger dd,
.family-clothing-repair-ledger dd {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 8px;
  min-width: 0;
  margin: 0;
}
.family-household-change-ledger dd b,
.family-clothing-repair-ledger dd b { overflow-wrap: anywhere; }
.family-household-change-ledger dd small,
.family-clothing-repair-ledger dd small { color: #d4c18e; white-space: nowrap; }
.family-storage-tidying-ledger > div:first-child {
  border-color: rgba(194, 158, 84, 0.34);
  background: linear-gradient(135deg, rgba(75, 54, 23, 0.44), rgba(18, 35, 26, 0.78));
}
.family-farm-settlements.compact { margin: 9px 0 0; padding: 9px 10px; }
.family-farm-settlements.compact > header small { display: none; }
.family-farm-settlements.compact article { padding: 7px 8px; }

.employment-settlements {
  display: grid;
  gap: 9px;
  margin: 14px 0;
  padding: 12px 13px;
  color: #d8c9a7;
  border: 1px solid rgba(196, 158, 82, 0.34);
  border-left: 3px solid rgba(201, 164, 86, 0.82);
  background: linear-gradient(90deg, rgba(52, 40, 19, 0.72), rgba(18, 18, 12, 0.74));
  font-size: var(--ming-font-small, 14px);
}
.employment-settlements > header { display: flex; align-items: baseline; justify-content: space-between; gap: 12px; }
.employment-settlements > header b { color: #e5d3a3; font-size: 14px; }
.employment-settlements > header small { color: #b9ae92; font-size: var(--ming-font-small, 14px); line-height: 1.45; }
.employment-settlements > div { display: grid; gap: 7px; }
.employment-settlements article {
  display: grid;
  grid-template-columns: 32px minmax(0, 1fr) auto;
  gap: 10px;
  align-items: center;
  padding: 9px 10px;
  border: 1px solid rgba(196, 168, 105, 0.2);
  background: rgba(15, 15, 9, 0.58);
}
.employment-settlements article > i {
  width: 30px;
  height: 30px;
  display: grid;
  place-items: center;
  color: #c9b472;
  border: 1px solid rgba(201, 180, 114, 0.42);
  border-radius: 50%;
  font-size: var(--ming-font-small, 14px);
  font-style: normal;
}
.employment-settlements article > span { display: grid; gap: 2px; min-width: 0; }
.employment-settlements article b { color: #eadbb7; font-size: 14px; line-height: 1.42; }
.employment-settlements article small { color: #c6bda7; font-size: var(--ming-font-small, 14px); line-height: 1.55; }
.employment-settlements article > em { color: #bea66b; font-size: var(--ming-font-small, 14px); font-style: normal; white-space: nowrap; }
.employment-settlements article.arrears { border-color: rgba(178, 96, 72, 0.42); background: rgba(59, 25, 19, 0.4); }
.employment-settlements article.arrears > i { color: #e0aa94; border-color: rgba(190, 104, 78, 0.56); }
.employment-settlements article.paid > i { color: #b9d6c4; border-color: rgba(120, 184, 148, 0.52); }
.employment-settlements.compact { margin: 9px 0 0; padding: 9px 10px; }
.employment-settlements.compact > header small { display: none; }
.employment-settlements.compact article { padding: 7px 8px; }

@media (max-width: 620px) {
  .family-farm-settlements > header { align-items: flex-start; flex-direction: column; gap: 3px; }
  .family-household-change-ledger,
  .family-clothing-repair-ledger { grid-template-columns: 1fr; }
  .employment-settlements > header { align-items: flex-start; flex-direction: column; gap: 3px; }
  .employment-settlements article { grid-template-columns: 32px minmax(0, 1fr); }
  .employment-settlements article > em { grid-column: 2; white-space: normal; }
}
.livelihood-unusual-actions { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; }
.livelihood-unusual-actions .system-action-seed { min-height: 56px; padding: 10px 12px; }
.livelihood-unusual-actions .system-action-seed span,
.livelihood-unusual-actions .system-action-seed small { font-size: var(--ming-font-small, 14px); }
.livelihood-tenure-ledger {
  display: grid;
  gap: 12px;
  padding: 15px 16px;
  border: 1px solid rgba(181, 146, 74, 0.34);
  border-left: 3px solid rgba(200, 163, 83, 0.78);
  background: var(--folio-card, linear-gradient(135deg, rgba(79, 58, 24, 0.2), transparent 56%),
    rgba(9, 15, 11, 0.78));
  box-shadow: inset 0 1px rgba(255, 238, 187, 0.04), 0 10px 24px rgba(0, 0, 0, 0.13);
}
.livelihood-tenure-ledger > header { display: flex; align-items: flex-start; justify-content: space-between; gap: 12px; }
.livelihood-tenure-ledger > header span { color: var(--folio-muted, #bca366); font-size: var(--ming-font-small, 14px); font-weight: 760; letter-spacing: 0.08em; }
.livelihood-tenure-ledger > header h4 { margin: 4px 0 0; color: var(--folio-ink, #f0dfb8); font-size: 18px; line-height: 1.35; }
.livelihood-tenure-ledger > header > b {
  flex: 0 0 auto;
  padding: 7px 10px;
  border: 1px solid rgba(123, 174, 142, 0.36);
  color: var(--folio-ink, #a8cfb5);
  background: var(--folio-card, rgba(38, 78, 55, 0.22));
  font-size: var(--ming-font-small, 14px);
}
.livelihood-tenure-ledger dl { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 8px; margin: 0; }
.livelihood-tenure-ledger dl > div { min-width: 0; display: grid; gap: 4px; padding: 10px; background: var(--folio-card, rgba(0, 0, 0, 0.2)); }
.livelihood-tenure-ledger dt { color: var(--folio-muted, #a99b7d); font-size: var(--ming-font-small, 14px); }
.livelihood-tenure-ledger dd { margin: 0; color: var(--folio-ink, #e3d2af); font-size: var(--ming-font-small, 14px); font-weight: 720; line-height: 1.45; }
.livelihood-tenure-ledger > p { margin: 0; color: var(--folio-muted, #bbb099); font-size: var(--ming-font-body, 16px); line-height: 1.65; }

.actor-dialogue-farm-request {
  display: grid;
  grid-template-columns: 40px minmax(0, 1fr);
  gap: 7px 12px;
  align-items: center;
  padding: 13px 15px;
  border: 1px solid rgba(130, 177, 145, 0.32);
  border-left: 3px solid rgba(111, 171, 137, 0.72);
  background: var(--folio-card, linear-gradient(100deg, rgba(22, 54, 38, 0.72), rgba(12, 24, 17, 0.76)));
}
.actor-dialogue-farm-request > i { grid-row: 1 / span 2; width: 38px; height: 38px; display: grid; place-items: center; color: var(--folio-ink, #a9d0b7); border: 1px solid rgba(138, 190, 159, 0.38); border-radius: 50%; font-size: 15px; font-style: normal; font-weight: 800; }
.actor-dialogue-farm-request > span { min-width: 0; display: grid; gap: 2px; font-size: var(--ming-font-small, 14px); }
.actor-dialogue-farm-request small { color: var(--folio-muted, #90b9a2); font-size: var(--ming-font-small, 14px); }
.actor-dialogue-farm-request b { color: var(--folio-ink, #eadcba); font-size: 15px; }
.actor-dialogue-farm-request em { color: var(--folio-muted, #baa98a); font-size: var(--ming-font-small, 14px); font-style: normal; }
.actor-dialogue-farm-request > p { grid-column: 2; margin: 0; color: var(--folio-muted, #b7aa90); font-size: var(--ming-font-body, 16px); line-height: 1.5; }
.actor-dialogue-farm-request.hauling {
  border-color: var(--folio-rule, rgba(196, 157, 82, 0.42));
  border-left-color: var(--folio-rule, #b78b43);
  background: var(--folio-card, #241d10);
}
.actor-dialogue-farm-request.hauling > i { color: var(--folio-ink, #e1c17b); border-color: var(--folio-rule, rgba(212, 174, 95, 0.48)); }
.actor-dialogue-farm-request.hauling small { color: var(--folio-muted, #c6a967); }
.actor-dialogue-farm-request.hauling > p { color: var(--folio-muted, #c8b99b); }
.livelihood-harvest-state {
  position: relative;
  display: grid;
  grid-template-columns: 84px minmax(0, 1fr) auto;
  align-items: center;
  gap: 14px;
  min-height: 96px;
  overflow: hidden;
  padding: 10px 12px 10px 8px;
  border: 1px solid rgba(196, 163, 90, 0.34);
  background: var(--folio-card, radial-gradient(circle at 8% 50%, rgba(185, 139, 54, 0.18), transparent 25%),
    linear-gradient(100deg, rgba(46, 37, 18, 0.62), rgba(7, 13, 10, 0.84)));
  box-shadow: inset 3px 0 rgba(191, 150, 67, 0.65), 0 8px 24px rgba(0, 0, 0, 0.16);
}
.livelihood-harvest-state::after { content: ''; position: absolute; inset: 0; pointer-events: none; border: 1px solid rgba(255, 232, 173, 0.035); }
.livelihood-harvest-state > img { width: 80px; height: 80px; object-fit: contain; filter: drop-shadow(0 7px 10px rgba(0, 0, 0, 0.52)); }
.livelihood-harvest-state > div { min-width: 0; display: grid; gap: 3px; }
.livelihood-harvest-state > div span { color: var(--folio-muted, #c4a45d); font-size: var(--ming-font-small, 14px); font-weight: 760; letter-spacing: 0.08em; }
.livelihood-harvest-state > div b { color: var(--folio-ink, #f0dfb8); font-size: 17px; line-height: 1.2; }
.livelihood-harvest-state > div small { color: var(--folio-muted, #b9ad95); font-size: var(--ming-font-small, 14px); line-height: 1.55; }
.harvest-labor-progress { height: 8px; overflow: hidden; border: 1px solid rgba(201, 169, 95, 0.36); background: rgba(0, 0, 0, 0.34); }
.harvest-labor-progress > i { display: block; height: 100%; background: linear-gradient(90deg, #80662f, #d3ad58); box-shadow: 0 0 10px rgba(206, 166, 78, 0.22); }
.livelihood-harvest-state > button {
  position: relative;
  z-index: 1;
  min-width: 154px;
  min-height: 60px;
  display: grid;
  align-content: center;
  gap: 4px;
  padding: 9px 16px;
  color: var(--folio-ink, #f3e2b7);
  border: 1px solid rgba(213, 177, 91, 0.58);
  background: var(--folio-card, linear-gradient(180deg, rgba(91, 68, 28, 0.88), rgba(48, 35, 16, 0.94)));
  box-shadow: inset 0 1px rgba(255, 239, 193, 0.09), 0 5px 14px rgba(0, 0, 0, 0.24);
  cursor: pointer;
}
.livelihood-harvest-state > button:hover { border-color: var(--folio-rule, rgba(232, 199, 116, 0.86)); filter: brightness(1.08); transform: translateY(-1px); }
.livelihood-harvest-state > button b { font-size: 15px; }
.livelihood-harvest-state > button small { color: var(--folio-muted, #c8ba9b); font-size: var(--ming-font-small, 14px); }
.livelihood-harvest-state > button:disabled { color: var(--folio-ink, #b5aa93); border-color: var(--folio-rule, rgba(130, 116, 83, 0.34)); background: var(--folio-card, #302b20); box-shadow: none; cursor: not-allowed; filter: none; transform: none; }
.livelihood-harvest-state.working { border-color: var(--folio-rule, rgba(190, 143, 70, 0.46)); background: var(--folio-card, radial-gradient(circle at 8% 50%, rgba(167, 113, 38, 0.2), transparent 27%), linear-gradient(100deg, rgba(55, 37, 17, 0.72), rgba(8, 14, 10, 0.88))); }
.livelihood-harvest-state.working > div span { color: var(--folio-muted, #d5aa58); }
.livelihood-harvest-state.waiting { border-color: var(--folio-rule, rgba(126, 116, 90, 0.25)); background: var(--folio-card, rgba(7, 13, 10, 0.62)); box-shadow: inset 3px 0 rgba(113, 104, 81, 0.38); }
.livelihood-harvest-state.waiting > img { filter: grayscale(0.55) opacity(0.6) drop-shadow(0 5px 8px rgba(0, 0, 0, 0.45)); }
.livelihood-harvest-state.stored { border-color: var(--folio-rule, rgba(112, 166, 142, 0.38)); box-shadow: inset 3px 0 rgba(100, 164, 135, 0.62), 0 8px 24px rgba(0, 0, 0, 0.16); }
.livelihood-harvest-state.stored > div span { color: var(--folio-muted, #8fc0a9); }
.harvest-hauling-choices {
  position: relative;
  z-index: 1;
  grid-column: 1 / -1;
  min-width: 0;
  display: grid;
  gap: 11px;
  padding: 13px;
  border: 1px solid rgba(103, 161, 134, 0.42);
  background: #0b1711;
  box-shadow: inset 3px 0 #548b70;
}
.harvest-hauling-choices > header {
  min-width: 0;
  display: flex;
  align-items: end;
  justify-content: space-between;
  gap: 10px 18px;
  padding-bottom: 10px;
  border-bottom: 1px solid rgba(111, 153, 129, 0.28);
}
.harvest-hauling-choices > header > div { min-width: 0; display: grid; gap: 3px; }
.harvest-hauling-choices > header span { color: #91bea8; font-size: var(--ming-font-small, 14px); font-weight: 780; letter-spacing: 0.08em; }
.harvest-hauling-choices > header b { color: #eadbb8; font-size: 15px; line-height: 1.45; }
.harvest-hauling-choices > header small { max-width: 420px; color: #aab7ae; font-size: var(--ming-font-small, 14px); line-height: 1.55; text-align: right; }
.harvest-hauling-choices > div {
  min-width: 0;
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 9px;
}
.harvest-hauling-choices button {
  min-width: 0;
  min-height: 54px;
  display: grid;
  align-content: center;
  gap: 3px;
  padding: 9px 11px;
  border: 1px solid rgba(184, 148, 78, 0.48);
  background: #2b2414;
  color: #eddbac;
  text-align: left;
  cursor: pointer;
}
.harvest-hauling-choices button:hover,
.harvest-hauling-choices button:focus-visible { border-color: #d4ad63; background: #3a2f19; }
.harvest-hauling-choices button b { font-size: 14px; line-height: 1.45; }
.harvest-hauling-choices button small { color: #b8b09d; font-size: var(--ming-font-small, 14px); line-height: 1.48; }
.harvest-hauling-choices button.family-consent {
  padding-left: 14px;
  border-color: rgba(113, 178, 145, 0.52);
  border-left: 3px solid #6ba883;
  background: #14241b;
  color: #e8ddbd;
}
.harvest-hauling-choices button.family-consent:hover,
.harvest-hauling-choices button.family-consent:focus-visible { border-color: #91c5a7; background: #1c3025; }
.harvest-hauling-choices button.family-consent small { color: #aebead; }
.harvest-hauling-choices button:disabled { border-color: rgba(123, 119, 99, 0.34); background: #20231d; color: #a8aa9f; cursor: not-allowed; }
.farm-tool-maintenance {
  display: grid;
  gap: 12px;
  padding: 14px;
  color: var(--folio-ink, #c8bda5);
  border: 1px solid rgba(132, 164, 139, 0.31);
  background: var(--folio-card, #0b1510);
  box-shadow: inset 3px 0 #496c57, 0 8px 22px rgba(0, 0, 0, 0.16);
  font-size: var(--ming-font-small, 14px);
}
.farm-tool-maintenance > header { display: flex; align-items: flex-start; justify-content: space-between; gap: 13px; }
.farm-tool-maintenance > header > div { min-width: 0; display: grid; gap: 3px; }
.farm-tool-maintenance > header span { color: var(--folio-muted, #91b49e); font-size: var(--ming-font-small, 14px); letter-spacing: 0.08em; }
.farm-tool-maintenance > header h4 { margin: 0; color: var(--folio-ink, #ead9b5); font-family: var(--font-brush); font-size: 22px; font-weight: 400; }
.farm-tool-maintenance > header p { margin: 0; color: var(--folio-muted, #c7b99e); font-size: var(--ming-font-body, 16px); line-height: 1.5; }
.farm-tool-maintenance > header > strong { align-self: start; padding: 7px 9px; color: var(--folio-ink, #d7c490); border: 1px solid rgba(198, 165, 92, 0.34); background: var(--folio-card, #17160f); font-size: var(--ming-font-small, 14px); font-weight: 650; }
.farm-tool-ledger-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; }
.farm-tool-card { min-width: 0; display: grid; align-content: start; gap: 9px; padding: 11px; border: 1px solid rgba(137, 161, 145, 0.27); background: var(--folio-card, #09110c); }
.farm-tool-card.just-used { border-color: var(--folio-rule, rgba(211, 178, 99, 0.76)); box-shadow: inset 4px 0 #c7a359, 0 0 0 2px rgba(199, 163, 89, 0.13), 0 10px 24px rgba(0, 0, 0, 0.24); }
.farm-tool-card.just-used:focus { outline: 2px solid rgba(225, 196, 126, 0.55); outline-offset: 2px; }
.farm-tool-card > header { display: grid; grid-template-columns: 84px minmax(0, 1fr); align-items: stretch; gap: 11px; }
.farm-tool-card > header figure { width: 82px; min-height: 104px; display: grid; place-items: center; margin: 0; border: 1px solid rgba(194, 163, 94, 0.28); background: #10160e; }
.farm-tool-card > header figure img { width: 76px; height: 96px; object-fit: contain; filter: drop-shadow(0 6px 9px rgba(0, 0, 0, 0.48)); }
.farm-tool-card > header > div { min-width: 0; display: grid; align-content: center; gap: 3px; }
.farm-tool-card > header span { color: var(--folio-muted, #c8a35a); font-size: var(--ming-font-small, 14px); font-weight: 760; letter-spacing: 0.06em; }
.farm-tool-card > header h4 { margin: 0; color: var(--folio-ink, #ead9b5); font-size: 18px; }
.farm-tool-card > header p,
.farm-tool-card > header small { margin: 0; color: var(--folio-muted, #b8ad98); font-size: var(--ming-font-small, 14px); line-height: 1.45; }
.farm-tool-card > header > div > i { height: 7px; overflow: hidden; border: 1px solid rgba(151, 181, 160, 0.28); background: var(--folio-card, #040806); }
.farm-tool-card > header > div > i b { display: block; height: 100%; background: var(--folio-card, #789c82); }
.farm-tool-route-list { display: grid; gap: 7px; }
.farm-tool-route { min-width: 0; display: grid; grid-template-columns: minmax(0, 1fr) 164px; align-items: stretch; gap: 8px; padding: 8px; border: 1px solid rgba(122, 145, 129, 0.22); background: var(--folio-card, #0d120e); }
.farm-tool-route.available { border-color: var(--folio-rule, rgba(172, 147, 85, 0.45)); box-shadow: inset 0 1px rgba(235, 215, 164, 0.05); }
.farm-tool-route > div { min-width: 0; display: grid; gap: 6px; }
.farm-tool-route header { display: grid; grid-template-columns: 30px minmax(0, 1fr); align-items: center; gap: 7px; }
.farm-tool-route header > i { width: 28px; height: 28px; display: grid; place-items: center; color: var(--folio-ink, #dfca91); border: 1px solid rgba(200, 168, 91, 0.42); border-radius: 50%; font-style: normal; font-weight: 800; }
.farm-tool-route header > span { min-width: 0; display: grid; gap: 1px; }
.farm-tool-route header b { color: var(--folio-ink, #eadbb8); font-size: 14px; }
.farm-tool-route header small { color: var(--folio-muted, #ab9e88); font-size: var(--ming-font-small, 14px); line-height: 1.35; }
.farm-tool-materials { display: flex; flex-wrap: wrap; gap: 6px; }
.farm-tool-materials > span { min-width: 0; flex: 1 1 118px; display: grid; grid-template-columns: 28px minmax(0, 1fr); align-items: center; gap: 6px; padding: 5px; border: 1px solid rgba(122, 145, 129, 0.2); background: var(--folio-card, #080d0a); }
.farm-tool-materials > span.missing { border-color: var(--folio-rule, rgba(151, 91, 77, 0.38)); }
.farm-tool-materials img { width: 26px; height: 26px; object-fit: contain; }
.farm-tool-materials i { min-width: 0; display: grid; font-style: normal; }
.farm-tool-materials b { color: var(--folio-ink, #d4c8ad); font-size: var(--ming-font-small, 14px); }
.farm-tool-materials small { color: var(--folio-muted, #9e927d); font-size: var(--ming-font-small, 14px); }
.farm-tool-route-list button { min-height: 56px; display: grid; align-content: center; gap: 3px; padding: 8px 10px; color: var(--folio-ink, #ecdbb1); border: 1px solid rgba(192, 158, 82, 0.48); background: var(--folio-card, #3b3019); cursor: pointer; }
.farm-tool-route-list button:hover { border-color: var(--folio-rule, rgba(228, 195, 114, 0.75)); background: var(--folio-hover, #4a3c20); }
.farm-tool-route-list button b { font-size: 14px; }
.farm-tool-route-list button small { color: var(--folio-muted, #c3b494); font-size: var(--ming-font-small, 14px); line-height: 1.4; }
.farm-tool-route-list button:disabled { color: var(--folio-ink, #968f81); border-color: var(--folio-rule, rgba(112, 105, 90, 0.24)); background: var(--folio-card, #1d211d); cursor: not-allowed; }
.farm-tool-maintenance > footer { color: var(--folio-ink, #aaa08d); font-size: var(--ming-font-small, 14px); line-height: 1.55; }
@media (min-width: 621px) {
  .farm-tool-card:last-child:nth-child(odd) {
    grid-column: 1 / -1;
    grid-template-columns: minmax(280px, 0.82fr) minmax(0, 1.18fr);
    align-items: start;
    gap: 14px;
  }
  .farm-tool-card:last-child:nth-child(odd) > header { align-self: stretch; }
}
.livelihood-actions > div { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 8px; }
.livelihood-actions > .farm-routine-actions,
.livelihood-actions > .farm-family-labor,
.livelihood-actions > .farm-daily-guidance { display: grid; }
.livelihood-actions > .livelihood-unusual-actions { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.livelihood-actions .system-action-seed { min-height: 54px; align-content: center; padding: 8px 10px; }
.livelihood-actions .system-action-seed span { font-size: 14px; }
.livelihood-actions .system-action-seed small { font-size: var(--ming-font-small, 14px); line-height: 1.45; }
.system-focus-body .livelihood-card { min-height: 100%; padding: 18px; gap: 14px; }
.system-focus-body .livelihood-card > header h3 { font-size: 24px; }
.system-focus-body .livelihood-card > header span,
.system-focus-body .livelihood-card > header p,
.system-focus-body .livelihood-card > header > strong { font-size: var(--ming-font-body, 16px); }
.system-focus-body .livelihood-metrics small,
.system-focus-body .livelihood-metrics em,
.system-focus-body .livelihood-facts span,
.system-focus-body .livelihood-obligations span,
.system-focus-body .livelihood-obligations b { font-size: var(--ming-font-small, 14px); }
.system-focus-body .livelihood-obligations small { font-size: var(--ming-font-small, 14px); }
.system-focus-body .farm-accounting-note,
.system-focus-body .livelihood-expand-hint { font-size: var(--ming-font-small, 14px); }

@media (max-width: 620px) {
  .livelihood-metrics,
  .livelihood-facts,
  .livelihood-actions > div,
  .farm-daily-facts,
  .farm-routine-actions > div,
  .farm-family-labor > div,
  .residence-repair-actions > div { grid-template-columns: 1fr; }
  .livelihood-actions > .livelihood-unusual-actions { grid-template-columns: 1fr; }
  .livelihood-tenure-ledger dl { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .livelihood-tenure-ledger > header { align-items: stretch; flex-direction: column; }
  .livelihood-tenure-ledger > header > b { align-self: flex-start; }
  .livelihood-obligation-summary { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .livelihood-card > header { align-items: stretch; flex-direction: column; }
  .livelihood-card > header > strong { align-self: flex-start; }
  .farm-daily-guidance,
  .farm-routine-actions,
  .farm-family-labor { padding: 13px; }
  .farm-daily-guidance > header,
  .farm-routine-actions > header,
  .farm-family-labor > header { align-items: stretch; flex-direction: column; gap: 7px; }
  .farm-daily-guidance > header > b,
  .farm-routine-actions > header > small,
  .farm-family-labor > header > small { max-width: none; text-align: left; }
  .farm-daily-guidance > aside,
  .farm-family-labor > footer { grid-template-columns: 1fr; }
  .farm-family-request-list { grid-template-columns: 1fr; }
  .actor-dialogue-farm-request { grid-template-columns: 36px minmax(0, 1fr); padding: 12px; }
  .farm-daily-guidance > aside small { grid-column: auto; }
  .livelihood-harvest-state { grid-template-columns: 70px minmax(0, 1fr); }
  .livelihood-harvest-state > img { width: 66px; height: 66px; }
  .livelihood-harvest-state > button { grid-column: 1 / -1; width: 100%; }
  .harvest-hauling-choices > header { align-items: start; flex-direction: column; }
  .harvest-hauling-choices > header small { max-width: none; text-align: left; }
  .harvest-hauling-choices > div { grid-template-columns: 1fr; }
  .farm-tool-maintenance { padding: 12px; }
  .farm-tool-maintenance > header { align-items: stretch; flex-direction: column; }
  .farm-tool-maintenance > header > strong { align-self: flex-start; }
  .farm-tool-ledger-grid { grid-template-columns: 1fr; }
  .farm-tool-card > header { grid-template-columns: 72px minmax(0, 1fr); }
  .farm-tool-card > header figure { width: 70px; min-height: 94px; }
  .farm-tool-card > header figure img { width: 64px; height: 86px; }
  .farm-tool-route { grid-template-columns: 1fr; }
  .farm-tool-wear-reminder { grid-template-columns: 64px minmax(0, 1fr); gap: 9px; padding: 9px; }
  .farm-tool-wear-reminder > figure { width: 64px; min-height: 82px; }
  .farm-tool-wear-reminder > figure img { width: 58px; height: 74px; }
  .farm-tool-wear-reminder > aside { grid-column: 1 / -1; border-top: 1px solid rgba(198, 166, 96, 0.2); border-left: 0; }
  .domain-home-context { padding-right: 0; }
  .domain-home-context::before { opacity: 0.16; width: 100%; }
  .residence-ledger-card,
  .system-focus-body .residence-ledger-card { padding: 14px; background-position: center; }
  .residence-ledger-card::before { content: ''; position: absolute; inset: 0; background: rgba(5, 9, 7, 0.78); }
  .system-focus-body .residence-ledger-card.expanded > header,
  .system-focus-body .residence-ledger-card.expanded > p,
  .system-focus-body .residence-ledger-card.expanded > .residence-metrics,
  .system-focus-body .residence-ledger-card.expanded > .residence-facilities,
  .system-focus-body .residence-ledger-card.expanded > .residence-repairs { width: 100%; }
  .residential-construction > header { grid-template-columns: 96px minmax(0, 1fr); align-items: start; }
  .residential-construction > header figure { width: 96px; height: 82px; }
  .residential-construction > header > strong { grid-column: 1 / -1; justify-self: stretch; text-align: center; }
  .residential-construction-stages { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .residential-construction-stages > span:nth-child(3) { border-left: 0; border-top: 1px solid rgba(197, 164, 91, 0.18); }
  .residential-construction-stages > span:nth-child(4) { border-top: 1px solid rgba(197, 164, 91, 0.18); }
  .residential-construction-body,
  .residential-construction > footer { grid-template-columns: 1fr; }
  .residential-construction-materials,
  .residential-construction > footer > div { grid-template-columns: 1fr; }
  .home-operation-ledger > header,
  .residence-maintenance-ledger > header,
  .dwelling-storage > header { align-items: stretch; flex-direction: column; }
  .home-action-grid,
  .dwelling-storage-columns { grid-template-columns: 1fr; }
  .home-action-card { grid-template-columns: 72px minmax(0, 1fr); }
  .home-action-card figure { width: 72px; height: 72px; }
  .activity-boundary-strip,
  .settlement-readiness-list,
  .building-scope-strip,
  .building-empty-account,
  .system-focus-body .activity-section .home-action-grid { grid-template-columns: 1fr; }
  .activity-boundary-strip > span + span { border-top: 1px solid rgba(190, 157, 87, 0.18); border-left: 0; }
  .daily-activity-ledger > header { flex-direction: column; }
  .daily-activity-ledger > header dl { width: 100%; grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .activity-water-forecast { grid-template-columns: 32px minmax(0, 1fr); }
  .activity-water-forecast > em { grid-column: 2; white-space: normal; }
  .daily-activity-ledger > header span,
  .daily-activity-ledger .activity-section > header span,
  .daily-activity-ledger .activity-section > header > b,
  .daily-activity-ledger .activity-boundary-strip b,
  .daily-activity-ledger .activity-boundary-strip small,
  .daily-activity-ledger .home-action-card span,
  .daily-activity-ledger .home-action-card footer b,
  .daily-activity-ledger .activity-water-forecast small,
  .daily-activity-ledger .activity-water-forecast em { font-size: var(--ming-font-small, 14px); }
  .building-scope-strip > span + span,
  .building-scope-strip > button { border-top: 1px solid rgba(190, 156, 85, 0.17); border-left: 0; }
  .building-scope-strip > button { min-height: 44px; }
  .system-focus-body .activity-section .home-action-card { min-height: 0; grid-template-columns: 82px minmax(0, 1fr); grid-template-rows: auto; }
  .system-focus-body .activity-section .home-action-card figure { width: 82px; height: 82px; }
}

/* V0.42 · 右栏只保留摘要，长资料进入可滚动的独立卷页 */
.system-detail-shell {
  min-width: 0;
  min-height: 0;
  display: grid;
  grid-template-rows: 48px minmax(0, 1fr);
  overflow: hidden;
}

.system-detail-disclosure {
  min-width: 0;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  padding: 5px 10px 5px 12px;
  border-bottom: 1px solid rgba(208, 174, 105, 0.16);
  background:
    linear-gradient(90deg, rgba(117, 83, 38, 0.15), transparent 45%),
    rgba(8, 13, 11, 0.84);
}

.system-detail-disclosure > span {
  min-width: 0;
  display: grid;
  grid-template-columns: 28px minmax(0, 1fr);
  grid-template-rows: auto auto;
  align-items: center;
  column-gap: 8px;
}

.system-detail-disclosure > span i {
  grid-row: 1 / 3;
  width: 28px;
  height: 28px;
  display: grid;
  place-items: center;
  color: #dec481;
  border: 1px solid rgba(201, 164, 87, 0.34);
  border-radius: 50%;
  background: rgba(82, 59, 26, 0.22);
  font-family: var(--font-brush);
  font-size: 17px;
  font-style: normal;
}

.system-detail-disclosure > span b {
  overflow: hidden;
  color: #ddcfad;
  font-size: var(--ming-font-small, 14px);
  line-height: 1.2;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.system-detail-disclosure > span small {
  color: #7f8f85;
  font-size: var(--ming-font-small, 14px);
  line-height: 1.2;
}

.system-detail-disclosure > button {
  min-width: 132px;
  min-height: 38px;
  display: grid;
  grid-template-columns: auto 1fr;
  align-items: center;
  gap: 0 8px;
  padding: 4px 11px;
  color: #d8c79f;
  border: 1px solid rgba(189, 154, 82, 0.42);
  border-radius: 2px;
  background: rgba(31, 42, 35, 0.78);
  text-align: left;
  cursor: pointer;
}

.system-detail-disclosure > button:hover,
.system-detail-disclosure > button:focus-visible {
  color: #f1dfb5;
  border-color: rgba(223, 187, 108, 0.72);
  background: rgba(45, 61, 50, 0.92);
  outline: none;
}

.system-detail-disclosure > button b {
  grid-row: 1 / 3;
  color: #d9b967;
  font-family: var(--font-brush);
  font-size: 20px;
  font-weight: 400;
}

.system-detail-disclosure > button small {
  font-size: var(--ming-font-small, 14px);
  font-weight: 700;
  line-height: 1.2;
  white-space: nowrap;
}

.system-detail-shell > .system-detail {
  min-height: 0;
  max-height: none;
}

.system-focus-backdrop {
  position: fixed;
  z-index: 1300;
  inset: 0;
  display: grid;
  place-items: center;
  padding: 20px;
  background:
    radial-gradient(circle at 50% 18%, rgba(83, 104, 78, 0.16), transparent 42%),
    rgba(2, 5, 4, 0.88);
  backdrop-filter: blur(4px);
}

.system-focus-panel {
  width: min(1180px, calc(100vw - 40px));
  max-height: calc(100svh - 40px);
  min-height: min(700px, calc(100svh - 40px));
  display: grid;
  grid-template-rows: minmax(188px, 26svh) minmax(0, 1fr);
  overflow: hidden;
  color: var(--folio-ink, #ddd1b8);
  border: 1px solid rgba(208, 174, 105, 0.46);
  border-radius: 4px;
  background: var(--folio-card, linear-gradient(90deg, rgba(123, 47, 36, 0.12), transparent 19%),
    repeating-linear-gradient(90deg, rgba(255, 255, 255, 0.012) 0 1px, transparent 1px 7px),
    #09100d);
  box-shadow: 0 32px 90px rgba(0, 0, 0, 0.72), inset 4px 0 rgba(137, 54, 43, 0.82);
}

.system-focus-panel:focus { outline: none; }

.system-focus-hero {
  contain: layout paint;
}

.system-focus-heading {
  position: relative;
  display: grid;
  grid-template-columns: 62px minmax(0, 560px) 1fr auto;
  align-content: end;
  align-items: end;
  gap: 16px;
  min-height: 188px;
  padding: 28px 24px 24px 30px;
  isolation: isolate;
  overflow: hidden;
  border-bottom: 1px solid rgba(208, 174, 105, 0.28);
  background: var(--folio-card, #0b110e);
}

.system-focus-art {
  position: absolute;
  z-index: -3;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
  filter: saturate(0.82) contrast(1.04) brightness(0.78);
}

.system-focus-shade {
  position: absolute;
  z-index: -2;
  inset: 0;
  pointer-events: none;
  background: var(--folio-card, linear-gradient(90deg, rgba(4, 8, 6, 0.98) 0%, rgba(5, 10, 8, 0.92) 32%, rgba(5, 10, 8, 0.58) 61%, rgba(5, 9, 7, 0.18) 100%),
    linear-gradient(0deg, rgba(4, 7, 6, 0.86) 0%, transparent 56%));
}

.system-focus-seal {
  width: 58px;
  height: 58px;
  display: grid;
  place-items: center;
  color: var(--folio-ink, #e2c779);
  border: 1px solid rgba(212, 178, 100, 0.54);
  border-radius: 50%;
  background: var(--folio-card, rgba(14, 22, 18, 0.92));
  box-shadow: inset 0 0 0 5px rgba(212, 178, 100, 0.05);
  font-family: var(--font-brush);
  font-size: 32px;
}

.system-focus-copy { min-width: 0; align-self: end; }
.system-focus-copy > span { color: var(--folio-muted, #c9aa62); font-size: var(--ming-font-small, 14px); font-weight: 780; letter-spacing: 0.16em; }
.system-focus-copy h2 { margin: 5px 0 0; color: var(--folio-ink, #f4ead3); font-family: var(--font-brush); font-size: clamp(38px, 4.2vw, 58px); font-weight: 400; letter-spacing: 0.1em; line-height: 1; text-shadow: 0 3px 18px rgba(0, 0, 0, 0.72); }
.system-focus-copy p { max-width: 660px; margin: 11px 0 0; color: var(--folio-muted, #c3b89f); font-size: var(--ming-font-body, 16px); font-weight: 620; line-height: 1.65; text-shadow: 0 2px 8px #000; }
.system-focus-authority {
  width: fit-content;
  display: flex;
  align-items: center;
  gap: 7px;
  margin-top: 12px;
  padding: 5px 10px 5px 6px;
  color: var(--folio-ink, #a9cbbd);
  border: 1px solid rgba(100, 159, 137, 0.38);
  background: var(--folio-card, rgba(7, 24, 19, 0.78));
  font-size: var(--ming-font-small, 14px);
  letter-spacing: 0.05em;
}
.system-focus-authority i { width: 23px; height: 23px; display: grid; place-items: center; color: var(--folio-ink, #d6ebdf); border: 1px solid rgba(134, 190, 169, 0.46); border-radius: 50%; font-style: normal; }

.system-focus-close {
  grid-column: 4;
  min-width: 124px;
  min-height: 44px;
  display: grid;
  gap: 2px;
  padding: 7px 13px;
  color: var(--folio-ink, #d9c89f);
  border: 1px solid rgba(194, 163, 98, 0.38);
  background: var(--folio-card, rgba(6, 12, 9, 0.88));
  cursor: pointer;
}
.system-focus-close:hover,
.system-focus-close:focus-visible { color: var(--folio-ink, #f3e2b8); border-color: var(--folio-rule, rgba(222, 188, 116, 0.72)); background: var(--folio-hover, rgba(35, 47, 39, 0.9)); outline: none; }
.system-focus-close b { font-size: var(--ming-font-small, 14px); }
.system-focus-close small { color: var(--folio-muted, #7f9387); font-size: var(--ming-font-small, 14px); }

.system-focus-body {
  min-width: 0;
  min-height: 0;
  overflow-x: hidden;
  overflow-y: auto;
  overscroll-behavior: contain;
  scrollbar-gutter: stable;
  scrollbar-width: thin;
  scrollbar-color: rgba(195, 159, 88, 0.48) rgba(8, 13, 11, 0.4);
  padding: 22px 26px 34px;
}

.system-focus-body > * { max-height: none; }
.system-focus-body .location-map-panel { height: auto; min-height: 560px; overflow: visible; }
.system-focus-body .inventory-card-list,
.system-focus-body .progression-card-list,
.system-focus-body .skill-ledger-grid,
.system-focus-body .crafting-recipe-list,
.system-focus-body .actor-list { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.system-focus-body .actor-list:has(> .actor-ledger-card:only-child) { grid-template-columns: minmax(0, 1fr); }
.system-focus-body .inventory-ledger-card,
.system-focus-body .skill-ledger-card,
.system-focus-body .crafting-recipe-card,
.system-focus-body .progression-card { min-width: 0; }
.system-focus-body .inventory-ledger { height: auto; min-height: 100%; grid-template-rows: auto auto auto auto; gap: 10px; }
.system-focus-body .inventory-card-list { grid-auto-rows: minmax(154px, auto); overflow: visible; gap: 10px; }
.system-focus-body .inventory-ledger-card { min-height: 154px; grid-template-columns: 104px minmax(0, 1fr); gap: 14px; padding: 12px; }
.system-focus-body .inventory-ledger-card > figure { height: 104px; }
.system-focus-body .inventory-ledger-card > figure img { width: 88px; height: 88px; }
.system-focus-body .inventory-item-copy { gap: 7px; }
.system-focus-body .inventory-item-copy > header span { font-size: var(--ming-font-small, 14px); }
.system-focus-body .inventory-item-copy > header h3 { font-size: 18px; }
.system-focus-body .inventory-item-copy > header strong { font-size: 14px; }
.system-focus-body .inventory-item-copy > p { overflow: visible; font-size: var(--ming-font-body, 16px); line-height: 1.55; text-overflow: clip; white-space: normal; }
.system-focus-body .inventory-item-facts { font-size: var(--ming-font-small, 14px); line-height: 1.45; }
.system-focus-body .personal-action-button,
.system-focus-body .equipment-action-button { min-height: 44px; padding: 6px 9px; }
.system-focus-body .personal-action-button span,
.system-focus-body .equipment-action-button span { font-size: var(--ming-font-small, 14px); }
.system-focus-body .inventory-load-summary > div { padding: 9px 13px; }
.system-focus-body .inventory-load-summary span,
.system-focus-body .inventory-load-summary small { font-size: var(--ming-font-small, 14px); }
.system-focus-body .inventory-load-summary small { display: block; }
.system-focus-body .inventory-category-tabs button,
.system-focus-body .inventory-ledger > .system-pager button { min-height: 44px; font-size: var(--ming-font-small, 14px); }
.system-focus-body .inventory-category-tabs button b,
.system-focus-body .inventory-ledger-card > figure b { font-size: var(--ming-font-small, 14px); }
.system-focus-body .system-detail-heading span { font-size: 15px; }
.system-focus-body .system-detail-heading small { font-size: var(--ming-font-small, 14px); }
.system-focus-body .inventory-list article { padding: 14px 16px; }
.system-focus-body .inventory-list article strong { font-size: 15px; }
.system-focus-body .inventory-list article small { font-size: var(--ming-font-small, 14px); }
.system-focus-body .inventory-list article p { font-size: var(--ming-font-body, 16px); line-height: 1.65; }
.system-focus-body .skill-ledger { gap: 12px; }
.system-focus-body .skill-ledger > header { padding-bottom: 10px; }
.system-focus-body .skill-ledger > header span { font-size: var(--ming-font-small, 14px); }
.system-focus-body .skill-ledger > header h3 { font-size: 24px; }
.system-focus-body .skill-ledger > header small { max-width: 680px; font-size: var(--ming-font-small, 14px); line-height: 1.55; }
.system-focus-body .skill-ledger > header > b { font-size: var(--ming-font-small, 14px); }
.system-focus-body .skill-family-rail { gap: 8px; padding: 2px 0 0; }
.system-focus-body .skill-family-rail > span { min-height: 52px; grid-template-columns: 34px minmax(0, 1fr); padding: 7px 9px; }
.system-focus-body .skill-family-rail i { width: 32px; height: 32px; font-size: 18px; }
.system-focus-body .skill-family-rail b { font-size: var(--ming-font-small, 14px); }
.system-focus-body .skill-family-rail small { font-size: var(--ming-font-small, 14px); }
.system-focus-body .skill-ledger-grid { gap: 12px; }
.system-focus-body .skill-ledger-card { min-height: 248px; gap: 8px; padding: 13px; }
.system-focus-body .skill-ledger-card > header { grid-template-columns: 40px minmax(0, 1fr) auto; gap: 9px; }
.system-focus-body .skill-ledger-card > header > i { width: 38px; height: 38px; font-size: 21px; }
.system-focus-body .skill-ledger-card > header span { font-size: var(--ming-font-small, 14px); }
.system-focus-body .skill-ledger-card > header h3 { font-size: 18px; }
.system-focus-body .skill-ledger-card > header strong { font-size: 23px; }
.system-focus-body .skill-ledger-card > header strong small { font-size: var(--ming-font-small, 14px); }
.system-focus-body .skill-ledger-card > p { display: block; overflow: visible; font-size: var(--ming-font-body, 16px); line-height: 1.55; }
.system-focus-body .skill-meter span,
.system-focus-body .skill-meter em { font-size: var(--ming-font-small, 14px); }
.system-focus-body .skill-applications { flex-wrap: wrap; overflow: visible; gap: 5px; }
.system-focus-body .skill-applications span { padding: 3px 7px; font-size: var(--ming-font-small, 14px); }
.system-focus-body .skill-ledger-card dl { gap: 5px; }
.system-focus-body .skill-ledger-card dl > div { grid-template-columns: 62px minmax(0, 1fr); gap: 8px; }
.system-focus-body .skill-ledger-card dt { font-size: var(--ming-font-small, 14px); }
.system-focus-body .skill-ledger-card dd { font-size: var(--ming-font-small, 14px); line-height: 1.5; }
.system-focus-body .skill-practice-button { min-height: 48px; padding: 8px 11px; }
.system-focus-body .skill-practice-button span { font-size: var(--ming-font-small, 14px); }
.system-focus-body .skill-practice-button small { font-size: var(--ming-font-small, 14px); }
.system-focus-body .skill-ledger > footer .system-action-seed span { font-size: var(--ming-font-small, 14px); }
.system-focus-body .skill-ledger > footer .system-action-seed small { font-size: var(--ming-font-small, 14px); }
.system-focus-body .crafting-ledger { gap: 13px; }
.system-focus-body .crafting-ledger > header small { max-width: 680px; font-size: var(--ming-font-small, 14px); line-height: 1.55; }
.system-focus-body .crafting-recipe-list { gap: 12px; }
.system-focus-body .crafting-recipe-card { grid-template-columns: 86px minmax(0, 1fr); gap: 13px; min-height: 190px; padding: 12px; }
.system-focus-body .crafting-recipe-card figure { width: 86px; height: 86px; }
.system-focus-body .crafting-recipe-card figure img { width: 74px; height: 74px; }
.system-focus-body .crafting-recipe-card header span { font-size: var(--ming-font-small, 14px); }
.system-focus-body .crafting-recipe-card header h3 { font-size: 18px; }
.system-focus-body .crafting-recipe-card header b { font-size: var(--ming-font-small, 14px); }
.system-focus-body .crafting-recipe-card p { font-size: var(--ming-font-body, 16px); line-height: 1.55; }
.system-focus-body .recipe-account-grid { gap: 7px; }
.system-focus-body .recipe-account-grid > section { grid-template-columns: 42px minmax(0, 1fr); gap: 7px; padding: 7px; }
.system-focus-body .recipe-account-grid label,
.system-focus-body .recipe-account-grid section > div > em { font-size: var(--ming-font-small, 14px); }
.system-focus-body .recipe-item-entry { grid-template-columns: 34px minmax(0, 1fr); gap: 7px; }
.system-focus-body .recipe-item-entry > img { width: 34px; height: 34px; }
.system-focus-body .recipe-item-entry b,
.system-focus-body .recipe-item-entry small,
.system-focus-body .recipe-skill-account span b,
.system-focus-body .recipe-skill-account span small,
.system-focus-body .crafting-recipe-card footer > small { font-size: var(--ming-font-small, 14px); }
.system-focus-body .crafting-recipe-card .personal-action-button { min-height: 44px; }
.system-focus-body .crafting-recipe-card .personal-action-button span,
.system-focus-body .crafting-recipe-card .personal-action-button small { font-size: var(--ming-font-small, 14px); }
.system-focus-body .system-pager { position: sticky; bottom: -20px; z-index: 3; padding: 10px; border: 1px solid rgba(196, 160, 87, 0.25); background: var(--folio-card, rgba(8, 13, 11, 0.96)); }

@media (max-width: 760px) {
  .system-detail-disclosure > button { min-width: 118px; }
  .system-focus-heading { grid-template-columns: 52px minmax(0, 1fr); min-height: 210px; padding: 22px 18px 18px; }
  .system-focus-art { object-position: 66% center; }
  .system-focus-shade { background: var(--folio-card, linear-gradient(90deg, rgba(4, 8, 6, 0.97), rgba(5, 10, 8, 0.74) 70%, rgba(5, 9, 7, 0.35)), linear-gradient(0deg, rgba(4, 7, 6, 0.9), transparent 70%)); }
  .system-focus-seal { width: 48px; height: 48px; font-size: 27px; }
  .system-focus-copy h2 { font-size: 38px; }
  .system-focus-copy p { font-size: var(--ming-font-body, 16px); line-height: 1.55; }
  .system-focus-authority { font-size: var(--ming-font-small, 14px); }
  .system-focus-close { position: absolute; top: 12px; right: 12px; grid-column: auto; width: auto; min-width: 104px; }
  .system-focus-body .inventory-card-list,
  .system-focus-body .progression-card-list,
  .system-focus-body .skill-ledger-grid,
  .system-focus-body .crafting-recipe-list,
  .system-focus-body .actor-list { grid-template-columns: 1fr; }
  .system-focus-body .case-closing-options > div { grid-template-columns: 1fr; }
  .system-focus-body .inventory-ledger-card { grid-template-columns: 92px minmax(0, 1fr); }
  .system-focus-body .inventory-ledger-card > figure { height: 92px; }
  .system-focus-body .inventory-ledger-card > figure img { width: 76px; height: 76px; }
}

@media (max-width: 620px) {
  .system-focus-backdrop { display: block; padding: 0; }
  .system-focus-panel {
    width: 100vw;
    height: 100svh;
    max-height: 100svh;
    min-height: 100svh;
    border: 0;
    border-radius: 0;
    box-shadow: inset 4px 0 rgba(137, 54, 43, 0.82);
    grid-template-rows: 228px minmax(0, 1fr);
  }
  .system-focus-heading { min-height: 228px; padding: 58px 14px 16px; grid-template-columns: 44px minmax(0, 1fr); gap: 10px; }
  .system-focus-seal { width: 42px; height: 42px; font-size: 24px; }
  .system-focus-copy h2 { font-size: 32px; }
  .system-focus-copy p { margin-top: 8px; font-size: var(--ming-font-body, 16px); line-height: 1.5; }
  .system-focus-authority { margin-top: 8px; }
  .system-focus-close { top: 9px; right: 10px; min-width: 96px; min-height: 40px; }
  .system-focus-body { padding: 16px 14px 28px; }
  .system-focus-body .system-pager { position: static; bottom: auto; }
  .system-focus-body .case-closing-options article button.case-ai-action { min-height: 44px; }
  .system-focus-body .location-map-panel { min-height: 640px; }
  .system-focus-body .inventory-load-summary { grid-template-columns: 1fr; }
  .system-focus-body .inventory-category-tabs { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .system-focus-body .inventory-ledger-card { grid-template-columns: 84px minmax(0, 1fr); gap: 10px; padding: 10px; }
  .system-focus-body .inventory-ledger-card > figure { height: 84px; }
  .system-focus-body .inventory-ledger-card > figure img { width: 70px; height: 70px; }
  .system-focus-body .skill-ledger > header span,
  .system-focus-body .skill-ledger > header small,
  .system-focus-body .skill-family-rail b,
  .system-focus-body .skill-family-rail small,
  .system-focus-body .skill-ledger-card > header span,
  .system-focus-body .skill-ledger-card > header strong small,
  .system-focus-body .skill-ledger-card > p,
  .system-focus-body .skill-meter span,
  .system-focus-body .skill-meter em,
  .system-focus-body .skill-applications span,
  .system-focus-body .skill-ledger-card dt,
  .system-focus-body .skill-ledger-card dd,
  .system-focus-body .skill-practice-button small,
  .system-focus-body .skill-ledger > footer .system-action-seed small { font-size: var(--ming-font-small, 14px); }
  .system-focus-body .skill-practice-button { min-height: 52px; }
  .system-focus-body .crafting-recipe-card header span,
  .system-focus-body .crafting-recipe-card header b,
  .system-focus-body .crafting-recipe-card p,
  .system-focus-body .recipe-account-grid label,
  .system-focus-body .recipe-account-grid section > div > em,
  .system-focus-body .recipe-item-entry b,
  .system-focus-body .recipe-item-entry small,
  .system-focus-body .recipe-skill-account span b,
  .system-focus-body .recipe-skill-account span small,
  .system-focus-body .crafting-recipe-card footer > small,
  .system-focus-body .crafting-recipe-card .personal-action-button span,
  .system-focus-body .crafting-recipe-card .personal-action-button small { font-size: var(--ming-font-small, 14px); }
  .system-focus-body .crafting-recipe-card header {
    grid-template-columns: minmax(0, 1fr) auto;
    align-items: start;
  }
  .system-focus-body .crafting-recipe-card header span { grid-column: 1; grid-row: 1; }
  .system-focus-body .crafting-recipe-card header b { grid-column: 2; grid-row: 1; text-align: right; }
  .system-focus-body .crafting-recipe-card header h3 { grid-column: 1 / -1; grid-row: 2; }
}

@media (prefers-reduced-motion: reduce) {
  .skill-practice-button { transition: none; }
}

/* V0.53 · 人群与军伍卷：安置、入伙和点兵分账，右栏只留可判断摘要。 */
.population-military-compact {
  min-width: 0;
  display: grid;
  align-content: start;
  gap: 9px;
  padding: 12px;
  color: var(--folio-ink, #d6cbb4);
  border-left: 3px solid #6d927d;
  background: var(--folio-card, linear-gradient(90deg, rgba(53, 83, 66, 0.22), transparent 42%),
    rgba(8, 14, 11, 0.92));
}
.population-military-compact > header { min-width: 0; display: flex; align-items: start; justify-content: space-between; gap: 9px; }
.population-military-compact > header > div { min-width: 0; }
.population-military-compact > header span,
.population-military-compact.empty > div > span { color: var(--folio-muted, #ad9159); font-size: var(--ming-font-small, 14px); font-weight: 750; letter-spacing: 0.1em; }
.population-military-compact h3 { margin: 3px 0 0; color: var(--folio-ink, #eee1c5); font-family: var(--font-brush); font-size: 23px; font-weight: 400; line-height: 1.1; }
.population-military-compact > header > b { padding: 4px 7px; color: var(--folio-ink, #a8cbb9); border: 1px solid rgba(107, 155, 130, 0.42); background: var(--folio-card, rgba(40, 82, 63, 0.25)); font-size: var(--ming-font-small, 14px); white-space: nowrap; }
.population-military-compact-metrics { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 5px; }
.population-military-compact-metrics > span { min-width: 0; display: grid; gap: 2px; padding: 7px; border: 1px solid rgba(188, 157, 94, 0.18); background: var(--folio-card, rgba(21, 27, 22, 0.74)); }
.population-military-compact-metrics small { overflow: hidden; color: var(--folio-muted, #8e978d); font-size: var(--ming-font-small, 14px); text-overflow: ellipsis; white-space: nowrap; }
.population-military-compact-metrics strong { color: var(--folio-ink, #dfc680); font-family: var(--font-brush); font-size: 23px; font-weight: 400; }
.population-military-compact > article { display: grid; gap: 3px; padding: 8px 9px; border-left: 2px solid #8b4b3f; background: var(--folio-card, rgba(51, 25, 21, 0.3)); }
.population-military-compact > article span { color: var(--folio-muted, #b97669); font-size: var(--ming-font-small, 14px); letter-spacing: 0.1em; }
.population-military-compact > article b { color: var(--folio-ink, #e1d3b7); font-size: var(--ming-font-small, 14px); }
.population-military-compact > article p,
.population-military-compact.empty p { margin: 0; color: var(--folio-muted, #a9a08e); font-size: var(--ming-font-body, 16px); line-height: 1.55; }
.population-military-compact > small,
.population-military-compact.empty small { color: var(--folio-muted, #84948a); font-size: var(--ming-font-small, 14px); line-height: 1.45; }
.population-military-compact.empty { grid-template-columns: 52px minmax(0, 1fr); align-items: start; }
.population-military-compact.empty > i { width: 48px; height: 48px; display: grid; place-items: center; color: var(--folio-ink, #ceb36e); border: 1px solid rgba(201, 166, 93, 0.36); border-radius: 50%; font-family: var(--font-brush); font-size: 28px; font-style: normal; }
.population-military-compact.empty > .system-action-seed { grid-column: 1 / -1; }

.population-military-ledger {
  --military-gold: #c5a25a;
  --military-jade: #79a18b;
  min-width: 0;
  display: grid;
  align-content: start;
  gap: 14px;
  color: var(--folio-ink, #d8cdb8);
}
.population-military-ledger :where(p, small, span, li, dt, dd) {
  font-size: var(--ming-font-small, 14px);
  line-height: 1.58;
  overflow-wrap: anywhere;
}
.population-military-overview {
  min-width: 0;
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(360px, 0.68fr);
  align-items: stretch;
  gap: 18px;
  padding: 18px 19px;
  border: 1px solid rgba(190, 157, 91, 0.3);
  border-left: 4px solid #7d4238;
  background: var(--folio-card, linear-gradient(105deg, rgba(87, 61, 29, 0.27), transparent 43%),
    #0e1512);
  box-shadow: inset 0 1px rgba(242, 217, 159, 0.04), 0 13px 28px rgba(0, 0, 0, 0.2);
}
.population-military-overview > div:first-child { min-width: 0; }
.population-military-overview > div:first-child > span,
.population-cohort-section > header span,
.population-organization-card > header span,
.population-military-next > div > span,
.population-military-next > aside > span,
.population-encounter-record > header span,
.population-organization-empty span { color: var(--military-gold); font-weight: 760; letter-spacing: 0.13em; }
.population-military-overview h3 { margin: 3px 0 0; color: var(--folio-ink, #f0e3c8); font-family: var(--font-brush); font-size: 33px; font-weight: 400; letter-spacing: 0.06em; line-height: 1.08; }
.population-military-overview p { max-width: 690px; margin: 8px 0 0; color: var(--folio-muted, #aaa18f); }
.population-military-totals { min-width: 0; display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 7px; }
.population-military-totals > span { min-width: 0; display: grid; place-content: center; gap: 3px; padding: 9px 7px; border: 1px solid rgba(123, 160, 140, 0.22); background: var(--folio-card, rgba(8, 22, 16, 0.68)); text-align: center; }
.population-military-totals small { color: var(--folio-muted, #8da497); }
.population-military-totals b { color: var(--folio-ink, #e0c47c); font-family: var(--font-brush); font-size: 29px; font-weight: 400; line-height: 1; }

.population-encounter-record,
.population-regional-section,
.population-cohort-section,
.population-organization-card,
.population-formation-ledger,
.population-organization-units,
.population-organization-empty,
.population-military-next { min-width: 0; border: 1px solid rgba(176, 146, 86, 0.24); background: var(--folio-card, #0d1411); }
.population-encounter-record { display: grid; grid-template-columns: minmax(0, 1fr) minmax(300px, 0.7fr) auto; align-items: center; gap: 14px; padding: 14px 16px; border-left: 4px solid #8a493c; }
.population-encounter-record > header { min-width: 0; display: flex; align-items: start; justify-content: space-between; gap: 10px; }
.population-encounter-record h4,
.population-cohort-section > header h4,
.population-organization-card > header h4,
.population-organization-empty h4,
.population-military-next h4 { margin: 3px 0 0; color: var(--folio-ink, #eadbbe); font-family: var(--font-brush); font-size: 25px; font-weight: 400; line-height: 1.12; }
.population-encounter-record > header > b { padding: 4px 8px; color: var(--folio-ink, #d18a79); border: 1px solid rgba(159, 76, 64, 0.46); background: var(--folio-card, rgba(74, 31, 26, 0.35)); font-size: var(--ming-font-small, 14px); white-space: nowrap; }
.population-encounter-record > p { margin: 0; color: var(--folio-muted, #aaa08e); }
.population-encounter-record > ol { display: grid; gap: 4px; margin: 0; padding-left: 22px; color: var(--folio-ink, #bdaf96); }
.population-encounter-record > small { color: var(--folio-muted, #87a595); white-space: nowrap; }

.population-regional-section { padding: 15px; border-left: 4px solid #557e6a; background: var(--folio-card, #0b1511); }
.population-regional-section > header { min-width: 0; display: flex; align-items: center; justify-content: space-between; gap: 14px; padding-bottom: 12px; border-bottom: 1px solid rgba(184, 151, 84, 0.2); }
.population-regional-section > header > div:first-child { min-width: 0; }
.population-regional-section > header span,
.population-regional-source > header span,
.population-regional-route article > span,
.population-regional-action > div > span { color: var(--folio-muted, #9ab9a8); font-weight: 740; letter-spacing: 0.08em; }
.population-regional-section > header h4 { margin: 3px 0 0; color: var(--folio-ink, #eadbbe); font-family: var(--font-brush); font-size: 25px; font-weight: 400; line-height: 1.12; }
.population-regional-summary { flex: 0 0 auto; display: grid; grid-template-columns: repeat(2, minmax(96px, 1fr)); gap: 6px; }
.population-regional-summary > span { display: grid; gap: 1px; min-height: 54px; padding: 7px 10px; border: 1px solid rgba(123, 160, 140, 0.25); background: var(--folio-card, rgba(12, 29, 21, 0.78)); text-align: center; }
.population-regional-summary small { color: var(--folio-muted, #8ea497); }
.population-regional-summary b { color: var(--folio-ink, #dfc47b); font-family: var(--font-brush); font-size: 25px; font-weight: 400; line-height: 1; }
.population-regional-grid { min-width: 0; display: grid; gap: 11px; margin-top: 12px; }
.population-regional-source { min-width: 0; overflow: hidden; border: 1px solid rgba(111, 153, 132, 0.28); background: var(--folio-card, rgba(7, 17, 13, 0.86)); box-shadow: inset 3px 0 rgba(91, 135, 112, 0.65); }
.population-regional-source > header { min-width: 0; display: flex; align-items: center; justify-content: space-between; gap: 14px; padding: 13px 14px; border-bottom: 1px solid rgba(181, 149, 84, 0.18); background: var(--folio-card, rgba(33, 49, 38, 0.42)); }
.population-regional-source > header > div:first-child { min-width: 0; }
.population-regional-source > header h5,
.population-regional-action h5 { margin: 2px 0 0; color: var(--folio-ink, #e6d8bd); font-family: var(--font-brush); font-size: 23px; font-weight: 400; line-height: 1.15; }
.population-regional-source > header > div:last-child { flex: 0 0 auto; display: grid; gap: 1px; text-align: right; }
.population-regional-source > header > div:last-child b { color: var(--folio-ink, #dfc47b); font-family: var(--font-brush); font-size: 24px; font-weight: 400; }
.population-regional-source > header > div:last-child small { color: var(--folio-muted, #8fa094); }
.population-regional-route { min-width: 0; display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); }
.population-regional-route > article { min-width: 0; display: grid; align-content: start; gap: 5px; padding: 12px 13px; border-right: 1px solid rgba(177, 145, 79, 0.15); }
.population-regional-route > article:last-child { border-right: 0; }
.population-regional-route article > span { color: var(--folio-muted, #b29863); }
.population-regional-route strong { color: var(--folio-ink, #decfb1); font-size: 16px; line-height: 1.35; }
.population-regional-route p { margin: 0; color: var(--folio-muted, #a99f8d); }
.population-regional-route small { color: var(--folio-muted, #839b8e); }
.population-regional-action { min-width: 0; display: grid; grid-template-columns: minmax(0, 1fr) minmax(300px, 0.55fr); align-items: center; gap: 14px; padding: 12px 14px; border-top: 1px solid rgba(180, 148, 83, 0.18); background: var(--folio-card, rgba(52, 29, 22, 0.28)); }
.population-regional-action.ready { background: var(--folio-card, rgba(30, 64, 47, 0.3)); }
.population-regional-action > div { min-width: 0; }
.population-regional-action p { margin: 5px 0 0; color: var(--folio-muted, #aaa08e); }
.population-regional-action > aside { min-width: 0; }
.population-regional-action .system-action-seed { width: 100%; min-height: 48px; }
.population-regional-action .system-action-seed span { font-size: 15px; }
.population-regional-action .system-action-seed small { font-size: var(--ming-font-small, 14px); }

.population-cohort-section { padding: 15px; }
.population-cohort-section > header,
.population-organization-card > header { min-width: 0; display: flex; align-items: start; justify-content: space-between; gap: 12px; padding-bottom: 12px; border-bottom: 1px solid rgba(186, 153, 88, 0.19); }
.population-cohort-section > header > b,
.population-organization-card > header > b { padding: 4px 9px; color: var(--folio-ink, #9fc6b1); border: 1px solid rgba(105, 157, 131, 0.38); background: var(--folio-card, rgba(35, 77, 58, 0.25)); font-size: var(--ming-font-small, 14px); white-space: nowrap; }
.population-cohort-grid { min-width: 0; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); align-items: start; gap: 10px; margin-top: 12px; }
.population-cohort-grid:has(> .population-cohort-card:only-child) { grid-template-columns: 1fr; }
.population-cohort-card { min-width: 0; display: grid; align-content: start; gap: 10px; padding: 13px; border: 1px solid rgba(111, 150, 130, 0.24); border-left: 3px solid #63856f; background: var(--folio-card, rgba(8, 18, 14, 0.78)); }
.population-cohort-card > header { min-width: 0; display: flex; justify-content: space-between; gap: 10px; }
.population-cohort-card > header > div { min-width: 0; }
.population-cohort-card > header span { color: var(--folio-muted, #8faf9e); }
.population-cohort-card h5 { margin: 2px 0 0; color: var(--folio-ink, #e3d7bd); font-family: var(--font-brush); font-size: 22px; font-weight: 400; line-height: 1.16; }
.population-cohort-card > header > b { color: var(--folio-ink, #dfbf70); font-family: var(--font-brush); font-size: 27px; font-weight: 400; white-space: nowrap; }
.population-cohort-visual {
  position: relative;
  min-width: 0;
  aspect-ratio: 16 / 6.4;
  margin: -13px -13px 1px;
  overflow: hidden;
  border-bottom: 1px solid rgba(189, 157, 91, 0.3);
  background: var(--folio-card, #111713);
}
.population-cohort-visual::after { content: ''; position: absolute; inset: 0; background: linear-gradient(180deg, transparent 38%, rgba(4, 10, 8, 0.92) 100%); pointer-events: none; }
.population-cohort-visual img { width: 100%; height: 100%; display: block; object-fit: cover; object-position: center 48%; filter: saturate(0.82) contrast(1.04) brightness(0.84); }
.population-cohort-visual figcaption { position: absolute; z-index: 1; right: 13px; bottom: 11px; left: 13px; min-width: 0; display: grid; grid-template-columns: auto minmax(0, 1fr); align-items: end; gap: 1px 10px; color: #eadab8; text-shadow: 0 2px 5px #000; }
.population-cohort-visual figcaption > span { grid-row: 1 / 3; align-self: center; padding-right: 10px; color: #d6b565; border-right: 1px solid rgba(220, 183, 99, 0.46); font-weight: 780; letter-spacing: 0.1em; }
.population-cohort-visual figcaption > strong { min-width: 0; overflow: hidden; color: #f0e2c4; font-size: 16px; text-overflow: ellipsis; white-space: nowrap; }
.population-cohort-visual figcaption > small { color: #b8c8be; }
.population-composition { min-width: 0; display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 5px; }
.population-composition > span { min-width: 0; display: grid; gap: 1px; padding: 6px; border: 1px solid rgba(192, 157, 88, 0.17); background: var(--folio-card, rgba(34, 28, 18, 0.38)); }
.population-composition small { color: var(--folio-muted, #948b7b); }
.population-composition b { color: var(--folio-ink, #dbc17f); font-size: 17px; }
.population-cohort-loss { min-width: 0; display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 5px; padding: 7px; border: 1px solid rgba(153, 78, 64, 0.31); border-left: 3px solid #914e42; background: var(--folio-card, rgba(69, 28, 24, 0.34)); }
.population-cohort-loss > * { min-width: 0; display: grid; place-content: center; min-height: 32px; color: var(--folio-ink, #bcae98); font-size: var(--ming-font-small, 14px); font-style: normal; text-align: center; }
.population-cohort-loss b { color: var(--folio-ink, #d29a89); }
.population-cohort-loss em { color: var(--folio-muted, #e1c981); }
.population-cohort-card > p { margin: 0; color: var(--folio-muted, #aca28f); }
.population-cohort-progress { min-width: 0; display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 6px; margin: 0; padding: 0; list-style: none; }
.population-cohort-progress li { position: relative; min-width: 0; display: grid; grid-template-columns: 30px minmax(0, 1fr) auto; align-items: center; gap: 7px; min-height: 50px; padding: 7px 8px; border: 1px solid rgba(143, 160, 137, 0.2); background: rgba(18, 29, 22, 0.68); }
.population-cohort-progress li.done { border-color: var(--folio-rule, rgba(111, 157, 132, 0.38)); background: rgba(31, 67, 49, 0.3); }
.population-cohort-progress li.current { border-color: var(--folio-rule, rgba(193, 158, 87, 0.46)); background: rgba(79, 59, 27, 0.34); }
.population-cohort-progress i { width: 28px; height: 28px; display: grid; place-items: center; color: var(--folio-ink, #8d968b); border: 1px solid rgba(136, 151, 132, 0.32); border-radius: 50%; font-family: var(--font-brush); font-size: 17px; font-style: normal; }
.population-cohort-progress .done i { color: var(--folio-success, #dfc274); border-color: var(--folio-rule, rgba(197, 162, 90, 0.48)); background: rgba(75, 57, 27, 0.34); }
.population-cohort-progress .current i { color: var(--folio-ink, #ead087); border-color: var(--folio-rule, rgba(206, 170, 91, 0.58)); background: rgba(95, 67, 26, 0.45); }
.population-cohort-progress span { min-width: 0; color: var(--folio-muted, #90998f); }
.population-cohort-progress .done span { color: var(--folio-success, #b9cbbf); }
.population-cohort-progress .current span { color: var(--folio-muted, #d4c39d); }
.population-cohort-progress b { color: var(--folio-ink, #8f968e); font-family: var(--font-brush); font-size: 20px; font-weight: 400; }
.population-cohort-progress .done b { color: var(--folio-success, #ddc078); }
.population-cohort-progress .current b { color: var(--folio-ink, #ebce82); }
.population-cohort-status { min-width: 0; display: flex; flex-wrap: wrap; align-items: center; gap: 6px 12px; padding: 8px 10px; border-left: 3px solid #6b8c77; background: var(--folio-card, rgba(32, 58, 44, 0.28)); }
.population-cohort-status strong { color: var(--folio-ink, #c6d7cc); font-size: var(--ming-font-small, 14px); }
.population-cohort-status span { color: var(--folio-muted, #9aab9f); }
.population-cohort-status em { margin-left: auto; color: var(--folio-muted, #d7bc77); font-size: var(--ming-font-small, 14px); font-style: normal; white-space: nowrap; }
.population-cohort-details { min-width: 0; border: 1px solid rgba(119, 151, 132, 0.24); background: var(--folio-card, rgba(7, 16, 12, 0.52)); }
.population-cohort-details > summary { min-height: 48px; display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 9px 11px; color: var(--folio-ink, #b9cdbf); cursor: pointer; font-weight: 740; list-style-position: inside; }
.population-cohort-details > summary small { min-width: 0; overflow: hidden; color: var(--folio-muted, #948d7d); text-align: right; text-overflow: ellipsis; white-space: nowrap; }
.population-cohort-details[open] > summary { border-bottom: 1px solid rgba(179, 147, 83, 0.18); background: var(--folio-card, rgba(67, 53, 29, 0.2)); }
.population-cohort-details:not([open]) > div { display: none; }
.population-cohort-details > div { min-width: 0; display: grid; gap: 8px; padding: 10px 11px 11px; }
.population-cohort-resident-origin {
  margin: 0;
  padding: 9px 11px;
  color: var(--folio-ink, #b9d3c4);
  border: 1px solid rgba(105, 157, 131, 0.3);
  border-left: 3px solid #6d947d;
  background: var(--folio-card, linear-gradient(90deg, rgba(43, 85, 64, 0.32), rgba(17, 35, 27, 0.18)));
  line-height: 1.55;
}
.population-cohort-card dl { display: grid; gap: 6px; margin: 0; }
.population-cohort-card dl > div { min-width: 0; display: grid; grid-template-columns: 92px minmax(0, 1fr); gap: 9px; padding-top: 6px; border-top: 1px solid rgba(181, 148, 82, 0.14); }
.population-cohort-card dt { color: var(--folio-muted, #839b8e); }
.population-cohort-card dd { margin: 0; color: var(--folio-ink, #c7bba3); }

.population-organization-card { padding: 15px; border-left: 4px solid #827044; }
.population-organization-card > header > div { min-width: 0; }
.population-organization-card > header p { margin: 5px 0 0; color: var(--folio-muted, #aaa08e); }
.population-organization-naming {
  min-width: 0;
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(260px, 0.62fr) minmax(168px, 0.3fr);
  align-items: end;
  gap: 13px;
  padding: 15px;
  border: 1px solid rgba(179, 147, 83, 0.28);
  border-left: 4px solid #9a7540;
  background: var(--folio-card, linear-gradient(105deg, rgba(100, 71, 32, 0.22), transparent 46%),
    #0d1511);
  box-shadow: inset 0 1px rgba(239, 210, 145, 0.04);
}
.population-organization-naming > div { min-width: 0; }
.population-organization-naming > div > span { color: var(--military-gold); font-size: var(--ming-font-small, 14px); font-weight: 760; letter-spacing: 0.12em; }
.population-organization-naming h4 { margin: 3px 0 0; color: var(--folio-ink, #ecddbd); font-family: var(--font-brush); font-size: 25px; font-weight: 400; line-height: 1.12; }
.population-organization-naming p { margin: 6px 0 0; color: var(--folio-muted, #aaa08e); }
.population-organization-naming label { min-width: 0; display: grid; gap: 6px; }
.population-organization-naming label > span { color: var(--folio-muted, #91a99b); font-weight: 720; }
.population-organization-naming input {
  width: 100%;
  min-width: 0;
  min-height: 48px;
  padding: 10px 12px;
  color: var(--folio-ink, #f0dfbd);
  border: 1px solid rgba(181, 148, 83, 0.42);
  border-radius: 2px;
  outline: 0;
  background: var(--folio-card, rgba(6, 14, 11, 0.88));
  font-family: var(--font-display);
  font-size: 16px;
  letter-spacing: 0.05em;
}
.population-organization-naming input:focus { border-color: var(--folio-rule, #c39a52); box-shadow: 0 0 0 3px rgba(178, 132, 60, 0.16); }
.population-organization-naming input::placeholder { color: var(--folio-ink, #716b5f); }
.population-organization-naming button {
  min-height: 48px;
  display: grid;
  place-content: center;
  gap: 2px;
  padding: 8px 13px;
  color: var(--folio-ink, #f1dfb7);
  border: 1px solid rgba(190, 149, 74, 0.5);
  background: var(--folio-card, linear-gradient(180deg, rgba(126, 89, 36, 0.44), rgba(59, 42, 20, 0.58)));
  cursor: pointer;
}
.population-organization-naming button:hover:not(:disabled),
.population-organization-naming button:focus-visible { border-color: var(--folio-rule, #d2aa62); background: var(--folio-hover, linear-gradient(180deg, rgba(151, 107, 43, 0.54), rgba(70, 48, 22, 0.68))); }
.population-organization-naming button:disabled { cursor: wait; opacity: 0.54; }
.population-organization-naming button span { font-size: 15px; font-weight: 780; }
.population-organization-naming button small { color: var(--folio-muted, #aa9b7c); font-size: var(--ming-font-small, 14px); }
.population-organization-account { min-width: 0; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; margin-top: 12px; }
.population-organization-account article { min-width: 0; display: grid; gap: 4px; padding: 11px 12px; border: 1px solid rgba(111, 151, 131, 0.23); background: var(--folio-card, rgba(8, 18, 14, 0.72)); }
.population-organization-account article > span { color: var(--folio-muted, #8caa9b); font-weight: 720; }
.population-organization-account strong { color: var(--folio-ink, #dfcfad); font-size: 17px; }
.population-organization-account p { margin: 0; color: var(--folio-muted, #b0a693); }
.population-organization-account small { color: var(--folio-muted, #859b8f); }
.population-upkeep-account { min-width: 0; display: grid; grid-template-columns: repeat(3, minmax(96px, 0.22fr)) minmax(240px, 1fr); align-items: stretch; gap: 7px; margin-top: 9px; padding: 7px; border: 1px solid rgba(168, 137, 75, 0.25); border-left: 3px solid #92753f; background: var(--folio-card, #12150f); }
.population-upkeep-account > span { min-width: 0; display: grid; gap: 2px; padding: 7px 9px; background: var(--folio-card, rgba(47, 39, 23, 0.42)); }
.population-upkeep-account small { color: var(--folio-muted, #9d927d); }
.population-upkeep-account b { color: var(--folio-ink, #dec27d); font-family: var(--font-brush); font-size: 23px; font-weight: 400; line-height: 1; }
.population-upkeep-account em { margin-left: 3px; color: var(--folio-muted, #988d77); font-family: var(--font-display); font-size: var(--ming-font-small, 14px); font-style: normal; }
.population-upkeep-account > p { align-self: center; margin: 0; padding: 5px 9px; color: var(--folio-muted, #9fb2a6); line-height: 1.55; }
.population-upkeep-account.short { border-color: var(--folio-rule, rgba(151, 74, 61, 0.48)); border-left-color: var(--folio-rule, #a35749); background: var(--folio-card, #18110f); }
.population-upkeep-account.short > span:nth-child(3) b { color: var(--folio-muted, #dda08f); }
.population-readiness { min-width: 0; display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 7px; margin-top: 10px; }
.population-readiness > span { min-width: 0; display: grid; gap: 3px; padding: 8px 9px; border-top: 1px solid rgba(194, 158, 86, 0.28); background: var(--folio-card, rgba(37, 30, 19, 0.32)); }
.population-readiness small { color: var(--folio-muted, #978e7c); }
.population-readiness b { color: var(--folio-ink, #ddc27c); font-family: var(--font-brush); font-size: 25px; font-weight: 400; }
.population-readiness em { margin-left: 2px; color: var(--folio-muted, #93886f); font-family: var(--font-display); font-size: var(--ming-font-small, 14px); font-style: normal; }
.population-training-card {
  min-width: 0;
  padding: 14px 15px 15px;
  border: 1px solid rgba(180, 147, 80, 0.27);
  border-left: 4px solid #9c7741;
  background: var(--folio-card, radial-gradient(circle at 84% 14%, rgba(174, 132, 57, 0.12), transparent 28%),
    linear-gradient(108deg, rgba(70, 56, 30, 0.25), transparent 46%),
    #0c1510);
  box-shadow: inset 0 1px rgba(239, 216, 165, 0.035), 0 12px 30px rgba(0, 0, 0, 0.16);
}
.population-training-card.blocked { border-left-color: var(--folio-rule, #6f6654); filter: saturate(0.82); }
.population-training-card > header { min-width: 0; display: grid; grid-template-columns: 54px minmax(0, 1fr) auto; align-items: center; gap: 13px; }
.population-training-card > header > i { width: 50px; height: 50px; display: grid; place-items: center; color: var(--folio-ink, #e0c279); border: 1px solid rgba(201, 165, 85, 0.48); border-radius: 50%; background: var(--folio-card, rgba(49, 37, 20, 0.68)); box-shadow: inset 0 0 0 5px rgba(7, 17, 13, 0.72); font-family: var(--font-brush); font-size: 27px; font-style: normal; }
.population-training-card > header > div { min-width: 0; }
.population-training-card > header span { color: var(--folio-muted, #ad9a6e); font-weight: 740; letter-spacing: 0.08em; }
.population-training-card h4 { margin: 2px 0 0; color: var(--folio-ink, #ebddbf); font-family: var(--font-brush); font-size: 25px; font-weight: 400; line-height: 1.1; }
.population-training-card > header p { max-width: 760px; margin: 5px 0 0; color: var(--folio-muted, #aaa18e); }
.population-training-card > header > strong { display: grid; min-width: 84px; color: var(--folio-ink, #e0c277); font-family: var(--font-brush); font-size: 31px; font-weight: 400; line-height: 0.95; text-align: center; }
.population-training-card > header > strong small { margin-top: 5px; color: var(--folio-muted, #988e79); font-family: var(--font-display); font-size: var(--ming-font-small, 14px); }
.population-training-facts { min-width: 0; display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 7px; margin-top: 12px; }
.population-training-facts > span { min-width: 0; display: flex; align-items: baseline; justify-content: space-between; gap: 7px; min-height: 48px; padding: 9px 11px; border: 1px solid rgba(177, 145, 80, 0.2); background: var(--folio-card, rgba(39, 32, 20, 0.43)); }
.population-training-facts small { color: var(--folio-muted, #968e7d); }
.population-training-facts b { color: var(--folio-ink, #dfc37d); font-family: var(--font-brush); font-size: 23px; font-weight: 400; }
.population-training-facts em { margin-left: 3px; color: var(--folio-muted, #968a73); font-family: var(--font-display); font-size: var(--ming-font-small, 14px); font-style: normal; }
.population-training-last { display: flex; align-items: center; gap: 10px; margin: 8px 0 0; padding: 8px 10px; color: var(--folio-ink, #a79d89); border-left: 2px solid rgba(121, 157, 137, 0.52); background: var(--folio-card, rgba(17, 34, 25, 0.45)); }
.population-training-last span { color: var(--folio-muted, #86a493); }
.population-training-last b { color: var(--folio-ink, #cfc0a1); font-weight: 660; }
.population-training-command { min-width: 0; display: grid; grid-template-columns: minmax(190px, 0.38fr) minmax(0, 1fr); align-items: end; gap: 10px; margin-top: 10px; padding-top: 11px; border-top: 1px solid rgba(180, 148, 82, 0.2); }
.population-training-command label { min-width: 0; display: grid; gap: 5px; color: var(--folio-ink, #92a99b); font-weight: 700; }
.population-training-command select { width: 100%; min-width: 0; min-height: 48px; padding: 9px 11px; color: var(--folio-ink, #edddbc); border: 1px solid rgba(177, 145, 80, 0.4); border-radius: 2px; outline: 0; background: var(--folio-card, rgba(5, 13, 10, 0.91)); font-family: var(--font-display); font-size: 16px; }
.population-training-command select:focus { border-color: var(--folio-rule, #c39a52); box-shadow: 0 0 0 3px rgba(178, 132, 60, 0.15); }
.population-training-command > div { min-width: 0; display: grid; grid-template-columns: minmax(0, 1fr) minmax(220px, 0.38fr); align-items: center; gap: 10px; }
.population-training-command > div > small { color: var(--folio-muted, #9fa99f); line-height: 1.55; }
.population-training-command button { min-width: 0; min-height: 50px; display: grid; place-content: center; gap: 2px; padding: 8px 13px; color: var(--folio-ink, #f0ddb4); border: 1px solid rgba(192, 153, 79, 0.5); background: var(--folio-card, linear-gradient(180deg, rgba(129, 91, 37, 0.48), rgba(62, 44, 21, 0.62))); cursor: pointer; font-family: var(--font-display); }
.population-training-command button span { color: inherit; font-size: 16px; font-weight: 780; }
.population-training-command button em { color: var(--folio-muted, #ad9d7e); font-size: var(--ming-font-small, 14px); font-style: normal; }
.population-training-command button:hover:not(:disabled),
.population-training-command button:focus-visible { border-color: var(--folio-rule, #d1a75d); background: var(--folio-hover, linear-gradient(180deg, rgba(151, 107, 43, 0.57), rgba(73, 50, 22, 0.7))); }
.population-training-command button:disabled { cursor: not-allowed; opacity: 0.5; }
.population-formation-ledger {
  min-width: 0;
  padding: 15px;
  border-left: 4px solid #946044;
  background: var(--folio-card, linear-gradient(108deg, rgba(92, 52, 31, 0.24), transparent 44%),
    #0c1410);
}
.population-formation-ledger > header { min-width: 0; display: flex; align-items: start; justify-content: space-between; gap: 14px; padding-bottom: 12px; border-bottom: 1px solid rgba(186, 153, 88, 0.2); }
.population-formation-ledger > header > div { min-width: 0; }
.population-formation-ledger > header span,
.population-formation-form > header span { color: var(--folio-muted, #c3a66a); font-weight: 760; letter-spacing: 0.11em; }
.population-formation-ledger h4 { margin: 3px 0 0; color: var(--folio-ink, #eadbbe); font-family: var(--font-brush); font-size: 25px; font-weight: 400; line-height: 1.12; }
.population-formation-ledger > header p { max-width: 780px; margin: 6px 0 0; color: var(--folio-muted, #aaa08e); }
.population-formation-ledger > header > b { flex: 0 0 auto; padding: 5px 9px; color: var(--folio-ink, #dec27c); border: 1px solid rgba(186, 148, 75, 0.38); background: var(--folio-card, rgba(77, 55, 28, 0.35)); font-size: var(--ming-font-small, 14px); }
.population-formation-list { min-width: 0; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; margin-top: 12px; }
.population-formation-list > :only-child { grid-column: 1 / -1; }
.population-formation-card { min-width: 0; overflow: hidden; border: 1px solid rgba(172, 139, 77, 0.3); border-left: 4px solid #a77a45; background: var(--folio-card, rgba(8, 16, 13, 0.9)); box-shadow: 0 10px 24px rgba(0, 0, 0, 0.16); }
.population-formation-card.has-loss { border-left-color: var(--folio-rule, #965247); }
.population-formation-card > header { min-width: 0; display: grid; grid-template-columns: 52px minmax(0, 1fr) auto; align-items: center; gap: 12px; padding: 13px 14px; background: var(--folio-card, linear-gradient(92deg, rgba(91, 61, 31, 0.31), transparent 52%)); }
.population-formation-card > header > i { width: 48px; height: 48px; display: grid; place-items: center; color: var(--folio-ink, #e0c176); border: 1px solid rgba(200, 162, 83, 0.48); border-radius: 50%; background: var(--folio-card, rgba(44, 32, 18, 0.62)); box-shadow: inset 0 0 0 4px rgba(7, 16, 12, 0.7); font-family: var(--font-brush); font-size: 25px; font-style: normal; }
.population-formation-card > header > div { min-width: 0; }
.population-formation-card > header span { color: var(--folio-muted, #9cad9e); font-size: var(--ming-font-small, 14px); }
.population-formation-card h5 { margin: 2px 0 0; color: var(--folio-ink, #eadbbe); font-family: var(--font-brush); font-size: 23px; font-weight: 400; line-height: 1.13; }
.population-formation-card > header > strong { display: grid; min-width: 64px; color: var(--folio-ink, #e1c47c); font-family: var(--font-brush); font-size: 29px; font-weight: 400; line-height: 0.95; text-align: center; }
.population-formation-card > header > strong small { margin-top: 4px; color: var(--folio-muted, #968d7b); font-family: var(--font-display); font-size: var(--ming-font-small, 14px); }
.population-formation-card > dl { min-width: 0; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 6px; margin: 0; padding: 0 14px 11px; }
.population-formation-card > dl > div { min-width: 0; display: flex; align-items: baseline; justify-content: space-between; gap: 7px; padding: 7px 9px; border: 1px solid rgba(173, 141, 79, 0.19); background: var(--folio-card, rgba(36, 29, 18, 0.42)); }
.population-formation-card dt { color: var(--folio-muted, #978e7d); font-size: var(--ming-font-small, 14px); }
.population-formation-card dd { margin: 0; color: var(--folio-ink, #d9be7c); font-size: 18px; font-weight: 760; }
.population-formation-card.has-loss > dl > div:nth-child(n + 2) dd { color: var(--folio-ink, #ce8d7d); }
.population-formation-card > section { min-width: 0; padding: 10px 14px; border-top: 1px solid rgba(177, 145, 80, 0.16); border-bottom: 1px solid rgba(177, 145, 80, 0.16); background: var(--folio-card, rgba(8, 24, 17, 0.52)); }
.population-formation-card > section > span { color: var(--folio-muted, #91aa9b); font-weight: 740; letter-spacing: 0.07em; }
.population-formation-card ul { display: grid; gap: 5px; margin: 7px 0 0; padding: 0; list-style: none; }
.population-formation-card li { min-width: 0; display: grid; grid-template-columns: minmax(0, 1fr) auto auto; gap: 12px; padding: 6px 8px; color: var(--folio-ink, #b8ad99); border-left: 2px solid rgba(111, 151, 131, 0.48); background: var(--folio-card, rgba(26, 37, 28, 0.38)); }
.population-formation-card li b { color: var(--folio-ink, #a99a7d); font-weight: 600; }
.population-formation-card li em { color: var(--folio-muted, #ddc47f); font-style: normal; font-weight: 740; }
.population-formation-card > footer { min-width: 0; display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: start; gap: 8px; padding: 10px 14px 13px; }
.population-formation-rename { min-width: 0; border: 1px solid rgba(128, 157, 140, 0.23); background: var(--folio-card, rgba(9, 23, 17, 0.56)); }
.population-formation-rename > summary { min-height: 48px; display: flex; align-items: center; justify-content: space-between; gap: 9px; padding: 9px 11px; color: var(--folio-ink, #bacbbf); cursor: pointer; font-weight: 750; list-style-position: inside; }
.population-formation-rename > summary small { color: var(--folio-muted, #a0937b); font-size: var(--ming-font-small, 14px); font-weight: 500; }
.population-formation-rename[open] { grid-column: 1 / -1; border-color: var(--folio-rule, rgba(182, 146, 75, 0.36)); }
.population-formation-rename[open] > summary { border-bottom: 1px solid rgba(177, 143, 76, 0.18); }
.population-formation-rename > div { min-width: 0; display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 8px; padding: 10px; }
.population-formation-card input,
.population-formation-card button,
.population-formation-form input,
.population-formation-form select { min-width: 0; min-height: 48px; color: var(--folio-ink, #edddbc); border: 1px solid rgba(177, 145, 80, 0.4); border-radius: 2px; outline: 0; background: var(--folio-card, rgba(5, 13, 10, 0.91)); font-family: var(--font-display); font-size: 16px; }
.population-formation-card input,
.population-formation-form input,
.population-formation-form select { width: 100%; padding: 9px 11px; }
.population-formation-card input:focus,
.population-formation-form input:focus,
.population-formation-form select:focus { border-color: var(--folio-rule, #c39a52); box-shadow: 0 0 0 3px rgba(178, 132, 60, 0.15); }
.population-formation-card button,
.population-formation-form > button { padding: 8px 13px; color: var(--folio-ink, #ead7ae); background: var(--folio-card, rgba(91, 63, 29, 0.47)); cursor: pointer; font-weight: 760; }
.population-formation-card button { display: grid; place-content: center; gap: 1px; }
.population-formation-card button small { color: var(--folio-muted, #a79980); font-size: var(--ming-font-small, 14px); font-weight: 500; white-space: nowrap; }
.population-formation-card button.danger { color: var(--folio-danger, #dab1a7); border-color: var(--folio-rule, rgba(155, 78, 66, 0.5)); background: var(--folio-danger-surface, rgba(77, 32, 27, 0.46)); }
.population-formation-card button:hover:not(:disabled),
.population-formation-form > button:hover:not(:disabled) { border-color: var(--folio-rule, #d0a55a); background: var(--folio-hover, rgba(119, 82, 34, 0.59)); }
.population-formation-card button:disabled,
.population-formation-form > button:disabled { cursor: wait; opacity: 0.5; }
.population-formation-form { min-width: 0; display: grid; gap: 11px; margin-top: 12px; padding: 13px; border: 1px dashed rgba(179, 144, 76, 0.34); background: var(--folio-card, rgba(31, 25, 16, 0.35)); }
.population-formation-form > header { min-width: 0; display: flex; align-items: start; justify-content: space-between; gap: 12px; }
.population-formation-form > header > div { min-width: 0; display: grid; gap: 2px; }
.population-formation-form > header small { color: var(--folio-muted, #9a9180); }
.population-formation-form > header > b { flex: 0 0 auto; color: var(--folio-ink, #ccb373); font-size: var(--ming-font-small, 14px); }
.population-formation-fields { min-width: 0; display: grid; grid-template-columns: minmax(220px, 1fr) minmax(170px, 0.48fr) minmax(170px, 0.48fr); gap: 9px; }
.population-formation-fields label { min-width: 0; display: grid; gap: 5px; color: var(--folio-ink, #91a99b); font-weight: 700; }
.population-formation-form fieldset { min-width: 0; margin: 0; padding: 10px; border: 1px solid rgba(126, 159, 139, 0.25); }
.population-formation-form legend { padding: 0 7px; color: var(--folio-ink, #9bad9f); font-size: var(--ming-font-small, 14px); }
.population-formation-form fieldset > div { min-width: 0; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 7px; }
.population-formation-form fieldset label { min-width: 0; display: grid; grid-template-columns: minmax(0, 1fr) 104px; align-items: center; gap: 10px; padding: 8px 9px; border: 1px solid rgba(169, 139, 78, 0.2); background: var(--folio-card, rgba(19, 30, 23, 0.48)); }
.population-formation-form fieldset label > span { min-width: 0; display: grid; gap: 1px; }
.population-formation-form fieldset label b { overflow: hidden; color: var(--folio-ink, #d8c9aa); font-weight: 720; text-overflow: ellipsis; white-space: nowrap; }
.population-formation-form fieldset label small { color: var(--folio-muted, #8da194); }
.population-formation-form > button { min-height: 50px; display: grid; place-content: center; gap: 1px; }
.population-formation-form > button small { color: var(--folio-muted, #aa9b80); font-size: var(--ming-font-small, 14px); font-weight: 500; }
.population-formation-empty { margin: 12px 0 0; padding: 10px 12px; color: var(--folio-ink, #a39a89); border-left: 2px solid #806545; background: var(--folio-card, rgba(48, 37, 22, 0.38)); }
.population-organization-units {
  min-width: 0;
  padding: 15px;
  border-left: 4px solid #567765;
  background: var(--folio-card, linear-gradient(110deg, rgba(46, 82, 62, 0.2), transparent 46%),
    #0b1410);
}
.population-organization-units > header { min-width: 0; display: flex; align-items: start; justify-content: space-between; gap: 12px; padding-bottom: 12px; border-bottom: 1px solid rgba(179, 148, 83, 0.19); }
.population-organization-units > header > div { min-width: 0; }
.population-organization-units > header span,
.population-unit-form > header span { color: var(--folio-muted, #91b09f); font-weight: 760; letter-spacing: 0.11em; }
.population-organization-units h4 { margin: 3px 0 0; color: var(--folio-ink, #e9dbbd); font-family: var(--font-brush); font-size: 25px; font-weight: 400; line-height: 1.12; }
.population-organization-units > header p { max-width: 760px; margin: 6px 0 0; color: var(--folio-muted, #aaa08e); }
.population-organization-units > header > b { flex: 0 0 auto; padding: 5px 9px; color: var(--folio-ink, #a8c9b6); border: 1px solid rgba(105, 157, 131, 0.38); background: var(--folio-card, rgba(35, 77, 58, 0.25)); font-size: var(--ming-font-small, 14px); }
.population-unit-list { min-width: 0; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; margin-top: 12px; }
.population-unit-list > :only-child { grid-column: 1 / -1; }
.population-unit-card { min-width: 0; display: grid; overflow: hidden; border: 1px solid rgba(126, 160, 139, 0.34); border-left: 4px solid #739580; background: var(--folio-card, rgba(7, 17, 13, 0.88)); box-shadow: inset 0 1px rgba(232, 213, 166, 0.035), 0 10px 26px rgba(0, 0, 0, 0.16); }
.population-unit-command { min-width: 0; display: grid; grid-template-columns: 58px minmax(0, 1fr) auto; align-items: center; gap: 13px; padding: 14px 15px; background: var(--folio-card, linear-gradient(92deg, rgba(49, 83, 63, 0.24), transparent 48%)); }
.population-unit-command > i { width: 52px; height: 52px; display: grid; place-items: center; color: var(--folio-ink, #dfc274); border: 1px solid rgba(203, 169, 91, 0.48); border-radius: 50%; background: var(--folio-card, rgba(42, 34, 19, 0.62)); box-shadow: inset 0 0 0 5px rgba(7, 17, 13, 0.72); font-family: var(--font-brush); font-size: 27px; font-style: normal; }
.population-unit-command > div { min-width: 0; }
.population-unit-command > div > span { color: var(--folio-muted, #8fac9c); font-weight: 720; letter-spacing: 0.08em; }
.population-unit-card h5 { margin: 2px 0 0; color: var(--folio-ink, #e6d8ba); font-family: var(--font-brush); font-size: 23px; font-weight: 400; line-height: 1.12; }
.population-unit-card.position-uncertain { border-left-color: var(--folio-rule, #9a604f); }
.population-unit-position { display: flex; flex-wrap: wrap; align-items: center; gap: 6px; margin: 7px 0 0; color: var(--folio-ink, #c3d6c8); }
.population-unit-position > b { width: 22px; height: 22px; display: grid; place-items: center; color: var(--folio-ink, #d9bd73); border: 1px solid rgba(191, 155, 81, 0.42); border-radius: 50%; font-size: var(--ming-font-small, 14px); }
.population-unit-position > strong { color: var(--folio-ink, #d8e3db); font-size: 14px; }
.population-unit-position > small { color: var(--folio-muted, #8fa598); font-size: var(--ming-font-small, 14px); }
.population-unit-card.position-uncertain .population-unit-position > strong,
.population-unit-card.position-uncertain .population-unit-position > small { color: var(--folio-muted, #d3a69b); }
.population-unit-roster-line { margin: 6px 0 0; color: var(--folio-ink, #a99f8c); }
.population-unit-roster-line strong { color: var(--folio-ink, #dfcfaf); }
.population-unit-command dl { min-width: 150px; display: grid; grid-template-columns: repeat(2, minmax(68px, 1fr)); gap: 6px; margin: 0; }
.population-unit-command dl > div { display: grid; place-items: center; gap: 2px; min-height: 58px; padding: 7px 10px; border: 1px solid rgba(190, 156, 87, 0.24); background: var(--folio-card, rgba(31, 29, 19, 0.45)); }
.population-unit-command dt { color: var(--folio-muted, #958c7b); font-size: var(--ming-font-small, 14px); }
.population-unit-command dd { margin: 0; color: var(--folio-ink, #dfc377); font-family: var(--font-brush); font-size: 25px; line-height: 1; }
.population-unit-member-tags { min-width: 0; display: grid; grid-template-columns: 88px minmax(0, 1fr); align-items: center; gap: 11px; padding: 11px 15px; border-top: 1px solid rgba(126, 160, 139, 0.17); border-bottom: 1px solid rgba(126, 160, 139, 0.17); background: var(--folio-card, rgba(8, 25, 18, 0.54)); }
.population-unit-member-tags > span { color: var(--folio-muted, #88a596); font-weight: 760; letter-spacing: 0.08em; }
.population-unit-member-tags > div { min-width: 0; display: flex; flex-wrap: wrap; gap: 7px; }
.population-unit-member-tags > div > span { min-height: 35px; display: inline-flex; align-items: center; gap: 7px; padding: 6px 9px; color: var(--folio-muted, #c8bda7); border: 1px solid rgba(159, 144, 107, 0.22); background: var(--folio-card, rgba(25, 27, 20, 0.52)); }
.population-unit-member-tags > div > span.leader { color: var(--folio-muted, #ead9b4); border-color: var(--folio-rule, rgba(190, 155, 84, 0.42)); background: var(--folio-card, rgba(72, 55, 26, 0.45)); }
.population-unit-member-tags i { width: 22px; height: 22px; display: grid; place-items: center; color: var(--folio-ink, #dfc173); border: 1px solid rgba(200, 165, 87, 0.46); border-radius: 50%; font-size: var(--ming-font-small, 14px); font-style: normal; }
.population-unit-member-tags b { font-weight: 760; }
.population-unit-member-tags small { color: var(--folio-muted, #82988c); font-size: var(--ming-font-small, 14px); }
.population-unit-member-tags .armed small { color: var(--folio-muted, #a89360); }
.population-unit-management { min-width: 0; display: grid; grid-template-columns: minmax(0, 1fr) minmax(220px, 0.36fr) auto; align-items: start; gap: 8px; padding: 12px 15px 14px; }
.population-unit-card label,
.population-unit-form-fields label { min-width: 0; display: grid; gap: 5px; color: var(--folio-ink, #92a99b); font-weight: 700; }
.population-unit-card input,
.population-unit-form input[type="text"],
.population-unit-form select {
  width: 100%;
  min-width: 0;
  min-height: 48px;
  padding: 9px 11px;
  color: var(--folio-ink, #efdfbf);
  border: 1px solid rgba(174, 145, 83, 0.4);
  border-radius: 2px;
  outline: 0;
  background: var(--folio-card, rgba(5, 13, 10, 0.9));
  font-family: var(--font-display);
  font-size: 16px;
}
.population-unit-card input:focus,
.population-unit-form input:focus,
.population-unit-form select:focus { border-color: var(--folio-rule, #c29b55); box-shadow: 0 0 0 3px rgba(178, 132, 60, 0.15); }
.population-unit-card button,
.population-unit-form > button { min-height: 48px; padding: 8px 12px; color: var(--folio-ink, #ead8b2); border: 1px solid rgba(179, 145, 80, 0.42); background: var(--folio-card, rgba(91, 64, 29, 0.45)); cursor: pointer; font-family: var(--font-display); font-size: 15px; font-weight: 760; }
.population-unit-card button { display: grid; place-content: center; gap: 1px; }
.population-unit-card button small { color: var(--folio-muted, #a99b80); font-size: var(--ming-font-small, 14px); font-weight: 500; white-space: nowrap; }
.population-unit-card button.danger { color: var(--folio-danger, #d9b2a8); border-color: var(--folio-rule, rgba(155, 81, 68, 0.5)); background: var(--folio-danger-surface, rgba(81, 34, 28, 0.45)); }
.population-unit-card button:hover:not(:disabled),
.population-unit-card button:focus-visible,
.population-unit-form > button:hover:not(:disabled),
.population-unit-form > button:focus-visible { border-color: var(--folio-rule, #cda65d); background: var(--folio-hover, rgba(116, 82, 35, 0.58)); }
.population-unit-card button:disabled,
.population-unit-form > button:disabled { cursor: wait; opacity: 0.5; }
.population-unit-roster-editor,
.population-unit-rename-editor { min-width: 0; border: 1px solid rgba(126, 160, 139, 0.24); background: var(--folio-card, rgba(8, 22, 16, 0.58)); }
.population-unit-roster-editor[open],
.population-unit-rename-editor[open] { grid-column: 1 / -1; border-color: var(--folio-rule, rgba(177, 146, 81, 0.34)); }
.population-unit-roster-editor > summary,
.population-unit-rename-editor > summary { min-height: 48px; display: flex; align-items: center; justify-content: space-between; gap: 10px; padding: 9px 11px; color: var(--folio-ink, #b9cdbf); cursor: pointer; font-weight: 760; list-style-position: inside; }
.population-unit-roster-editor > summary small { color: var(--folio-muted, #988f7d); font-size: var(--ming-font-small, 14px); font-weight: 500; text-align: right; }
.population-unit-rename-editor > summary small { color: var(--folio-muted, #a99a7e); font-size: var(--ming-font-small, 14px); font-weight: 500; }
.population-unit-roster-editor[open] > summary,
.population-unit-rename-editor[open] > summary { border-bottom: 1px solid rgba(174, 145, 83, 0.18); background: var(--folio-card, rgba(75, 57, 27, 0.2)); }
.population-unit-roster-editor > div { min-width: 0; display: grid; grid-template-columns: minmax(170px, 0.42fr) minmax(0, 1fr); gap: 9px; padding-top: 10px; }
.population-unit-roster-editor > div > label { align-self: start; }
.population-unit-roster-editor select { width: 100%; min-width: 0; min-height: 48px; padding: 9px 11px; color: var(--folio-ink, #efdfbf); border: 1px solid rgba(174, 145, 83, 0.4); border-radius: 2px; outline: 0; background: var(--folio-card, rgba(5, 13, 10, 0.9)); font-family: var(--font-display); font-size: 16px; }
.population-unit-roster-editor select:focus { border-color: var(--folio-rule, #c29b55); box-shadow: 0 0 0 3px rgba(178, 132, 60, 0.15); }
.population-unit-roster-editor fieldset { min-width: 0; margin: 0; padding: 9px; border: 1px solid rgba(126, 160, 139, 0.25); }
.population-unit-roster-editor legend { padding: 0 7px; color: var(--folio-ink, #9cac9e); font-size: var(--ming-font-small, 14px); }
.population-unit-roster-editor fieldset > div { min-width: 0; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 7px; }
.population-unit-roster-editor fieldset label { min-width: 0; min-height: 44px; display: flex; align-items: center; gap: 8px; padding: 8px 9px; color: var(--folio-ink, #d6c8aa); border: 1px solid rgba(175, 145, 82, 0.2); background: var(--folio-card, rgba(31, 29, 20, 0.38)); cursor: pointer; }
.population-unit-roster-editor fieldset input { width: 18px; min-height: 18px; height: 18px; flex: 0 0 auto; padding: 0; accent-color: #9a7c43; }
.population-unit-roster-editor > div { padding: 11px; }
.population-unit-roster-editor > div > button { grid-column: 1 / -1; min-height: 50px; }
.population-unit-rename-editor > div { min-width: 0; display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: end; gap: 8px; padding: 11px; }
.population-unit-disband { min-width: 180px; min-height: 48px; }
.population-unit-roster-blocked { margin: 0; padding: 9px 10px; color: var(--folio-danger, #9e9a88); border-left: 2px solid #766958; background: var(--folio-danger-surface, rgba(37, 30, 20, 0.34)); }
.population-unit-form { min-width: 0; display: grid; gap: 11px; margin-top: 12px; padding: 13px; border: 1px dashed rgba(135, 167, 147, 0.32); background: var(--folio-card, rgba(9, 22, 16, 0.66)); }
.population-unit-form > header { min-width: 0; display: flex; justify-content: space-between; gap: 10px; }
.population-unit-form > header > b { color: var(--folio-ink, #d5be82); }
.population-unit-form-fields { min-width: 0; display: grid; grid-template-columns: minmax(220px, 1fr) minmax(170px, 0.55fr) minmax(170px, 0.55fr); gap: 9px; }
.population-unit-form fieldset { min-width: 0; margin: 0; padding: 10px; border: 1px solid rgba(126, 160, 139, 0.25); }
.population-unit-form legend { padding: 0 7px; color: var(--folio-ink, #9cac9e); font-size: var(--ming-font-small, 14px); }
.population-unit-form fieldset > div { min-width: 0; display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 7px; }
.population-unit-form fieldset label { min-width: 0; min-height: 44px; display: flex; align-items: center; gap: 8px; padding: 8px 9px; color: var(--folio-ink, #d6c8aa); border: 1px solid rgba(175, 145, 82, 0.2); background: var(--folio-card, rgba(31, 29, 20, 0.38)); cursor: pointer; }
.population-unit-form fieldset input { width: 18px; height: 18px; flex: 0 0 auto; accent-color: #9a7c43; }
.population-unit-form > button { min-height: 50px; display: grid; place-content: center; gap: 2px; }
.population-unit-form > button small { color: var(--folio-muted, #aa9d82); font-size: var(--ming-font-small, 14px); font-weight: 500; }
.population-unit-empty { margin: 12px 0 0; padding: 11px 12px; color: var(--folio-ink, #9e9a88); border-left: 2px solid #657b6c; background: var(--folio-card, rgba(23, 36, 28, 0.45)); }
.population-organization-empty { min-height: 136px; display: grid; grid-template-columns: 70px minmax(0, 1fr); align-items: center; gap: 15px; padding: 16px; border-left: 4px solid #665f4f; }
.population-organization-empty > i { width: 64px; height: 64px; display: grid; place-items: center; color: var(--folio-ink, #9f8a58); border: 1px solid rgba(176, 146, 84, 0.32); border-radius: 50%; font-family: var(--font-brush); font-size: 35px; font-style: normal; }
.population-organization-empty p { margin: 7px 0 0; color: var(--folio-muted, #aaa08e); }

.population-command-ledger { min-width: 0; padding: 15px; border: 1px solid rgba(176, 145, 79, 0.3); border-left: 4px solid #8d673b; background: var(--folio-card, linear-gradient(108deg, rgba(92, 62, 29, 0.22), transparent 46%), #0b1310); font-size: 14px; }
.population-military-ledger .population-command-ledger :where(p, small, span, li) { font-size: 14px; }
.population-command-ledger > header { min-width: 0; display: flex; align-items: start; justify-content: space-between; gap: 13px; padding-bottom: 12px; border-bottom: 1px solid rgba(181, 149, 82, 0.2); }
.population-command-ledger > header > div { min-width: 0; }
.population-command-ledger > header span { color: var(--folio-muted, #c1a268); font-weight: 760; letter-spacing: 0.11em; }
.population-command-ledger h4 { margin: 3px 0 0; color: var(--folio-ink, #ecdebf); font-family: var(--font-brush); font-size: 27px; font-weight: 400; line-height: 1.12; }
.population-command-ledger > header p { max-width: 770px; margin: 6px 0 0; color: var(--folio-muted, #b1a794); line-height: 1.55; }
.population-command-ledger > header > b { flex: 0 0 auto; padding: 5px 9px; color: var(--folio-ink, #dfc47e); border: 1px solid rgba(190, 151, 75, 0.4); background: var(--folio-card, rgba(75, 54, 27, 0.42)); }
.population-command-list { min-width: 0; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; margin-top: 12px; }
.population-command-list > :only-child { grid-column: 1 / -1; }
.population-command-card { min-width: 0; overflow: hidden; border: 1px solid rgba(178, 145, 79, 0.33); border-left: 4px solid #9c703c; background: var(--folio-card, rgba(7, 16, 13, 0.92)); box-shadow: 0 12px 28px rgba(0, 0, 0, 0.18); }
.population-command-card.army { border-left-color: var(--folio-rule, #7c4540); background: var(--folio-card, linear-gradient(95deg, rgba(91, 42, 36, 0.22), transparent 48%), rgba(7, 16, 13, 0.94)); }
.population-command-card > header { min-width: 0; display: grid; grid-template-columns: 54px minmax(0, 1fr) auto; align-items: center; gap: 12px; padding: 14px; }
.population-command-card > header > i { width: 50px; height: 50px; display: grid; place-items: center; color: var(--folio-ink, #e2c57d); border: 1px solid rgba(205, 167, 86, 0.5); border-radius: 50%; background: var(--folio-card, rgba(54, 39, 18, 0.62)); box-shadow: inset 0 0 0 5px rgba(7, 16, 13, 0.72); font-family: var(--font-brush); font-size: 27px; font-style: normal; }
.population-command-card > header > div { min-width: 0; }
.population-command-card > header span { color: var(--folio-muted, #9db2a5); }
.population-command-card h5 { margin: 2px 0 0; color: var(--folio-ink, #eadcbd); font-family: var(--font-brush); font-size: 24px; font-weight: 400; line-height: 1.12; }
.population-command-card > header > strong { min-width: 76px; display: grid; color: var(--folio-ink, #e1c47b); font-family: var(--font-brush); font-size: 30px; font-weight: 400; line-height: 0.95; text-align: center; }
.population-command-card > header > strong small { margin-top: 5px; color: var(--folio-muted, #b5ac99); font-family: var(--font-display); font-size: 14px; }
.population-command-route { min-width: 0; padding: 11px 14px; border-top: 1px solid rgba(178, 145, 79, 0.17); border-bottom: 1px solid rgba(178, 145, 79, 0.17); background: var(--folio-card, rgba(11, 29, 20, 0.58)); }
.population-command-route > span { color: var(--folio-muted, #91a99b); font-weight: 740; letter-spacing: 0.07em; }
.population-command-route ul { min-width: 0; display: flex; flex-wrap: wrap; gap: 7px; margin: 8px 0 0; padding: 0; list-style: none; }
.population-command-route li { min-height: 36px; display: inline-flex; align-items: center; padding: 7px 10px; color: var(--folio-ink, #d6c7a7); border: 1px solid rgba(164, 145, 103, 0.27); background: var(--folio-card, rgba(29, 31, 22, 0.55)); }
.population-command-card > footer { min-width: 0; display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: start; gap: 8px; padding: 11px 14px 14px; }
.population-command-rename { min-width: 0; border: 1px solid rgba(126, 158, 139, 0.25); background: var(--folio-card, rgba(8, 22, 16, 0.58)); }
.population-command-rename > summary { min-height: 48px; display: flex; align-items: center; justify-content: space-between; gap: 9px; padding: 9px 11px; color: var(--folio-ink, #bdcec2); cursor: pointer; font-weight: 750; list-style-position: inside; }
.population-command-rename > summary small { color: var(--folio-muted, #b4aa95); font-size: 14px; font-weight: 500; }
.population-command-rename[open] { grid-column: 1 / -1; }
.population-command-rename[open] > summary { border-bottom: 1px solid rgba(177, 143, 76, 0.18); }
.population-command-rename > div { min-width: 0; display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 8px; padding: 10px; }
.population-command-card input,
.population-command-form input,
.population-command-form select { width: 100%; min-width: 0; min-height: 48px; padding: 9px 11px; color: var(--folio-ink, #efdfbf); border: 1px solid rgba(177, 145, 80, 0.4); border-radius: 2px; outline: 0; background: var(--folio-card, rgba(5, 13, 10, 0.92)); font-family: var(--font-display); font-size: 16px; }
.population-command-card input:focus,
.population-command-form input:focus,
.population-command-form select:focus { border-color: var(--folio-rule, #c39a52); box-shadow: 0 0 0 3px rgba(178, 132, 60, 0.15); }
.population-command-card button { min-height: 48px; padding: 8px 13px; color: var(--folio-ink, #ead8b2); border: 1px solid rgba(179, 145, 80, 0.43); background: var(--folio-card, rgba(91, 64, 29, 0.47)); cursor: pointer; font-family: var(--font-display); font-size: 15px; font-weight: 760; }
.population-command-card button.danger { display: grid; place-content: center; gap: 1px; color: var(--folio-danger, #dab3a8); border-color: var(--folio-rule, rgba(155, 80, 67, 0.52)); background: var(--folio-danger-surface, rgba(80, 33, 27, 0.47)); }
.population-command-card button small { color: var(--folio-muted, #bcae92); font-size: 14px; font-weight: 500; white-space: nowrap; }
.population-command-form { min-width: 0; display: grid; gap: 11px; margin-top: 12px; padding: 13px; border: 1px dashed rgba(184, 148, 76, 0.37); background: var(--folio-card, rgba(35, 27, 16, 0.4)); }
.population-command-form > header { min-width: 0; display: flex; align-items: start; justify-content: space-between; gap: 12px; }
.population-command-form > header > div { min-width: 0; }
.population-command-form h5 { margin: 3px 0 0; color: var(--folio-ink, #d8c8a8); font-size: 17px; font-weight: 680; }
.population-command-form > header > b { flex: 0 0 auto; color: var(--folio-ink, #d9bd78); }
.population-command-fields { min-width: 0; display: grid; grid-template-columns: minmax(220px, 1fr) minmax(180px, 0.48fr); gap: 9px; }
.population-command-fields label { min-width: 0; display: grid; gap: 5px; color: var(--folio-ink, #98ad9f); font-weight: 710; }
.population-command-form fieldset { min-width: 0; margin: 0; padding: 10px; border: 1px solid rgba(126, 159, 139, 0.26); }
.population-command-form legend { padding: 0 7px; color: var(--folio-ink, #b5c3b9); font-size: 14px; }
.population-command-form fieldset > div { min-width: 0; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 7px; }
.population-command-form fieldset label { min-width: 0; min-height: 48px; display: flex; align-items: center; gap: 9px; padding: 8px 10px; color: var(--folio-ink, #d7c9ab); border: 1px solid rgba(174, 145, 82, 0.22); background: var(--folio-card, rgba(19, 31, 23, 0.5)); cursor: pointer; }
.population-command-form fieldset input { width: 19px; min-height: 19px; height: 19px; flex: 0 0 auto; padding: 0; accent-color: #a68443; }
.population-command-form fieldset label > span { min-width: 0; display: grid; gap: 2px; }
.population-command-form fieldset label b { overflow: hidden; color: var(--folio-ink, #e0d0af); text-overflow: ellipsis; white-space: nowrap; }
.population-command-form fieldset label small { color: var(--folio-muted, #a9b9ae); font-size: 14px; }
.population-command-form > button { min-height: 50px; display: grid; place-content: center; gap: 2px; padding: 8px 13px; color: var(--folio-ink, #eddbb4); border: 1px solid rgba(190, 149, 75, 0.5); background: var(--folio-card, linear-gradient(180deg, rgba(126, 89, 36, 0.44), rgba(59, 42, 20, 0.58))); cursor: pointer; font-family: var(--font-display); font-size: 15px; font-weight: 770; }
.population-command-form > button small { color: var(--folio-muted, #bdae94); font-size: 14px; font-weight: 500; }
.population-command-card button:hover:not(:disabled),
.population-command-form > button:hover:not(:disabled) { border-color: var(--folio-rule, #d0a55a); background-color: var(--folio-hover, rgba(119, 82, 34, 0.6)); }
.population-command-card button:disabled,
.population-command-form > button:disabled { cursor: wait; opacity: 0.52; }

.population-military-next { min-width: 0; display: grid; grid-template-columns: minmax(0, 1fr) minmax(340px, 0.72fr); gap: 14px; padding: 15px; border-left: 4px solid #8b493d; background: var(--folio-card, linear-gradient(100deg, rgba(87, 37, 30, 0.28), transparent 48%), #0e1411); }
.population-military-next.quiet { border-left-color: var(--folio-rule, #66856f); background: var(--folio-card, linear-gradient(100deg, rgba(49, 83, 64, 0.25), transparent 48%), #0e1411); }
.population-military-next > div { min-width: 0; }
.population-military-next > div > p { max-width: 720px; margin: 7px 0 0; color: var(--folio-muted, #ada390); }
.population-military-next > aside { min-width: 0; display: grid; align-content: start; gap: 7px; padding-left: 14px; border-left: 1px solid rgba(190, 155, 85, 0.22); }
.population-military-next .system-action-seed { width: 100%; min-height: 48px; }
.population-military-next .system-action-seed span { font-size: 15px; }
.population-military-next .system-action-seed small { font-size: var(--ming-font-small, 14px); }

.system-focus-body .population-military-ledger { min-height: 100%; }

@media (max-width: 900px) {
  .population-military-overview,
  .population-military-next { grid-template-columns: 1fr; }
  .population-military-next > aside { padding: 12px 0 0; border-top: 1px solid rgba(190, 155, 85, 0.22); border-left: 0; }
  .population-encounter-record { grid-template-columns: 1fr; }
  .population-encounter-record > small { white-space: normal; }
  .population-regional-route { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .population-regional-route > article:nth-child(2) { border-right: 0; }
  .population-regional-route > article:nth-child(-n + 2) { border-bottom: 1px solid rgba(177, 145, 79, 0.15); }
  .population-regional-action { grid-template-columns: 1fr; }
  .population-cohort-grid { grid-template-columns: 1fr; }
  .population-formation-list { grid-template-columns: 1fr; }
  .population-command-list { grid-template-columns: 1fr; }
  .population-formation-fields { grid-template-columns: 1fr 1fr; }
  .population-formation-fields > label:first-child { grid-column: 1 / -1; }
  .population-unit-list { grid-template-columns: 1fr; }
  .population-unit-form-fields { grid-template-columns: 1fr 1fr; }
  .population-unit-form-fields > label:first-child { grid-column: 1 / -1; }
  .population-unit-form fieldset > div { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .population-training-command { grid-template-columns: minmax(190px, 0.42fr) minmax(0, 1fr); }
  .population-training-command > div { grid-template-columns: 1fr; }
  .population-organization-naming { grid-template-columns: minmax(0, 1fr) minmax(240px, 0.72fr); }
  .population-organization-naming > div { grid-column: 1 / -1; }
}

@media (max-width: 620px) {
  .population-military-ledger { gap: 10px; }
  .population-military-overview,
  .population-encounter-record,
  .population-regional-section,
  .population-cohort-section,
  .population-organization-naming,
  .population-organization-card,
  .population-training-card,
  .population-formation-ledger,
  .population-organization-units,
  .population-command-ledger,
  .population-organization-empty,
  .population-military-next { padding: 12px; }
  .population-military-overview h3 { font-size: 28px; }
  .population-regional-section > header { align-items: stretch; flex-direction: column; }
  .population-regional-summary { width: 100%; }
  .population-regional-source > header { align-items: start; }
  .population-regional-route { grid-template-columns: 1fr; }
  .population-regional-route > article,
  .population-regional-route > article:nth-child(2) { border-right: 0; border-bottom: 1px solid rgba(177, 145, 79, 0.15); }
  .population-regional-route > article:last-child { border-bottom: 0; }
  .population-regional-action .system-action-seed { min-height: 52px; }
  .population-regional-action .system-action-seed span { font-size: 16px; }
  .population-military-totals { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .population-military-totals > span { min-height: 66px; }
  .population-cohort-visual { aspect-ratio: 16 / 9; }
  .population-cohort-visual figcaption { right: 10px; bottom: 9px; left: 10px; grid-template-columns: 1fr; gap: 1px; }
  .population-cohort-visual figcaption > span { grid-row: auto; padding: 0; border-right: 0; }
  .population-cohort-progress { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .population-cohort-progress li { min-height: 52px; }
  .population-cohort-status em { width: 100%; margin-left: 0; }
  .population-cohort-details > summary { min-height: 52px; align-items: start; flex-direction: column; justify-content: center; gap: 1px; }
  .population-cohort-details > summary small { width: 100%; text-align: left; white-space: normal; }
  .population-composition { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .population-cohort-loss { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .population-cohort-card dl > div { grid-template-columns: 1fr; gap: 2px; }
  .population-organization-account { grid-template-columns: 1fr; }
  .population-upkeep-account { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .population-upkeep-account > p { grid-column: 1 / -1; padding: 7px 8px; }
  .population-organization-naming { grid-template-columns: 1fr; }
  .population-organization-naming > div { grid-column: auto; }
  .population-organization-naming input,
  .population-organization-naming button { min-height: 52px; }
  .population-organization-naming button span { font-size: 16px; }
  .population-training-card > header { grid-template-columns: 46px minmax(0, 1fr) auto; align-items: start; }
  .population-training-card > header > i { width: 42px; height: 42px; font-size: 23px; }
  .population-training-facts { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .population-training-command { grid-template-columns: 1fr; }
  .population-training-command select,
  .population-training-command button { min-height: 52px; }
  .population-training-last { align-items: start; flex-direction: column; gap: 2px; }
  .population-organization-units > header { align-items: stretch; flex-direction: column; }
  .population-organization-units > header > b { align-self: start; }
  .population-formation-ledger > header,
  .population-formation-form > header { align-items: stretch; flex-direction: column; }
  .population-formation-ledger > header > b,
  .population-formation-form > header > b { align-self: start; }
  .population-formation-card > header { grid-template-columns: 44px minmax(0, 1fr) auto; padding: 12px; }
  .population-formation-card > header > i { width: 42px; height: 42px; font-size: 22px; }
  .population-formation-card > dl { padding: 0 12px 10px; }
  .population-formation-card li { grid-template-columns: minmax(0, 1fr) auto; }
  .population-formation-card li em { grid-column: 2; }
  .population-formation-card > footer { grid-template-columns: 1fr; padding: 10px 12px 12px; }
  .population-formation-rename[open] { grid-column: auto; }
  .population-formation-rename > summary { min-height: 52px; }
  .population-formation-rename > div { grid-template-columns: 1fr; }
  .population-formation-fields { grid-template-columns: 1fr; }
  .population-formation-fields > label:first-child { grid-column: auto; }
  .population-formation-form fieldset > div { grid-template-columns: 1fr; }
  .population-formation-card input,
  .population-formation-card button,
  .population-formation-form input,
  .population-formation-form select,
  .population-formation-form > button { min-height: 52px; }
  .population-command-ledger > header,
  .population-command-form > header { align-items: stretch; flex-direction: column; }
  .population-command-ledger > header > b,
  .population-command-form > header > b { align-self: start; }
  .population-command-card > header { grid-template-columns: 44px minmax(0, 1fr) auto; padding: 12px; }
  .population-command-card > header > i { width: 42px; height: 42px; font-size: 23px; }
  .population-command-card > footer { grid-template-columns: 1fr; padding: 10px 12px 12px; }
  .population-command-rename[open] { grid-column: auto; }
  .population-command-rename > summary { min-height: 52px; }
  .population-command-rename > div,
  .population-command-fields { grid-template-columns: 1fr; }
  .population-command-form fieldset > div { grid-template-columns: 1fr; }
  .population-command-card button,
  .population-command-form input,
  .population-command-form select,
  .population-command-form > button { min-height: 52px; }
  .population-unit-command { grid-template-columns: 46px minmax(0, 1fr); align-items: start; padding: 12px; }
  .population-unit-command > i { width: 42px; height: 42px; font-size: 23px; }
  .population-unit-position > small { flex-basis: 100%; padding-left: 28px; }
  .population-unit-command dl { grid-column: 1 / -1; min-width: 0; grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .population-unit-command dl > div { min-height: 50px; }
  .population-unit-member-tags { grid-template-columns: 1fr; padding: 10px 12px; }
  .population-unit-member-tags > div > span { flex: 1 1 130px; }
  .population-unit-management { grid-template-columns: 1fr; padding: 10px 12px 12px; }
  .population-unit-roster-editor[open],
  .population-unit-rename-editor[open] { grid-column: auto; }
  .population-unit-roster-editor > summary { min-height: 52px; align-items: start; flex-direction: column; justify-content: center; }
  .population-unit-roster-editor > summary small { text-align: left; }
  .population-unit-roster-editor > div { grid-template-columns: 1fr; }
  .population-unit-roster-editor > div > button { grid-column: auto; }
  .population-unit-rename-editor > summary { min-height: 52px; }
  .population-unit-rename-editor > div { grid-template-columns: 1fr; }
  .population-unit-disband { width: 100%; min-width: 0; min-height: 52px; }
  .population-unit-roster-editor select,
  .population-unit-roster-editor > div > button { min-height: 52px; }
  .population-unit-roster-editor fieldset > div { grid-template-columns: 1fr; }
  .population-unit-form-fields { grid-template-columns: 1fr; }
  .population-unit-form-fields > label:first-child { grid-column: auto; }
  .population-unit-form fieldset > div { grid-template-columns: 1fr; }
  .population-unit-card input,
  .population-unit-card button,
  .population-unit-form input[type="text"],
  .population-unit-form select,
  .population-unit-form > button { min-height: 52px; }
  .population-readiness { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .population-readiness > span:first-child { grid-column: 1 / -1; }
  .population-organization-empty { grid-template-columns: 50px minmax(0, 1fr); }
  .population-organization-empty > i { width: 46px; height: 46px; font-size: 27px; }
  .population-military-next .system-action-seed { min-height: 52px; }
  .population-military-next .system-action-seed span { font-size: 16px; }
}

/* V0.51 · 锦衣终卷：主菜单永久回看已解锁结局，未解锁卡不输出结局正文。 */
.main-menu-action.jinyi-ending-archive-action {
  border-color: var(--folio-rule, rgba(123, 166, 153, 0.38));
  border-left-color: var(--folio-rule, #719c90);
  background: var(--folio-card, rgba(8, 17, 15, 0.9));
  box-shadow: inset 3px 0 rgba(103, 151, 138, 0.65), 0 9px 26px rgba(0, 0, 0, 0.2);
}

.main-menu-action.jinyi-ending-archive-action:hover,
.main-menu-action.jinyi-ending-archive-action:focus-visible {
  border-color: var(--folio-rule, rgba(143, 190, 175, 0.68));
  background: var(--folio-hover, #101d19);
}

.jinyi-ending-archive-backdrop {
  position: fixed;
  inset: 0;
  z-index: 1180;
  display: grid;
  place-items: center;
  padding: 24px;
  overflow: hidden;
  background: rgba(2, 5, 5, 0.93);
  backdrop-filter: blur(12px);
  animation: modal-fade 180ms ease-out both;
}

.jinyi-ending-archive-panel {
  width: min(1220px, 96vw);
  max-height: min(920px, 93svh);
  min-height: min(760px, 88svh);
  display: grid;
  grid-template-rows: auto minmax(0, 1fr);
  overflow: hidden;
  color: var(--folio-ink, #d9ceb8);
  border: 1px solid rgba(181, 148, 82, 0.54);
  border-left: 4px solid #7f3f34;
  background: var(--folio-card, #090e0d);
  box-shadow: inset 0 0 0 1px rgba(220, 197, 146, 0.035), 0 34px 110px rgba(0, 0, 0, 0.78);
  animation: modal-rise 230ms ease-out both;
}

.jinyi-ending-archive-panel:focus { outline: none; }

.jinyi-ending-archive-panel > header {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto auto;
  align-items: center;
  gap: 22px;
  min-height: 128px;
  padding: 20px 24px 18px;
  border-bottom: 1px solid rgba(181, 148, 82, 0.28);
  background: var(--folio-card, #0c1210);
}

.jinyi-ending-archive-panel > header > div:first-child { min-width: 0; }
.jinyi-ending-archive-panel > header span { color: var(--folio-muted, #a58a57); font-size: var(--ming-font-small, 14px); font-weight: 700; letter-spacing: 0.2em; }
.jinyi-ending-archive-panel > header h2 { margin: 3px 0 0; color: var(--folio-ink, #eee0c1); font-family: var(--font-brush); font-size: 42px; font-weight: 400; letter-spacing: 0.08em; }
.jinyi-ending-archive-panel > header p { max-width: 710px; margin: 5px 0 0; color: var(--folio-muted, #948c7e); font-size: var(--ming-font-body, 16px); line-height: 1.55; }

.jinyi-ending-archive-progress {
  min-width: 104px;
  padding: 7px 17px;
  border-right: 1px solid rgba(181, 148, 82, 0.2);
  border-left: 1px solid rgba(181, 148, 82, 0.2);
  text-align: center;
}

.jinyi-ending-archive-progress strong { display: block; color: var(--folio-ink, #d2b476); font-family: var(--font-brush); font-size: 34px; font-weight: 400; line-height: 1; }
.jinyi-ending-archive-progress strong small { color: var(--folio-muted, #756d60); font-size: 17px; }
.jinyi-ending-archive-progress span { display: block; margin-top: 5px; color: var(--folio-muted, #858071); font-size: var(--ming-font-small, 14px); letter-spacing: 0.14em; }

.jinyi-ending-archive-panel > header > button {
  min-width: 88px;
  min-height: 44px;
  padding: 7px 15px;
  color: var(--folio-ink, #cbb98f);
  border: 1px solid rgba(181, 148, 82, 0.38);
  background: var(--folio-card, #121914);
  font-weight: 700;
  letter-spacing: 0.1em;
  cursor: pointer;
}

.jinyi-ending-archive-panel > header > button:hover,
.jinyi-ending-archive-panel > header > button:focus-visible { color: var(--folio-ink, #f0dfba); border-color: var(--folio-rule, rgba(211, 174, 94, 0.7)); background: var(--folio-hover, #1a2119); outline: none; }

.jinyi-ending-archive-grid {
  min-height: 0;
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  align-content: start;
  gap: 12px;
  padding: 16px;
  overflow-y: auto;
  scrollbar-color: rgba(160, 132, 78, 0.52) rgba(5, 9, 8, 0.8);
}

.jinyi-ending-archive-entry {
  min-width: 0;
  min-height: 208px;
  display: grid;
  grid-template-columns: 218px minmax(0, 1fr);
  overflow: hidden;
  border: 1px solid rgba(171, 143, 88, 0.26);
  background: var(--folio-card, #0d1310);
}

.jinyi-ending-archive-entry.unlocked { border-left: 3px solid #687f72; }
.jinyi-ending-archive-entry.unlocked.tone-costly { border-left-color: var(--folio-rule, #8f453a); background: var(--folio-danger-surface, #120f0e); }

.jinyi-ending-archive-entry > figure {
  position: relative;
  min-width: 0;
  min-height: 208px;
  margin: 0;
  overflow: hidden;
  background: #070a09;
}

.jinyi-ending-archive-entry.unlocked > figure::after {
  content: '';
  position: absolute;
  inset: 0;
  background: linear-gradient(0deg, rgba(4, 7, 6, 0.88), transparent 48%);
  pointer-events: none;
}

.jinyi-ending-archive-entry > figure > img { width: 100%; height: 100%; display: block; object-fit: cover; object-position: 68% center; filter: saturate(0.78) contrast(1.07); transition: transform 280ms ease, filter 280ms ease; }
.jinyi-ending-archive-entry:hover > figure > img { transform: scale(1.025); filter: saturate(0.9) contrast(1.06); }
.jinyi-ending-archive-entry.tone-costly > figure > img { filter: saturate(0.57) contrast(1.09) brightness(0.86); }

.jinyi-ending-archive-entry figcaption {
  position: absolute;
  z-index: 1;
  right: 12px;
  bottom: 10px;
  left: 12px;
  display: flex;
  align-items: end;
  justify-content: space-between;
  gap: 8px;
}

.jinyi-ending-archive-entry figcaption span { color: #bda46f; font-size: var(--ming-font-small, 14px); letter-spacing: 0.15em; }
.jinyi-ending-archive-entry figcaption b { color: #dfd0b1; font-size: var(--ming-font-small, 14px); font-weight: 650; }

.jinyi-ending-archive-copy { min-width: 0; display: flex; flex-direction: column; padding: 14px 15px 12px; }
.jinyi-ending-archive-copy > span { color: var(--folio-muted, #a88c58); font-size: var(--ming-font-small, 14px); font-weight: 700; letter-spacing: 0.1em; }
.jinyi-ending-archive-copy > h3 { margin: 5px 0 0; color: var(--folio-ink, #eadabd); font-family: var(--font-brush); font-size: 27px; font-weight: 400; letter-spacing: 0.07em; }
.jinyi-ending-archive-copy > p { margin: 7px 0 0; color: var(--folio-muted, #aaa08e); font-size: var(--ming-font-body, 16px); line-height: 1.62; }
.jinyi-ending-archive-copy > small { margin-top: auto; padding-top: 7px; color: var(--folio-muted, #706b61); font-size: var(--ming-font-small, 14px); }

.jinyi-ending-archive-copy > footer {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 9px;
  margin-top: auto;
  padding-top: 7px;
}

.jinyi-ending-archive-copy > footer small { min-width: 0; overflow: hidden; color: var(--folio-muted, #706b61); font-size: var(--ming-font-small, 14px); text-overflow: ellipsis; white-space: nowrap; }
.jinyi-ending-archive-copy > footer button { min-width: 88px; min-height: 44px; padding: 5px 9px; color: var(--folio-ink, #b9a271); border: 1px solid rgba(157, 130, 77, 0.34); background: var(--folio-card, #111813); font-size: var(--ming-font-small, 14px); font-weight: 700; letter-spacing: 0.08em; cursor: pointer; }
.jinyi-ending-archive-copy > footer button:hover,
.jinyi-ending-archive-copy > footer button:focus-visible { color: var(--folio-ink, #f0dfba); border-color: var(--folio-rule, rgba(205, 169, 91, 0.68)); background: var(--folio-hover, #192019); outline: none; }

.jinyi-ending-archive-protagonist {
  display: grid;
  grid-template-columns: 38px minmax(0, 1fr) auto;
  align-items: center;
  gap: 9px;
  margin-top: 10px;
  padding: 7px 8px;
  border: 1px solid rgba(113, 152, 139, 0.2);
  background: var(--folio-card, #0a110f);
}

.jinyi-ending-archive-portrait { width: 38px; height: 48px; display: grid; place-items: center; overflow: hidden; color: #cbb17b; border: 1px solid rgba(181, 148, 82, 0.32); background: #101612; }
.jinyi-ending-archive-portrait img { width: 100%; height: 100%; display: block; object-fit: cover; object-position: center 18%; }
.jinyi-ending-archive-portrait i { font-family: var(--font-brush); font-size: 20px; font-style: normal; }
.jinyi-ending-archive-protagonist > span:nth-child(2) { min-width: 0; display: flex; flex-direction: column; }
.jinyi-ending-archive-protagonist small { color: var(--folio-muted, #708b81); font-size: 7px; letter-spacing: 0.08em; }
.jinyi-ending-archive-protagonist strong { overflow: hidden; color: var(--folio-ink, #d6c9ad); font-size: var(--ming-font-small, 14px); text-overflow: ellipsis; white-space: nowrap; }
.jinyi-ending-archive-protagonist em { overflow: hidden; color: var(--folio-muted, #7f786c); font-size: var(--ming-font-small, 14px); font-style: normal; text-overflow: ellipsis; white-space: nowrap; }
.jinyi-ending-archive-protagonist > b { color: var(--folio-ink, #a78e5e); font-size: var(--ming-font-small, 14px); font-weight: 650; white-space: nowrap; }

.jinyi-ending-archive-entry.locked {
  border-color: var(--folio-rule, rgba(122, 113, 94, 0.18));
  background: var(--folio-card, #0b0f0d);
}

.jinyi-ending-archive-entry.locked > figure {
  display: grid;
  place-items: center;
  align-content: center;
  gap: 9px;
  color: #5d5b52;
  border-right: 1px solid rgba(122, 113, 94, 0.14);
  background: #080b0a;
}

.jinyi-ending-archive-entry.locked > figure i { width: 58px; height: 58px; display: grid; place-items: center; color: #735046; border: 2px solid rgba(120, 68, 57, 0.56); border-radius: 50%; font-family: var(--font-brush); font-size: 30px; font-style: normal; transform: rotate(-7deg); }
.jinyi-ending-archive-entry.locked > figure span { color: #656158; font-size: var(--ming-font-small, 14px); letter-spacing: 0.2em; }
.jinyi-ending-archive-entry.locked .jinyi-ending-archive-copy > h3 { color: var(--folio-ink, #817a6b); }
.jinyi-ending-archive-entry.locked .jinyi-ending-archive-copy > p { color: var(--folio-muted, #6d685e); }
.jinyi-ending-archive-empty { grid-column: 1 / -1; margin: 0; padding: 50px 24px; color: var(--folio-ink, #8d8576); border: 1px solid rgba(171, 143, 88, 0.22); text-align: center; }

.jinyi-ending-archive-detail-backdrop {
  position: absolute;
  inset: 0;
  z-index: 4;
  display: grid;
  place-items: center;
  padding: 24px;
  background: rgba(2, 5, 5, 0.96);
  animation: modal-fade 160ms ease-out both;
}

.jinyi-ending-archive-detail {
  width: min(1220px, 96vw);
  min-height: min(760px, 88svh);
  max-height: min(920px, 93svh);
  display: grid;
  grid-template-columns: minmax(0, 1.28fr) minmax(390px, 0.72fr);
  overflow: hidden;
  border: 1px solid rgba(191, 154, 79, 0.56);
  border-left: 4px solid #657f73;
  background: var(--folio-card, #090e0d);
  box-shadow: 0 36px 120px rgba(0, 0, 0, 0.82);
  animation: modal-rise 220ms ease-out both;
}

.jinyi-ending-archive-detail.tone-costly { border-left-color: var(--folio-rule, #91483c); }
.jinyi-ending-archive-detail:focus { outline: none; }

.jinyi-ending-archive-detail-art {
  position: relative;
  min-width: 0;
  min-height: min(760px, 88svh);
  margin: 0;
  overflow: hidden;
  background: var(--folio-card, #050807);
}

.jinyi-ending-archive-detail-art::after {
  content: '';
  position: absolute;
  inset: 0;
  background: linear-gradient(90deg, rgba(3, 6, 5, 0.04) 36%, rgba(5, 9, 8, 0.78) 100%), linear-gradient(0deg, rgba(3, 6, 5, 0.92) 0%, transparent 48%);
  pointer-events: none;
}

.jinyi-ending-archive-detail-art > img { width: 100%; height: 100%; display: block; object-fit: cover; object-position: 62% center; filter: saturate(0.82) contrast(1.07); }
.jinyi-ending-archive-detail.tone-costly .jinyi-ending-archive-detail-art > img { filter: saturate(0.62) contrast(1.09) brightness(0.88); }

.jinyi-ending-archive-detail-art figcaption {
  position: absolute;
  z-index: 1;
  right: 38px;
  bottom: 34px;
  left: 38px;
}

.jinyi-ending-archive-detail-art figcaption span { color: #c3a86c; font-size: var(--ming-font-small, 14px); font-weight: 700; letter-spacing: 0.2em; }
.jinyi-ending-archive-detail-art figcaption h2 { margin: 7px 0 0; color: #f1e2c1; font-family: var(--font-brush); font-size: clamp(58px, 6vw, 82px); font-weight: 400; line-height: 1; letter-spacing: 0.07em; text-shadow: 0 5px 22px rgba(0, 0, 0, 0.84); }
.jinyi-ending-archive-detail-art figcaption p { margin: 7px 0 0; color: #a79c86; font-size: var(--ming-font-body, 16px); letter-spacing: 0.08em; }

.jinyi-ending-archive-detail-copy {
  min-width: 0;
  min-height: 0;
  display: flex;
  flex-direction: column;
  padding: 24px 24px 20px;
  overflow-y: auto;
  background: var(--folio-card, #0a100e);
}

.jinyi-ending-archive-detail-copy > header { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding-bottom: 17px; border-bottom: 1px solid rgba(174, 145, 87, 0.24); }
.jinyi-ending-archive-detail-copy > header > div { display: flex; flex-direction: column; gap: 3px; }
.jinyi-ending-archive-detail-copy > header span { color: var(--folio-muted, #8f9f91); font-size: var(--ming-font-small, 14px); font-weight: 700; letter-spacing: 0.14em; }
.jinyi-ending-archive-detail-copy > header strong { color: var(--folio-ink, #c2a76d); font-size: var(--ming-font-small, 14px); }
.jinyi-ending-archive-detail-copy > header button { min-width: 108px; min-height: 44px; padding: 7px 12px; color: var(--folio-ink, #c9b78e); border: 1px solid rgba(181, 148, 82, 0.4); background: var(--folio-card, #121914); font-weight: 700; letter-spacing: 0.08em; cursor: pointer; }
.jinyi-ending-archive-detail-copy > header button:hover,
.jinyi-ending-archive-detail-copy > header button:focus-visible { color: var(--folio-ink, #f0dfba); border-color: var(--folio-rule, rgba(211, 174, 94, 0.7)); background: var(--folio-hover, #1a2119); outline: none; }

.jinyi-ending-archive-detail-summary { margin: 20px 0 0; color: var(--folio-ink, #d4c7ad); font-size: 14px; line-height: 1.8; }
.jinyi-ending-archive-detail-ledger { display: grid; gap: 8px; margin-top: 18px; }
.jinyi-ending-archive-detail-ledger article { display: grid; grid-template-columns: 44px minmax(0, 1fr); gap: 11px; padding: 11px 12px; border: 1px solid rgba(162, 135, 82, 0.2); border-left: 2px solid #687f72; background: var(--folio-card, #0d1411); }
.jinyi-ending-archive-detail.tone-costly .jinyi-ending-archive-detail-ledger article { border-left-color: var(--folio-rule, #82483e); }
.jinyi-ending-archive-detail-ledger b { color: var(--folio-ink, #bda46d); font-size: var(--ming-font-small, 14px); font-weight: 700; }
.jinyi-ending-archive-detail-ledger p { margin: 0; color: var(--folio-muted, #938b7c); font-size: var(--ming-font-body, 16px); line-height: 1.62; }

.jinyi-ending-archive-detail-protagonist {
  display: grid;
  grid-template-columns: 88px minmax(0, 1fr);
  align-items: stretch;
  gap: 14px;
  margin-top: 18px;
  padding: 10px;
  border: 1px solid rgba(109, 151, 137, 0.28);
  background: var(--folio-card, #0b1411);
}

.jinyi-ending-archive-detail-portrait { width: 88px; height: 118px; display: grid; place-items: center; overflow: hidden; color: #cbb17b; border: 1px solid rgba(181, 148, 82, 0.38); background: #101612; }
.jinyi-ending-archive-detail-portrait img { width: 100%; height: 100%; display: block; object-fit: cover; object-position: center 18%; }
.jinyi-ending-archive-detail-portrait i { font-family: var(--font-brush); font-size: 34px; font-style: normal; }
.jinyi-ending-archive-detail-protagonist > div { min-width: 0; display: flex; flex-direction: column; justify-content: center; }
.jinyi-ending-archive-detail-protagonist > div > span { color: var(--folio-muted, #779587); font-size: var(--ming-font-small, 14px); font-weight: 700; letter-spacing: 0.12em; }
.jinyi-ending-archive-detail-protagonist h3 { margin: 4px 0 0; color: var(--folio-ink, #ead9b9); font-family: var(--font-brush); font-size: 28px; font-weight: 400; letter-spacing: 0.07em; }
.jinyi-ending-archive-detail-protagonist p { margin: 4px 0 0; color: var(--folio-muted, #b2a78f); font-size: var(--ming-font-body, 16px); }
.jinyi-ending-archive-detail-protagonist small { margin-top: 7px; color: var(--folio-muted, #797368); font-size: var(--ming-font-small, 14px); line-height: 1.5; }
.jinyi-ending-archive-detail-copy > footer { display: flex; justify-content: space-between; gap: 12px; margin-top: auto; padding-top: 18px; color: var(--folio-ink, #6f6a60); font-size: var(--ming-font-small, 14px); }

@media (max-width: 760px) {
  .jinyi-ending-archive-backdrop { display: block; padding: 0; }
  .jinyi-ending-archive-panel { width: 100vw; min-height: 100svh; max-height: 100svh; border-width: 0 0 0 3px; }
  .jinyi-ending-archive-panel > header { position: relative; grid-template-columns: minmax(0, 1fr) 72px; gap: 10px; min-height: 150px; padding: 16px 13px 14px; }
  .jinyi-ending-archive-panel > header h2 { font-size: 35px; }
  .jinyi-ending-archive-panel > header p { max-width: 250px; font-size: var(--ming-font-body, 16px); }
  .jinyi-ending-archive-progress { min-width: 68px; padding: 6px 8px; border-right: 0; }
  .jinyi-ending-archive-progress strong { font-size: 28px; }
  .jinyi-ending-archive-panel > header > button { position: absolute; top: 10px; right: 10px; min-width: 68px; min-height: 44px; }
  .jinyi-ending-archive-grid { grid-template-columns: 1fr; gap: 10px; padding: 10px 9px 22px; }
  .jinyi-ending-archive-entry { min-height: 178px; grid-template-columns: 128px minmax(0, 1fr); }
  .jinyi-ending-archive-entry > figure { min-height: 178px; }
  .jinyi-ending-archive-copy { padding: 11px 10px 9px; }
  .jinyi-ending-archive-copy > h3 { font-size: 23px; }
  .jinyi-ending-archive-copy > p { font-size: var(--ming-font-body, 16px); line-height: 1.55; }
  .jinyi-ending-archive-protagonist { grid-template-columns: 32px minmax(0, 1fr); gap: 7px; margin-top: 7px; padding: 5px 6px; }
  .jinyi-ending-archive-portrait { width: 32px; height: 41px; }
  .jinyi-ending-archive-protagonist > b { display: none; }
  .jinyi-ending-archive-entry.locked > figure i { width: 48px; height: 48px; font-size: 26px; }
  .jinyi-ending-archive-copy > footer { gap: 5px; }
  .jinyi-ending-archive-copy > footer small { display: none; }
  .jinyi-ending-archive-copy > footer button { width: 100%; min-height: 44px; }
  .jinyi-ending-archive-detail-backdrop { display: block; padding: 0; }
  .jinyi-ending-archive-detail { width: 100vw; min-height: 100svh; max-height: 100svh; display: grid; grid-template-columns: 1fr; grid-template-rows: minmax(320px, 43svh) minmax(0, 1fr); border-width: 0 0 0 3px; }
  .jinyi-ending-archive-detail-art { min-height: 0; }
  .jinyi-ending-archive-detail-art::after { background: linear-gradient(0deg, rgba(3, 6, 5, 0.95) 0%, transparent 58%); }
  .jinyi-ending-archive-detail-art figcaption { right: 18px; bottom: 19px; left: 18px; }
  .jinyi-ending-archive-detail-art figcaption h2 { font-size: 48px; }
  .jinyi-ending-archive-detail-copy { padding: 13px 14px 22px; }
  .jinyi-ending-archive-detail-copy > header { padding-bottom: 11px; }
  .jinyi-ending-archive-detail-copy > header button { min-width: 104px; min-height: 44px; }
  .jinyi-ending-archive-detail-summary { margin-top: 13px; font-size: var(--ming-font-small, 14px); line-height: 1.68; }
  .jinyi-ending-archive-detail-ledger { margin-top: 12px; }
  .jinyi-ending-archive-detail-ledger article { padding: 9px 10px; }
  .jinyi-ending-archive-detail-protagonist { grid-template-columns: 66px minmax(0, 1fr); gap: 10px; margin-top: 13px; padding: 8px; }
  .jinyi-ending-archive-detail-portrait { width: 66px; height: 88px; }
  .jinyi-ending-archive-detail-protagonist h3 { font-size: 24px; }
  .jinyi-ending-archive-detail-copy > footer { padding-top: 13px; }
}

@media (max-width: 380px) {
  .jinyi-ending-archive-panel > header h2 { font-size: 31px; }
  .jinyi-ending-archive-panel > header p { max-width: 220px; }
  .jinyi-ending-archive-entry { grid-template-columns: 112px minmax(0, 1fr); }
}

@media (prefers-reduced-motion: reduce) {
  .jinyi-ending-archive-backdrop,
  .jinyi-ending-archive-panel,
  .jinyi-ending-archive-entry > figure > img,
  .jinyi-ending-archive-detail-backdrop,
  .jinyi-ending-archive-detail { animation: none; transition: none; }
}

/* 科技蓝图卷：画面负责辨认，材料与阶段账本才是权威状态。 */
.technology-compact-empty {
  min-height: 252px;
  display: grid;
  grid-template-columns: 58px minmax(0, 1fr);
  align-content: center;
  gap: 12px 14px;
  padding: 18px;
  border: 1px solid rgba(128, 169, 157, 0.24);
  background: var(--folio-card, linear-gradient(145deg, rgba(45, 82, 75, 0.18), rgba(8, 13, 12, 0.92)));
}

.technology-compact-empty > i {
  width: 52px;
  height: 52px;
  display: grid;
  place-items: center;
  color: var(--folio-ink, #d4b877);
  border: 1px solid rgba(203, 171, 102, 0.42);
  font-family: var(--font-brush);
  font-size: 29px;
  font-style: normal;
  transform: rotate(-2deg);
}

.technology-compact-empty > div { min-width: 0; }
.technology-compact-empty > div > span { color: var(--folio-muted, #7ea696); font-size: var(--ming-font-small, 14px); letter-spacing: 0.14em; }
.technology-compact-empty h3 { margin: 4px 0; color: var(--folio-ink, #eadcbd); font-size: 17px; line-height: 1.3; }
.technology-compact-empty p { margin: 0; color: var(--folio-muted, #948b79); font-size: var(--ming-font-body, 16px); line-height: 1.65; }
.technology-compact-empty > button {
  min-height: 44px;
  grid-column: 1 / -1;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  padding: 8px 11px;
  color: var(--folio-ink, #d7c49a);
  border: 1px solid rgba(182, 148, 81, 0.36);
  background: var(--folio-card, rgba(67, 52, 27, 0.26));
  cursor: pointer;
}
.technology-compact-empty > button span { font-size: var(--ming-font-small, 14px); font-weight: 700; }
.technology-compact-empty > button small { color: var(--folio-muted, #887a60); font-size: var(--ming-font-small, 14px); }

.technology-blueprint-library {
  display: grid;
  gap: 18px;
  padding: 4px;
}

.technology-blueprint-library > header {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  align-items: end;
  gap: 24px;
  padding: 18px 20px;
  border: 1px solid rgba(173, 147, 91, 0.28);
  border-left: 3px solid #729384;
  background: var(--folio-card, linear-gradient(90deg, rgba(21, 44, 39, 0.8), rgba(10, 16, 14, 0.88)),
    repeating-linear-gradient(0deg, transparent 0 22px, rgba(193, 171, 119, 0.035) 22px 23px));
}
.technology-blueprint-library > header span { color: var(--folio-muted, #82a798); font-size: var(--ming-font-small, 14px); font-weight: 700; letter-spacing: 0.18em; }
.technology-blueprint-library > header h3 { margin: 5px 0 3px; color: var(--folio-ink, #eee0bf); font-family: var(--font-brush); font-size: 29px; font-weight: 400; letter-spacing: 0.05em; }
.technology-blueprint-library > header p { max-width: 760px; margin: 0; color: var(--folio-muted, #9e9583); font-size: var(--ming-font-body, 16px); line-height: 1.65; }
.technology-blueprint-library > header > div:last-child { min-width: 88px; display: grid; justify-items: end; padding-left: 18px; border-left: 1px solid rgba(174, 147, 91, 0.22); }
.technology-blueprint-library > header > div:last-child b { color: var(--folio-ink, #d2b36f); font-family: var(--font-brush); font-size: 38px; font-weight: 400; line-height: 1; }
.technology-blueprint-library > header > div:last-child b i { color: var(--folio-ink, #777165); font-family: var(--font-body); font-size: var(--ming-font-small, 14px); font-style: normal; }
.technology-blueprint-library > header > div:last-child small { color: var(--folio-muted, #777165); font-size: var(--ming-font-small, 14px); }

.technology-blueprint-filters {
  display: grid;
  grid-template-columns: repeat(6, minmax(0, 1fr));
  gap: 7px;
  padding: 9px;
  border: 1px solid rgba(155, 132, 84, 0.22);
  background: var(--folio-card, rgba(8, 14, 12, 0.72));
}
.technology-blueprint-filters button {
  min-width: 0;
  min-height: 48px;
  display: grid;
  align-content: center;
  gap: 2px;
  padding: 7px 8px;
  color: var(--folio-ink, #9e9685);
  border: 1px solid rgba(145, 124, 80, 0.19);
  background: var(--folio-card, rgba(255, 255, 255, 0.018));
  text-align: left;
  cursor: pointer;
  transition: border-color 150ms ease, background 150ms ease, color 150ms ease;
}
.technology-blueprint-filters button:hover,
.technology-blueprint-filters button:focus-visible { color: var(--folio-ink, #d9c8a5); border-color: var(--folio-rule, rgba(187, 155, 91, 0.48)); }
.technology-blueprint-filters button.active { color: var(--folio-ink, #e6d4ae); border-color: var(--folio-rule, rgba(99, 157, 132, 0.52)); background: var(--folio-selected-surface, linear-gradient(180deg, rgba(47, 84, 70, 0.42), rgba(25, 48, 40, 0.32))); box-shadow: inset 0 -2px #719787; }
.technology-blueprint-filters span { overflow: hidden; font-size: var(--ming-font-small, 14px); font-weight: 700; text-overflow: ellipsis; white-space: nowrap; }
.technology-blueprint-filters small { overflow: hidden; color: var(--folio-muted, #706b61); font-size: 7px; text-overflow: ellipsis; white-space: nowrap; }
.technology-blueprint-filters button.active small { color: var(--folio-muted, #819d90); }

.technology-blueprint-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 11px;
}
.technology-blueprint-filter-empty { grid-column: 1 / -1; min-height: 120px; display: grid; place-items: center; align-content: center; gap: 4px; color: var(--folio-ink, #a99a7d); border: 1px dashed rgba(162, 137, 84, 0.28); background: var(--folio-card, rgba(255, 255, 255, 0.012)); text-align: center; }
.technology-blueprint-filter-empty b { font-size: var(--ming-font-small, 14px); }
.technology-blueprint-filter-empty small { color: var(--folio-muted, #716b60); font-size: var(--ming-font-small, 14px); }

.technology-blueprint-card {
  min-width: 0;
  min-height: 174px;
  display: grid;
  grid-template-columns: 168px minmax(0, 1fr);
  padding: 0;
  overflow: hidden;
  color: var(--folio-ink, #cfc1a4);
  border: 1px solid rgba(176, 148, 91, 0.25);
  border-left: 3px solid rgba(108, 144, 130, 0.72);
  background: var(--folio-card, #0b1210);
  text-align: left;
  cursor: pointer;
  transition: transform 150ms ease, border-color 150ms ease, background 150ms ease;
}
.technology-blueprint-card:hover,
.technology-blueprint-card:focus-visible { border-color: var(--folio-rule, rgba(205, 174, 108, 0.58)); background: var(--folio-hover, #101815); transform: translateY(-2px); }
.technology-blueprint-card.stage-adopted { border-left-color: var(--folio-rule, #c0a15e); }
.technology-blueprint-card figure { position: relative; min-width: 0; height: 100%; margin: 0; overflow: hidden; background: #08100e; }
.technology-blueprint-card figure::after { content: ''; position: absolute; inset: 0; background: linear-gradient(90deg, transparent 54%, #0b1210 100%); }
.technology-blueprint-card img { width: 100%; height: 100%; display: block; object-fit: cover; filter: saturate(0.72) contrast(1.07) brightness(0.78); }
.technology-blueprint-card > div { min-width: 0; display: flex; flex-direction: column; padding: 14px 15px 12px 10px; }
.technology-blueprint-card > div > span { color: var(--folio-muted, #7ea493); font-size: var(--ming-font-small, 14px); font-weight: 700; letter-spacing: 0.12em; }
.technology-blueprint-card h3 { margin: 4px 0 5px; color: var(--folio-ink, #e6d6b5); font-size: 17px; line-height: 1.28; }
.technology-blueprint-card p { display: -webkit-box; overflow: hidden; margin: 0; color: var(--folio-muted, #8f8777); font-size: var(--ming-font-body, 16px); line-height: 1.55; -webkit-box-orient: vertical; -webkit-line-clamp: 3; }
.technology-discovery-reason { display: -webkit-box; overflow: hidden; margin-top: 7px; color: var(--folio-ink, #76877e); font-size: var(--ming-font-small, 14px); font-style: normal; line-height: 1.45; -webkit-box-orient: vertical; -webkit-line-clamp: 2; }
.technology-blueprint-card footer { display: flex; align-items: center; justify-content: space-between; gap: 8px; margin-top: auto; padding-top: 8px; border-top: 1px solid rgba(169, 143, 86, 0.14); }
.technology-blueprint-card footer b { color: var(--folio-ink, #a8c6b8); font-size: var(--ming-font-small, 14px); }
.technology-blueprint-card footer small { color: var(--folio-muted, #716b60); font-size: var(--ming-font-small, 14px); }

.technology-active-ledger { display: grid; gap: 9px; padding: 13px 15px; border: 1px solid rgba(103, 149, 132, 0.27); background: var(--folio-card, rgba(29, 53, 46, 0.24)); }
.technology-active-ledger > header { display: flex; align-items: end; justify-content: space-between; gap: 12px; }
.technology-active-ledger > header span { color: var(--folio-muted, #80a493); font-size: var(--ming-font-small, 14px); letter-spacing: 0.15em; }
.technology-active-ledger > header h3 { margin: 2px 0 0; color: var(--folio-ink, #d8cab0); font-size: 14px; }
.technology-active-ledger > header > b { color: var(--folio-ink, #a88b50); font-size: var(--ming-font-small, 14px); }
.technology-active-ledger > div { display: flex; gap: 7px; overflow-x: auto; }
.technology-active-ledger button { min-width: 170px; min-height: 50px; display: grid; grid-template-columns: 1fr auto; gap: 1px 8px; padding: 7px 9px; color: var(--folio-ink, #c8baa0); border: 1px solid rgba(150, 126, 78, 0.23); background: var(--folio-card, #0b1311); text-align: left; cursor: pointer; }
.technology-active-ledger button span { grid-column: 1 / -1; color: var(--folio-muted, #728f82); font-size: 7px; }
.technology-active-ledger button b { overflow: hidden; font-size: var(--ming-font-small, 14px); text-overflow: ellipsis; white-space: nowrap; }
.technology-active-ledger button small { color: var(--folio-muted, #aa925f); font-size: var(--ming-font-small, 14px); }
.technology-blueprint-library > footer { display: flex; justify-content: flex-end; padding-top: 2px; }
.technology-blueprint-library > footer .system-action-seed { width: min(420px, 100%); }

.technology-blueprint-panel {
  position: relative;
  display: grid;
  gap: 14px;
  padding: 18px;
  overflow: hidden;
  border: 1px solid rgba(187, 157, 92, 0.42);
  border-left: 4px solid #6f9384;
  background: var(--folio-card, linear-gradient(120deg, rgba(22, 42, 36, 0.64), rgba(10, 15, 13, 0.96) 54%),
    repeating-linear-gradient(0deg, transparent 0 27px, rgba(216, 190, 132, 0.035) 27px 28px),
    #0a0f0e);
  box-shadow: inset 0 0 72px rgba(0, 0, 0, 0.34);
}
.technology-blueprint-panel::before { content: '研'; position: absolute; right: -18px; top: -30px; color: rgba(191, 157, 91, 0.055); font-family: var(--font-brush); font-size: 190px; line-height: 1; pointer-events: none; }
.technology-blueprint-panel > header { position: relative; z-index: 1; display: grid; grid-template-columns: 150px minmax(0, 1fr) auto; align-items: center; gap: 18px; }
.technology-blueprint-back { min-height: 48px; display: grid; align-content: center; gap: 1px; padding: 7px 10px; color: var(--folio-ink, #bca676); border: 1px solid rgba(184, 150, 82, 0.33); background: var(--folio-card, rgba(65, 48, 24, 0.2)); text-align: left; cursor: pointer; }
.technology-blueprint-back span { font-size: var(--ming-font-small, 14px); font-weight: 700; }
.technology-blueprint-back small { color: var(--folio-muted, #746b59); font-size: var(--ming-font-small, 14px); }
.technology-blueprint-panel > header > div > span { color: var(--folio-muted, #7fa393); font-size: var(--ming-font-small, 14px); font-weight: 700; letter-spacing: 0.15em; }
.technology-blueprint-panel > header h3 { margin: 4px 0 2px; color: var(--folio-ink, #f0dfbb); font-family: var(--font-brush); font-size: 32px; font-weight: 400; letter-spacing: 0.06em; }
.technology-blueprint-panel > header p { margin: 0; color: var(--folio-muted, #a39a87); font-size: var(--ming-font-body, 16px); line-height: 1.55; }
.technology-blueprint-panel > header > b { padding: 6px 10px; color: var(--folio-ink, #b9d0c5); border: 1px solid rgba(104, 156, 136, 0.44); background: var(--folio-card, rgba(47, 82, 70, 0.25)); font-size: var(--ming-font-small, 14px); letter-spacing: 0.1em; }

.technology-blueprint-art { position: relative; height: min(390px, 44vh); min-height: 300px; margin: 0; overflow: hidden; border: 1px solid rgba(190, 159, 95, 0.36); background: var(--folio-card, #07100e); }
.technology-blueprint-art::after { content: ''; position: absolute; inset: 0; background: linear-gradient(0deg, rgba(4, 9, 8, 0.92) 0%, transparent 44%), linear-gradient(90deg, rgba(5, 10, 9, 0.28), transparent 38%, rgba(5, 10, 9, 0.24)); pointer-events: none; }
.technology-blueprint-art img { width: 100%; height: 100%; display: block; object-fit: cover; filter: saturate(0.76) contrast(1.08) brightness(0.82); }
.technology-blueprint-art figcaption { position: absolute; z-index: 1; right: 22px; bottom: 18px; left: 22px; display: grid; }
.technology-blueprint-art figcaption span { color: #87aa9a; font-size: var(--ming-font-small, 14px); font-weight: 700; letter-spacing: 0.18em; }
.technology-blueprint-art figcaption b { color: #ead9b4; font-family: var(--font-brush); font-size: 28px; font-weight: 400; letter-spacing: 0.08em; text-shadow: 0 3px 12px #000; }
.technology-blueprint-art figcaption small { color: #928976; font-size: var(--ming-font-small, 14px); }

.technology-stage-rail { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); border: 1px solid rgba(141, 122, 80, 0.22); background: var(--folio-card, rgba(8, 13, 12, 0.72)); }
.technology-stage-rail > span { position: relative; min-height: 54px; display: grid; grid-template-columns: 26px 1fr; align-items: center; gap: 7px; padding: 8px 10px; color: var(--folio-muted, #6f6b62); border-right: 1px solid rgba(141, 122, 80, 0.18); }
.technology-stage-rail > span:last-child { border-right: 0; }
.technology-stage-rail i { width: 24px; height: 24px; display: grid; place-items: center; color: var(--folio-ink, #6f6655); border: 1px solid rgba(145, 122, 76, 0.24); border-radius: 50%; font-size: var(--ming-font-small, 14px); font-style: normal; }
.technology-stage-rail b { font-size: var(--ming-font-small, 14px); letter-spacing: 0.08em; }
.technology-stage-rail .passed { color: var(--folio-ink, #8eb09f); background: var(--folio-card, rgba(47, 84, 70, 0.15)); }
.technology-stage-rail .passed i { color: var(--folio-ink, #9fc2b1); border-color: var(--folio-rule, rgba(103, 160, 136, 0.44)); }
.technology-stage-rail .current { color: var(--folio-ink, #e1c98e); background: var(--folio-selected-surface, rgba(112, 83, 34, 0.22)); box-shadow: inset 0 -2px #b4904c; }
.technology-stage-rail .current i { color: var(--folio-ink, #ecd49d); border-color: var(--folio-rule, rgba(197, 158, 79, 0.58)); }

.technology-blueprint-notes,
.technology-blueprint-requirements { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; }
.technology-blueprint-notes > section,
.technology-blueprint-requirements > section,
.technology-blueprint-prerequisites,
.technology-blueprint-risks { padding: 13px 14px; border: 1px solid rgba(156, 133, 84, 0.2); background: var(--folio-card, rgba(8, 13, 12, 0.66)); }
.technology-blueprint-notes header,
.technology-blueprint-requirements header,
.technology-blueprint-prerequisites > header,
.technology-blueprint-risks > header { display: flex; align-items: center; justify-content: space-between; gap: 10px; padding-bottom: 7px; border-bottom: 1px solid rgba(156, 133, 84, 0.15); }
.technology-blueprint-notes header span,
.technology-blueprint-requirements header span,
.technology-blueprint-prerequisites header span,
.technology-blueprint-risks header span { color: var(--folio-muted, #ceb276); font-size: var(--ming-font-small, 14px); font-weight: 700; letter-spacing: 0.1em; }
.technology-blueprint-notes header b,
.technology-blueprint-risks header b,
.technology-blueprint-requirements header small,
.technology-blueprint-prerequisites header small { color: var(--folio-muted, #6f746d); font-size: var(--ming-font-small, 14px); font-weight: 400; }
.technology-blueprint-notes ol,
.technology-blueprint-notes ul { display: grid; gap: 4px; margin: 9px 0 0; padding-left: 18px; color: var(--folio-ink, #a9a08e); font-size: var(--ming-font-small, 14px); line-height: 1.55; }
.technology-blueprint-requirements ul { display: grid; gap: 5px; margin: 9px 0 0; padding: 0; list-style: none; }
.technology-blueprint-requirements li { display: flex; justify-content: space-between; gap: 12px; padding: 5px 7px; color: var(--folio-ink, #969081); background: var(--folio-card, rgba(255, 255, 255, 0.018)); font-size: var(--ming-font-small, 14px); }
.technology-blueprint-requirements li b { color: var(--folio-ink, #827966); }
.technology-blueprint-requirements li.met b { color: var(--folio-ink, #80aa96); }
.technology-blueprint-requirements li.missing { color: var(--folio-danger, #c19487); background: var(--folio-danger-surface, rgba(123, 50, 41, 0.13)); }
.technology-blueprint-requirements li.missing b { color: var(--folio-danger, #d58e7e); }
.technology-blueprint-prerequisites > div,
.technology-blueprint-risks > div { display: flex; flex-wrap: wrap; gap: 6px; padding-top: 9px; }
.technology-blueprint-prerequisites > div span,
.technology-blueprint-risks > div span { padding: 4px 7px; color: var(--folio-muted, #9a917f); border: 1px solid rgba(145, 124, 80, 0.18); background: var(--folio-card, rgba(255, 255, 255, 0.015)); font-size: var(--ming-font-small, 14px); }
.technology-blueprint-prerequisites > div span.met { color: var(--folio-muted, #8db29f); border-color: var(--folio-rule, rgba(95, 150, 127, 0.28)); }
.technology-blueprint-prerequisites > div span.missing { color: var(--folio-danger, #cd8f7f); border-color: var(--folio-rule, rgba(174, 79, 64, 0.3)); }
.technology-blueprint-risks > div span { color: var(--folio-muted, #b68f84); border-color: var(--folio-rule, rgba(161, 75, 62, 0.26)); background: var(--folio-card, rgba(102, 38, 31, 0.1)); }

.technology-blueprint-panel > footer { display: grid; grid-template-columns: minmax(0, 1fr) minmax(280px, 0.72fr); gap: 10px; padding-top: 2px; }
.technology-blueprint-local-action,
.technology-blueprint-adopted { min-height: 58px; display: grid; align-content: center; gap: 2px; padding: 9px 14px; border: 1px solid rgba(103, 159, 135, 0.46); background: var(--folio-card, linear-gradient(180deg, rgba(50, 91, 75, 0.48), rgba(24, 49, 40, 0.45))); text-align: left; }
.technology-blueprint-local-action { color: var(--folio-ink, #c9ddd3); cursor: pointer; }
.technology-blueprint-local-action span,
.technology-blueprint-adopted b { font-size: var(--ming-font-small, 14px); font-weight: 700; }
.technology-blueprint-local-action small,
.technology-blueprint-adopted small { color: var(--folio-muted, #789386); font-size: var(--ming-font-small, 14px); }
.technology-blueprint-local-action:disabled { color: var(--folio-ink, #857b6b); border-color: var(--folio-rule, rgba(155, 95, 79, 0.28)); background: var(--folio-card, rgba(68, 38, 31, 0.22)); opacity: 0.78; }
.technology-blueprint-panel > footer .system-action-seed { min-height: 58px; }

@media (max-width: 900px) {
  .technology-blueprint-filters { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .technology-blueprint-grid { grid-template-columns: 1fr; }
  .technology-blueprint-panel > header { grid-template-columns: 132px minmax(0, 1fr); }
  .technology-blueprint-panel > header > b { grid-column: 2; justify-self: start; }
}

@media (max-width: 760px) {
  .technology-blueprint-library { gap: 10px; padding: 0; }
  .technology-blueprint-library > header { grid-template-columns: 1fr auto; gap: 10px; padding: 13px 11px; }
  .technology-blueprint-library > header h3 { font-size: 24px; line-height: 1.12; }
  .technology-blueprint-library > header p { font-size: var(--ming-font-body, 16px); }
  .technology-blueprint-library > header > div:last-child { min-width: 55px; padding-left: 9px; }
  .technology-blueprint-library > header > div:last-child b { font-size: 29px; }
  .technology-blueprint-filters { grid-template-columns: repeat(6, minmax(108px, 1fr)); gap: 5px; padding: 6px; overflow-x: auto; overscroll-behavior-x: contain; }
  .technology-blueprint-filters button { min-height: 44px; }
  .technology-blueprint-card { min-height: 144px; grid-template-columns: 116px minmax(0, 1fr); }
  .technology-blueprint-card > div { padding: 10px 10px 9px 5px; }
  .technology-blueprint-card h3 { font-size: 15px; }
  .technology-blueprint-card p { font-size: var(--ming-font-body, 16px); -webkit-line-clamp: 3; }
  .technology-blueprint-panel { gap: 9px; padding: 9px; border-left-width: 3px; }
  .technology-blueprint-panel > header { grid-template-columns: 112px minmax(0, 1fr); gap: 10px; }
  .technology-blueprint-back { min-height: 44px; }
  .technology-blueprint-panel > header h3 { font-size: 24px; line-height: 1.1; }
  .technology-blueprint-panel > header p { font-size: var(--ming-font-body, 16px); }
  .technology-blueprint-art { height: 240px; min-height: 240px; }
  .technology-blueprint-art figcaption { right: 12px; bottom: 11px; left: 12px; }
  .technology-blueprint-art figcaption b { font-size: 22px; }
  .technology-stage-rail { grid-template-columns: repeat(5, minmax(52px, 1fr)); overflow-x: auto; }
  .technology-stage-rail > span { min-height: 48px; grid-template-columns: 20px 1fr; gap: 4px; padding: 6px 5px; }
  .technology-stage-rail i { width: 19px; height: 19px; }
  .technology-blueprint-notes,
  .technology-blueprint-requirements { grid-template-columns: 1fr; gap: 7px; }
  .technology-blueprint-notes > section,
  .technology-blueprint-requirements > section,
  .technology-blueprint-prerequisites,
  .technology-blueprint-risks { padding: 10px; }
  .technology-blueprint-panel > footer { grid-template-columns: 1fr; gap: 7px; }
  .technology-blueprint-local-action,
  .technology-blueprint-adopted,
  .technology-blueprint-panel > footer .system-action-seed { min-height: 48px; }
}

.building-expanded-list { display: grid; gap: 12px; }

.industrial-workshop-preview,
.industrial-facility-card {
  display: grid;
  grid-template-columns: minmax(310px, 0.9fr) minmax(0, 1.1fr);
  overflow: hidden;
  border: 1px solid rgba(172, 143, 84, 0.34);
  border-left: 4px solid #698b7e;
  background: #0a100e;
}
.industrial-workshop-preview > figure,
.industrial-facility-card > figure { position: relative; min-height: 360px; margin: 0; overflow: hidden; background: #07100e; }
.industrial-workshop-preview > figure::after,
.industrial-facility-card > figure::after { content: ''; position: absolute; inset: 0; background: linear-gradient(0deg, rgba(4, 9, 8, 0.94) 0%, transparent 58%), linear-gradient(90deg, transparent 62%, #0a100e 100%); pointer-events: none; }
.industrial-workshop-preview > figure img,
.industrial-facility-card > figure img { width: 100%; height: 100%; display: block; object-fit: cover; filter: saturate(0.78) contrast(1.06) brightness(0.82); }
.industrial-workshop-preview figcaption,
.industrial-facility-card figcaption { position: absolute; z-index: 1; right: 19px; bottom: 18px; left: 19px; }
.industrial-workshop-preview figcaption span,
.industrial-facility-card figcaption span { color: #8aac9d; font-size: var(--ming-font-small, 14px); font-weight: 700; letter-spacing: 0.16em; }
.industrial-workshop-preview figcaption h4,
.industrial-facility-card figcaption h4 { margin: 4px 0; color: #eddcb8; font-family: var(--font-brush); font-size: 29px; font-weight: 400; letter-spacing: 0.07em; text-shadow: 0 3px 14px #000; }
.industrial-workshop-preview figcaption p { margin: 0; color: #9d9482; font-size: var(--ming-font-body, 16px); line-height: 1.55; }
.industrial-facility-card figcaption b { display: inline-block; color: #d4b876; font-size: var(--ming-font-small, 14px); }
.industrial-workshop-preview > div,
.industrial-facility-card > div { min-width: 0; display: flex; flex-direction: column; gap: 13px; padding: 20px; }
.industrial-workshop-preview > div > header span,
.industrial-facility-card > div > header span { color: #7ea292; font-size: var(--ming-font-small, 14px); font-weight: 700; letter-spacing: 0.15em; }
.industrial-workshop-preview > div > header h4,
.industrial-facility-card > div > header h4 { margin: 5px 0 3px; color: #e3d2af; font-size: 21px; line-height: 1.25; }
.industrial-workshop-preview > div > header small { color: #8f8777; font-size: var(--ming-font-small, 14px); line-height: 1.6; }
.industrial-preview-facts { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 7px; }
.industrial-preview-facts > span { min-height: 48px; display: grid; align-content: center; gap: 1px; padding: 7px 9px; color: #827c70; border: 1px solid rgba(145, 124, 80, 0.19); background: rgba(255, 255, 255, 0.015); font-size: var(--ming-font-small, 14px); }
.industrial-preview-facts > span b { color: #a89c84; font-size: var(--ming-font-small, 14px); }
.industrial-preview-facts > span.met { color: #809d90; border-color: rgba(98, 150, 128, 0.27); background: rgba(39, 77, 63, 0.13); }
.industrial-preview-facts > span.met b { color: #9fc1b1; }
.industrial-preview-facts > span.missing { color: #9d756d; border-color: rgba(159, 78, 64, 0.25); background: rgba(96, 37, 30, 0.1); }
.industrial-preview-facts > span.missing b { color: #c58f80; }
.industrial-workshop-preview .system-action-seed,
.industrial-preview-tech-button { width: 100%; min-height: 54px; margin-top: auto; }
.industrial-preview-tech-button { display: grid; align-content: center; gap: 1px; padding: 8px 12px; color: #c9dcd3; border: 1px solid rgba(95, 151, 127, 0.42); background: rgba(43, 80, 66, 0.34); text-align: left; cursor: pointer; }
.industrial-preview-tech-button span { font-size: var(--ming-font-small, 14px); font-weight: 700; }
.industrial-preview-tech-button small { color: #799286; font-size: var(--ming-font-small, 14px); }

.industrial-facility-card > div > header { display: flex; align-items: flex-start; justify-content: space-between; gap: 12px; }
.industrial-facility-card > div > header > b { padding: 4px 7px; color: #a8c7b8; border: 1px solid rgba(94, 149, 126, 0.35); font-size: var(--ming-font-small, 14px); }
.industrial-facility-card > div > p { margin: 0; color: #968e7d; font-size: var(--ming-font-body, 16px); line-height: 1.6; }
.industrial-construction-rail { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); border: 1px solid rgba(152, 128, 78, 0.18); }
.industrial-construction-rail > span { min-height: 51px; display: grid; grid-template-columns: 22px minmax(0, 1fr); align-items: center; gap: 5px; padding: 6px; color: #706b61; border-right: 1px solid rgba(152, 128, 78, 0.16); }
.industrial-construction-rail > span:last-child { border-right: 0; }
.industrial-construction-rail i { width: 20px; height: 20px; display: grid; place-items: center; color: #736951; border: 1px solid rgba(146, 121, 72, 0.26); border-radius: 50%; font-size: 7px; font-style: normal; }
.industrial-construction-rail b { font-size: var(--ming-font-small, 14px); line-height: 1.25; }
.industrial-construction-rail .completed { color: #8aaa9a; background: rgba(38, 71, 59, 0.16); }
.industrial-construction-rail .completed i { color: #a7c5b7; border-color: rgba(93, 150, 126, 0.37); }
.industrial-construction-rail .current { color: #d0b574; background: rgba(99, 72, 28, 0.17); box-shadow: inset 0 -2px #a98643; }
.industrial-facility-card > div > section { display: grid; gap: 8px; padding: 10px; border: 1px solid rgba(149, 126, 79, 0.18); background: rgba(7, 12, 11, 0.55); }
.industrial-facility-card > div > section > header { display: flex; justify-content: space-between; gap: 10px; }
.industrial-facility-card > div > section > header span { color: #c4aa70; font-size: var(--ming-font-small, 14px); font-weight: 700; }
.industrial-facility-card > div > section > header small { color: #6f6b63; font-size: 7px; }
.industrial-facility-card > div > section > div { display: flex; flex-wrap: wrap; gap: 6px; }
.industrial-facility-card > div > section > div > span { min-width: 116px; display: flex; justify-content: space-between; gap: 9px; padding: 5px 7px; color: #928a7a; border: 1px solid rgba(147, 124, 76, 0.17); font-size: var(--ming-font-small, 14px); }
.industrial-facility-card > div > section > div > span.met small { color: #88ad9b; }
.industrial-facility-card > div > section > div > span.missing { color: #b47f73; border-color: rgba(166, 76, 61, 0.27); }
.industrial-facility-card > div > section small { color: #877d6b; font-size: var(--ming-font-small, 14px); }
.industrial-facility-card > div > button { min-height: 54px; display: grid; align-content: center; gap: 1px; margin-top: auto; padding: 8px 12px; color: #c9ddd3; border: 1px solid rgba(96, 155, 130, 0.45); background: linear-gradient(180deg, rgba(50, 91, 75, 0.47), rgba(24, 49, 40, 0.4)); text-align: left; cursor: pointer; }
.industrial-facility-card > div > button span { font-size: var(--ming-font-small, 14px); font-weight: 700; }
.industrial-facility-card > div > button small { color: #789386; font-size: var(--ming-font-small, 14px); }
.industrial-facility-card > div > button:disabled { color: #8b7d6d; border-color: rgba(153, 86, 70, 0.27); background: rgba(72, 39, 31, 0.22); opacity: 0.76; }

@media (max-width: 760px) {
  .industrial-workshop-preview,
  .industrial-facility-card { grid-template-columns: 1fr; }
  .industrial-workshop-preview > figure,
  .industrial-facility-card > figure { min-height: 240px; }
  .industrial-workshop-preview > div,
  .industrial-facility-card > div { gap: 9px; padding: 12px; }
  .industrial-workshop-preview > div > header h4,
  .industrial-facility-card > div > header h4 { font-size: 18px; }
  .industrial-preview-facts { grid-template-columns: 1fr; }
  .industrial-construction-rail { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .industrial-construction-rail > span:nth-child(2) { border-right: 0; }
  .industrial-construction-rail > span:nth-child(-n+2) { border-bottom: 1px solid rgba(152, 128, 78, 0.16); }
  .industrial-workshop-preview .system-action-seed,
  .industrial-preview-tech-button,
  .industrial-facility-card > div > button { min-height: 48px; }
}

/* 普通据点与建筑：筹料—施工—完工—维护 */
.settlement-establishment-rail,
.building-lifecycle-rail {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  margin: 14px 0;
  border: 1px solid rgba(176, 147, 87, 0.28);
  background: var(--folio-card, linear-gradient(90deg, rgba(126, 91, 39, 0.08), rgba(35, 69, 57, 0.1)));
}
.settlement-establishment-rail > span,
.building-lifecycle-rail > span {
  min-width: 0;
  min-height: 66px;
  display: grid;
  grid-template-columns: 34px minmax(0, 1fr);
  grid-template-rows: auto auto;
  align-content: center;
  align-items: center;
  column-gap: 9px;
  padding: 9px 10px;
  color: var(--folio-muted, #81796a);
  border-right: 1px solid rgba(176, 147, 87, 0.2);
}
.settlement-establishment-rail > span:last-child,
.building-lifecycle-rail > span:last-child { border-right: 0; }
.settlement-establishment-rail i,
.building-lifecycle-rail i {
  grid-row: 1 / 3;
  width: 32px;
  height: 32px;
  display: grid;
  place-items: center;
  color: var(--folio-ink, #8e8269);
  border: 1px solid rgba(176, 147, 87, 0.32);
  border-radius: 50%;
  font: normal 15px/1 var(--font-brush);
}
.settlement-establishment-rail b,
.building-lifecycle-rail b { overflow-wrap: anywhere; color: var(--folio-ink, #a79c86); font-size: var(--ming-font-small, 14px); line-height: 1.25; }
.settlement-establishment-rail small { color: var(--folio-muted, #776f62); font-size: var(--ming-font-small, 14px); }
.settlement-establishment-rail .completed,
.building-lifecycle-rail .completed { color: var(--folio-success, #91b3a2); background: var(--folio-success-surface, rgba(43, 78, 64, 0.22)); }
.settlement-establishment-rail .completed i,
.building-lifecycle-rail .completed i { color: var(--folio-success, #a9caba); border-color: var(--folio-rule, rgba(105, 167, 140, 0.5)); background: var(--folio-success-surface, rgba(48, 92, 74, 0.27)); }
.settlement-establishment-rail .completed b,
.building-lifecycle-rail .completed b { color: var(--folio-success, #b8cfc4); }
.settlement-establishment-rail .current,
.building-lifecycle-rail .current { background: var(--folio-selected-surface, linear-gradient(180deg, rgba(129, 93, 39, 0.24), rgba(87, 65, 30, 0.12))); box-shadow: inset 0 -3px #b38b45; }
.settlement-establishment-rail .current i,
.building-lifecycle-rail .current i { color: var(--folio-ink, #e0c47e); border-color: var(--folio-rule, rgba(207, 166, 83, 0.62)); }
.settlement-establishment-rail .current b,
.building-lifecycle-rail .current b { color: var(--folio-ink, #e2cfaa); }

.common-building-blueprint,
.common-building-lifecycle-card {
  position: relative;
  display: grid;
  grid-template-columns: minmax(340px, 0.95fr) minmax(420px, 1.05fr);
  overflow: hidden;
  border: 1px solid rgba(180, 149, 83, 0.43);
  border-left: 5px solid #b18b48;
  background:
    linear-gradient(135deg, rgba(137, 98, 40, 0.08), transparent 35%),
    #08100e;
  box-shadow: 0 18px 48px rgba(0, 0, 0, 0.28), inset 0 0 48px rgba(154, 119, 54, 0.025);
}
.common-building-blueprint { margin-top: 16px; }
.common-building-blueprint > figure,
.common-building-lifecycle-card > figure {
  position: relative;
  min-height: 400px;
  margin: 0;
  overflow: hidden;
  background: #060a09;
}
.common-building-blueprint > figure::after,
.common-building-lifecycle-card > figure::after {
  content: '';
  position: absolute;
  inset: 0;
  background: linear-gradient(0deg, rgba(5, 10, 9, 0.96) 0%, transparent 56%), linear-gradient(90deg, transparent 64%, #08100e 100%);
  pointer-events: none;
}
.common-building-blueprint > figure img,
.common-building-lifecycle-card > figure img {
  width: 100%;
  height: 100%;
  display: block;
  object-fit: cover;
  filter: saturate(0.76) contrast(1.07) brightness(0.82);
}
.common-building-blueprint figcaption,
.common-building-lifecycle-card figcaption {
  position: absolute;
  z-index: 1;
  right: 24px;
  bottom: 22px;
  left: 24px;
}
.common-building-blueprint figcaption span,
.common-building-lifecycle-card figcaption span { color: #9fb9ad; font-size: var(--ming-font-small, 14px); font-weight: 700; letter-spacing: 0.12em; }
.common-building-blueprint figcaption h4,
.common-building-lifecycle-card figcaption h3 { margin: 6px 0; color: #f0dfbb; font-family: var(--font-brush); font-size: 34px; font-weight: 400; letter-spacing: 0.08em; text-shadow: 0 3px 18px #000; }
.common-building-blueprint figcaption p { max-width: 520px; margin: 0; color: #b3aa98; font-size: var(--ming-font-body, 16px); line-height: 1.65; }
.common-building-lifecycle-card figcaption b { display: inline-flex; padding: 4px 9px; color: #e3c57b; border: 1px solid rgba(197, 158, 76, 0.46); background: rgba(22, 18, 11, 0.72); font-size: var(--ming-font-small, 14px); }
.common-building-blueprint > div,
.building-lifecycle-body { min-width: 0; display: flex; flex-direction: column; gap: 15px; padding: 25px; }
.common-building-blueprint > div > header span,
.building-lifecycle-body > header span { color: var(--folio-muted, #c09d54); font-size: var(--ming-font-small, 14px); font-weight: 700; letter-spacing: 0.16em; }
.common-building-blueprint > div > header h4,
.building-lifecycle-body > header h3 { margin: 6px 0; color: var(--folio-ink, #ead9b5); font-size: 23px; line-height: 1.35; }
.common-building-blueprint > div > header p,
.building-lifecycle-body > p { margin: 0; color: var(--folio-muted, #aaa18e); font-size: var(--ming-font-body, 16px); line-height: 1.7; }
.common-building-blueprint > div > dl { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 8px; margin: 0; }
.common-building-blueprint > div > dl div { min-width: 0; padding: 10px 11px; border: 1px solid rgba(167, 140, 83, 0.24); background: rgba(255, 255, 255, 0.018); }
.common-building-blueprint dt { color: #837a69; font-size: var(--ming-font-small, 14px); }
.common-building-blueprint dd { margin: 4px 0 0; color: #d8c7a3; font-size: 14px; font-weight: 700; }
.common-building-blueprint .system-action-seed { min-height: 62px; margin-top: auto; }

.common-building-material-preview { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 8px; }
.common-building-material-preview > span { min-width: 0; min-height: 66px; display: grid; grid-template-columns: 40px minmax(0, 1fr); grid-template-rows: auto auto; align-content: center; align-items: center; gap: 2px 9px; padding: 8px 10px; border: 1px solid rgba(160, 132, 77, 0.22); background: rgba(255, 255, 255, 0.018); }
.common-building-material-preview img { grid-row: 1 / 3; width: 40px; height: 40px; object-fit: contain; filter: drop-shadow(0 4px 7px rgba(0, 0, 0, 0.5)); }
.common-building-material-preview b { overflow-wrap: anywhere; color: #cabc9e; font-size: var(--ming-font-small, 14px); }
.common-building-material-preview small { color: #8e8677; font-size: var(--ming-font-small, 14px); line-height: 1.25; }
.common-building-material-preview > span.met { border-color: rgba(93, 153, 127, 0.38); background: rgba(34, 74, 58, 0.19); }
.common-building-material-preview > span.met small { color: #8eb3a1; }
.common-building-material-preview > span.partial { border-color: rgba(185, 143, 65, 0.4); background: rgba(106, 74, 26, 0.16); }
.common-building-material-preview > span.missing { border-color: rgba(166, 85, 68, 0.34); background: rgba(95, 41, 31, 0.13); }
.common-building-material-preview > span.missing small { color: #b6877c; }

.building-expanded-list { display: grid; gap: 16px; }
.building-lifecycle-body > header { display: flex; align-items: flex-start; justify-content: space-between; gap: 14px; }
.building-lifecycle-body > header strong { flex: none; padding: 6px 10px; color: var(--folio-ink, #dec17a); border: 1px solid rgba(196, 155, 72, 0.45); background: var(--folio-card, rgba(99, 71, 28, 0.18)); font-size: var(--ming-font-small, 14px); }
.building-lifecycle-rail > span { min-height: 56px; grid-template-rows: auto; }
.building-lifecycle-rail i { grid-row: auto; }
.building-ledger-progress { display: grid; gap: 7px; padding: 12px 13px; border: 1px solid rgba(163, 136, 80, 0.22); background: rgba(4, 9, 8, 0.56); }
.building-ledger-progress > div { display: flex; align-items: center; justify-content: space-between; gap: 12px; }
.building-ledger-progress span { color: var(--folio-muted, #9f947e); font-size: var(--ming-font-small, 14px); }
.building-ledger-progress > div b { color: var(--folio-ink, #e4c982); font-size: 15px; }
.building-ledger-progress > i { height: 7px; overflow: hidden; background: #1d2521; }
.building-ledger-progress > i > b { height: 100%; display: block; background: linear-gradient(90deg, #806533, #d7bd76, #6f9985); transition: width 180ms ease; }
.building-maintenance-note { display: grid; grid-template-columns: auto 1fr; gap: 3px 12px; padding: 11px 12px; border-left: 3px solid #6e9785; background: var(--folio-card, rgba(39, 70, 57, 0.16)); }
.building-maintenance-note span { grid-row: 1 / 3; align-self: center; color: var(--folio-muted, #82a493); font-size: var(--ming-font-small, 14px); font-weight: 700; letter-spacing: 0.12em; }
.building-maintenance-note b { color: var(--folio-ink, #c7d8cf); font-size: var(--ming-font-small, 14px); }
.building-maintenance-note small { color: var(--folio-muted, #908a7d); font-size: var(--ming-font-small, 14px); line-height: 1.5; }
.building-lifecycle-action { min-height: 62px; display: grid; align-content: center; gap: 2px; margin-top: auto; padding: 10px 15px; color: var(--folio-ink, #d4e6dd); border: 1px solid rgba(103, 170, 141, 0.55); background: var(--folio-card, linear-gradient(180deg, rgba(49, 94, 75, 0.56), rgba(24, 53, 42, 0.48))); text-align: left; cursor: pointer; }
.building-lifecycle-action span { font-size: 15px; font-weight: 800; }
.building-lifecycle-action small { color: var(--folio-muted, #8fb1a1); font-size: var(--ming-font-small, 14px); }
.building-lifecycle-action:disabled { color: var(--folio-ink, #968a79); border-color: var(--folio-rule, rgba(156, 105, 68, 0.3)); background: var(--folio-card, rgba(73, 50, 31, 0.22)); cursor: not-allowed; opacity: 0.78; }
.building-hired-work { display: grid; gap: 9px; padding: 12px; border: 1px solid rgba(183, 144, 70, 0.34); background: var(--folio-card, linear-gradient(135deg, rgba(108, 77, 28, 0.18), rgba(24, 49, 40, 0.18))); }
.building-hired-work > header { display: flex; align-items: baseline; justify-content: space-between; gap: 12px; }
.building-hired-work > header span { color: var(--folio-muted, #dfc37f); font-size: var(--ming-font-small, 14px); font-weight: 800; letter-spacing: 0.05em; }
.building-hired-work > header small { color: var(--folio-muted, #a09989); font-size: var(--ming-font-small, 14px); line-height: 1.45; text-align: right; }
.building-hired-work > div { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; }
.building-hired-work button { min-height: 58px; display: grid; align-content: center; gap: 3px; padding: 10px 12px; color: var(--folio-ink, #d8e8df); border: 1px solid rgba(98, 157, 132, 0.46); background: var(--folio-card, rgba(35, 70, 56, 0.42)); text-align: left; cursor: pointer; }
.building-hired-work button:not(:disabled) { transition: transform 140ms ease, border-color 140ms ease, background 140ms ease; }
.building-hired-work button:not(:disabled):hover { transform: translateY(-1px); border-color: var(--folio-rule, rgba(130, 191, 163, 0.72)); background: var(--folio-hover, rgba(42, 82, 66, 0.58)); }
.building-hired-work button[data-personal-action^="employment:assign-building-through-completion"] { color: var(--folio-ink, #f0dfac); border-color: var(--folio-rule, rgba(194, 157, 80, 0.58)); background: var(--folio-card, linear-gradient(135deg, rgba(104, 77, 30, 0.48), rgba(38, 67, 53, 0.46))); }
.building-hired-work button[data-personal-action^="employment:assign-building-through-completion"] small { color: var(--folio-muted, #c5b58e); }
.building-hired-work.has-active-order { border-color: var(--folio-rule, rgba(125, 164, 145, 0.5)); background: var(--folio-card, linear-gradient(135deg, rgba(35, 76, 59, 0.26), rgba(98, 67, 28, 0.14))); }
.building-hired-work.has-active-order > div { grid-template-columns: 1fr; }
.building-hired-work button[data-personal-action^="employment:cancel-building-order"] { color: var(--folio-ink, #e8d3bf); border-color: var(--folio-rule, rgba(173, 112, 82, 0.52)); background: var(--folio-card, rgba(91, 48, 38, 0.34)); }
.building-hired-work button[data-personal-action^="employment:cancel-building-order"] small { color: var(--folio-muted, #bfa493); }
.building-hired-work button b { font-size: 14px; }
.building-hired-work button small { color: var(--folio-muted, #a4bbae); font-size: var(--ming-font-small, 14px); line-height: 1.4; }
.building-hired-work button:disabled { color: var(--folio-ink, #9e9180); border-color: var(--folio-rule, rgba(145, 104, 67, 0.34)); background: var(--folio-card, rgba(70, 49, 31, 0.24)); cursor: not-allowed; }
.building-hired-work button:disabled small { color: var(--folio-muted, #9b8b78); }
.building-hired-work.empty { border-style: dashed; }

@media (max-width: 920px) {
  .common-building-blueprint,
  .common-building-lifecycle-card { grid-template-columns: 1fr; }
  .common-building-blueprint > figure,
  .common-building-lifecycle-card > figure { min-height: 300px; }
}

@media (max-width: 760px) {
  .settlement-establishment-rail,
  .building-lifecycle-rail { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .settlement-establishment-rail > span:nth-child(2),
  .building-lifecycle-rail > span:nth-child(2) { border-right: 0; }
  .settlement-establishment-rail > span:nth-child(-n+2),
  .building-lifecycle-rail > span:nth-child(-n+2) { border-bottom: 1px solid rgba(176, 147, 87, 0.2); }
  .common-building-blueprint,
  .common-building-lifecycle-card { min-width: 0; }
  .common-building-blueprint > figure,
  .common-building-lifecycle-card > figure { min-height: 250px; }
  .common-building-blueprint > div,
  .building-lifecycle-body { gap: 11px; padding: 15px; }
  .common-building-blueprint > div > header h4,
  .building-lifecycle-body > header h3 { font-size: 20px; }
  .common-building-material-preview,
  .common-building-blueprint > div > dl,
  .building-hired-work > div { grid-template-columns: 1fr; }
  .building-lifecycle-body > header { align-items: center; }
  .building-hired-work > header { display: grid; }
  .building-hired-work > header small { text-align: left; }
}

/* 科技与作坊卷可读字级 */
.system-focus-authority,
.system-focus-close small { font-size: var(--ming-font-small, 14px); line-height: 1.45; }

.technology-blueprint-library > header span,
.technology-blueprint-library > header > div:last-child small,
.technology-blueprint-library > header > div:last-child b i { font-size: var(--ming-font-small, 14px); }
.technology-blueprint-library > header p { font-size: var(--ming-font-body, 16px); line-height: 1.72; }

.technology-blueprint-filters button { min-height: 58px; padding: 9px 10px; }
.technology-blueprint-filters span { font-size: var(--ming-font-small, 14px); }
.technology-blueprint-filters small { font-size: var(--ming-font-small, 14px); line-height: 1.35; }

.technology-blueprint-card { min-height: 214px; grid-template-columns: 180px minmax(0, 1fr); }
.technology-blueprint-card > div { padding: 16px 17px 14px 12px; }
.technology-blueprint-card > div > span { font-size: var(--ming-font-small, 14px); line-height: 1.4; }
.technology-blueprint-card h3 { font-size: 19px; }
.technology-blueprint-card p { font-size: var(--ming-font-body, 16px); line-height: 1.65; }
.technology-discovery-reason { font-size: var(--ming-font-small, 14px); line-height: 1.55; }
.technology-blueprint-card footer b,
.technology-blueprint-card footer small { font-size: var(--ming-font-small, 14px); }
.technology-blueprint-filter-empty b { font-size: 14px; }
.technology-blueprint-filter-empty small { font-size: var(--ming-font-small, 14px); }

.technology-active-ledger > header span,
.technology-active-ledger button span { font-size: var(--ming-font-small, 14px); }
.technology-active-ledger > header h3 { font-size: 16px; }
.technology-active-ledger > header > b,
.technology-active-ledger button b { font-size: var(--ming-font-small, 14px); }
.technology-active-ledger button small { font-size: var(--ming-font-small, 14px); }
.technology-active-ledger button { min-height: 62px; }

.technology-blueprint-back span { font-size: var(--ming-font-small, 14px); }
.technology-blueprint-back small { font-size: var(--ming-font-small, 14px); }
.technology-blueprint-panel > header > div > span { font-size: var(--ming-font-small, 14px); }
.technology-blueprint-panel > header p { font-size: var(--ming-font-body, 16px); line-height: 1.65; }
.technology-blueprint-panel > header > b { font-size: var(--ming-font-small, 14px); }
.technology-blueprint-art figcaption span,
.technology-blueprint-art figcaption small { font-size: var(--ming-font-small, 14px); line-height: 1.45; }

.technology-stage-rail > span { min-height: 66px; grid-template-columns: 30px 1fr; gap: 8px; }
.technology-stage-rail i { width: 28px; height: 28px; font-size: var(--ming-font-small, 14px); }
.technology-stage-rail b { font-size: var(--ming-font-small, 14px); line-height: 1.35; }

.technology-blueprint-notes header span,
.technology-blueprint-requirements header span,
.technology-blueprint-prerequisites header span,
.technology-blueprint-risks header span { font-size: var(--ming-font-small, 14px); }
.technology-blueprint-notes header b,
.technology-blueprint-risks header b,
.technology-blueprint-requirements header small,
.technology-blueprint-prerequisites header small { font-size: var(--ming-font-small, 14px); line-height: 1.4; }
.technology-blueprint-notes ol,
.technology-blueprint-notes ul { font-size: var(--ming-font-small, 14px); line-height: 1.65; }
.technology-blueprint-requirements li { min-height: 38px; align-items: center; font-size: var(--ming-font-small, 14px); line-height: 1.45; }
.technology-blueprint-prerequisites > div span,
.technology-blueprint-risks > div span { font-size: var(--ming-font-small, 14px); line-height: 1.45; }
.technology-blueprint-local-action span,
.technology-blueprint-adopted b,
.technology-blueprint-library > footer .system-action-seed span { font-size: 14px; }
.technology-blueprint-local-action small,
.technology-blueprint-adopted small,
.technology-blueprint-library > footer .system-action-seed small { font-size: var(--ming-font-small, 14px); line-height: 1.4; }

.industrial-workshop-preview figcaption span,
.industrial-facility-card figcaption span,
.industrial-facility-card figcaption b { font-size: var(--ming-font-small, 14px); }
.industrial-workshop-preview figcaption p { font-size: var(--ming-font-body, 16px); line-height: 1.65; }
.industrial-workshop-preview > div > header span,
.industrial-facility-card > div > header span { font-size: var(--ming-font-small, 14px); }
.industrial-workshop-preview > div > header small { font-size: var(--ming-font-small, 14px); line-height: 1.7; }
.industrial-preview-facts > span { min-height: 62px; font-size: var(--ming-font-small, 14px); line-height: 1.45; }
.industrial-preview-facts > span b { font-size: var(--ming-font-small, 14px); }
.industrial-preview-tech-button span,
.industrial-facility-card > div > button span,
.industrial-workshop-preview .system-action-seed span { font-size: 14px; }
.industrial-preview-tech-button small,
.industrial-facility-card > div > button small,
.industrial-workshop-preview .system-action-seed small { font-size: var(--ming-font-small, 14px); line-height: 1.4; }
.industrial-facility-card > div > header > b { font-size: var(--ming-font-small, 14px); }
.industrial-facility-card > div > p { font-size: var(--ming-font-body, 16px); line-height: 1.7; }
.industrial-construction-rail > span { min-height: 68px; grid-template-columns: 28px minmax(0, 1fr); gap: 7px; }
.industrial-construction-rail i { width: 26px; height: 26px; font-size: var(--ming-font-small, 14px); }
.industrial-construction-rail b { font-size: var(--ming-font-small, 14px); line-height: 1.4; }
.industrial-facility-card > div > section > header span { font-size: var(--ming-font-small, 14px); }
.industrial-facility-card > div > section > header small,
.industrial-facility-card > div > section small { font-size: var(--ming-font-small, 14px); line-height: 1.4; }
.industrial-facility-card > div > section > div > span { min-width: 142px; padding: 7px 9px; font-size: var(--ming-font-small, 14px); line-height: 1.4; }

@media (max-width: 760px) {
  .system-focus-authority,
  .system-focus-copy p { font-size: var(--ming-font-body, 16px); }
  .technology-blueprint-library > header p,
  .technology-blueprint-panel > header p { font-size: var(--ming-font-body, 16px); }
  .technology-blueprint-filters { grid-template-columns: repeat(6, minmax(132px, 1fr)); }
  .technology-blueprint-filters button { min-height: 56px; }
  .technology-blueprint-card { min-height: 204px; grid-template-columns: 124px minmax(0, 1fr); }
  .technology-blueprint-card > div { padding: 12px 11px 11px 7px; }
  .technology-blueprint-card h3 { font-size: 17px; }
  .technology-blueprint-card p { font-size: var(--ming-font-body, 16px); }
  .technology-stage-rail { grid-template-columns: repeat(5, minmax(72px, 1fr)); }
  .technology-stage-rail > span { min-height: 62px; grid-template-columns: 26px minmax(0, 1fr); gap: 6px; padding: 7px; }
  .technology-stage-rail i { width: 24px; height: 24px; }
  .technology-blueprint-local-action,
  .technology-blueprint-adopted,
  .technology-blueprint-panel > footer .system-action-seed { min-height: 54px; }
  .industrial-workshop-preview > div > header h4,
  .industrial-facility-card > div > header h4 { font-size: 20px; }
}


/* 渐进研作卷：空白认知、提案引子与可计算连线共用同一张案卷。 */
.technology-compact-empty > div span,
.technology-compact-empty > button small { font-size: var(--ming-font-small, 14px); line-height: 1.45; }
.technology-compact-empty > div h3 { font-size: 18px; }
.technology-compact-empty > div p { font-size: var(--ming-font-body, 16px); line-height: 1.65; }
.technology-compact-empty > button span { font-size: 14px; }

.technology-empty-folio {
  display: grid;
  grid-template-columns: minmax(280px, 0.82fr) minmax(0, 1.18fr);
  min-height: 330px;
  overflow: hidden;
  border: 1px solid rgba(183, 151, 87, 0.34);
  border-left: 4px solid #6e9182;
  background: var(--folio-card, linear-gradient(112deg, #0a1210, #10150f));
}
.technology-empty-folio figure { position: relative; min-height: 330px; margin: 0; overflow: hidden; background: #07100e; }
.technology-empty-folio figure::after { content: ''; position: absolute; inset: 0; background: linear-gradient(90deg, transparent 58%, #0d1411), linear-gradient(0deg, rgba(5, 10, 8, 0.48), transparent 60%); }
.technology-empty-folio img { width: 100%; height: 100%; display: block; object-fit: cover; filter: saturate(0.72) contrast(1.08) brightness(0.75); }
.technology-empty-folio > div { display: grid; align-content: center; gap: 9px; padding: 28px; }
.technology-empty-folio > div > span { color: var(--folio-muted, #83a695); font-size: var(--ming-font-small, 14px); font-weight: 700; letter-spacing: 0.12em; }
.technology-empty-folio h3 { margin: 0; color: var(--folio-ink, #ead9b7); font-family: var(--font-brush); font-size: 30px; font-weight: 400; letter-spacing: 0.06em; }
.technology-empty-folio p { margin: 0; color: var(--folio-muted, #aaa08e); font-size: var(--ming-font-body, 16px); line-height: 1.72; }
.technology-empty-folio ul { display: grid; gap: 6px; margin: 4px 0 0; padding: 0; list-style: none; }
.technology-empty-folio li { position: relative; padding: 7px 9px 7px 25px; color: var(--folio-ink, #9f9582); border: 1px solid rgba(153, 130, 82, 0.18); background: var(--folio-card, rgba(255, 255, 255, 0.016)); font-size: var(--ming-font-small, 14px); line-height: 1.5; }
.technology-empty-folio li::before { content: '·'; position: absolute; left: 10px; color: #c5a560; font-size: 20px; line-height: 15px; }

.technology-concept-starters { display: grid; gap: 10px; padding: 15px; border: 1px solid rgba(126, 159, 144, 0.3); background: var(--folio-card, linear-gradient(90deg, rgba(32, 62, 51, 0.34), rgba(12, 19, 16, 0.72))); }
.technology-concept-starters > header { display: flex; align-items: end; justify-content: space-between; gap: 16px; }
.technology-concept-starters > header span { color: var(--folio-muted, #7fa291); font-size: var(--ming-font-small, 14px); font-weight: 700; letter-spacing: 0.12em; }
.technology-concept-starters > header h3 { margin: 3px 0 0; color: var(--folio-ink, #dfcfad); font-size: 18px; }
.technology-concept-starters > header small { max-width: 330px; color: var(--folio-muted, #867d6c); font-size: var(--ming-font-small, 14px); line-height: 1.5; text-align: right; }
.technology-concept-starters > div { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 8px; }
.technology-concept-starters button { min-height: 68px; display: grid; align-content: center; gap: 3px; padding: 10px 12px; color: var(--folio-ink, #d0c19f); border: 1px solid rgba(177, 147, 89, 0.29); border-left: 3px solid rgba(105, 151, 132, 0.75); background: var(--folio-card, #0b1411); text-align: left; cursor: pointer; transition: border-color 150ms ease, background 150ms ease, transform 150ms ease; }
.technology-concept-starters button:hover,
.technology-concept-starters button:focus-visible { border-color: var(--folio-rule, rgba(207, 174, 105, 0.58)); background: var(--folio-hover, #111b17); transform: translateY(-1px); }
.technology-concept-starters button b { font-size: 14px; }
.technology-concept-starters button small { color: var(--folio-muted, #7e887f); font-size: var(--ming-font-small, 14px); line-height: 1.45; }

.technology-tree { display: grid; gap: 9px; padding: 14px; overflow: hidden; border: 1px solid rgba(158, 134, 84, 0.27); background: var(--folio-card, radial-gradient(circle at 12% 0%, rgba(53, 88, 72, 0.24), transparent 42%), #08100d); }
.technology-tree > header { display: flex; align-items: end; justify-content: space-between; gap: 16px; }
.technology-tree > header span { color: var(--folio-muted, #7fa392); font-size: var(--ming-font-small, 14px); font-weight: 700; letter-spacing: 0.14em; }
.technology-tree > header h3 { margin: 3px 0 0; color: var(--folio-ink, #e2d1ae); font-size: 18px; }
.technology-tree > header > small { display: flex; align-items: center; gap: 6px; color: var(--folio-muted, #817969); font-size: var(--ming-font-small, 14px); }
.technology-tree > header > small i { width: 26px; height: 2px; display: inline-block; background: var(--folio-card, #779f8c); }
.technology-tree > header > small i:nth-of-type(2) { height: 0; border-top: 2px dashed #9b8054; background: none; }
.technology-tree-scroll { overflow-x: auto; overflow-y: hidden; padding: 2px 2px 8px; overscroll-behavior-x: contain; scrollbar-color: rgba(155, 129, 78, 0.55) rgba(255, 255, 255, 0.03); }
.technology-tree-canvas { position: relative; width: max-content; min-width: 100%; min-height: 170px; }
.technology-tree-canvas > svg { position: absolute; z-index: 0; inset: 0; overflow: visible; pointer-events: none; }
.technology-tree-canvas > svg path { fill: none; stroke: rgba(111, 158, 137, 0.68); stroke-width: 2; vector-effect: non-scaling-stroke; }
.technology-tree-canvas > svg path.related { stroke: rgba(169, 135, 78, 0.64); stroke-width: 1.5; stroke-dasharray: 6 5; }
.technology-tree-columns { position: relative; z-index: 1; display: grid; grid-auto-flow: column; grid-auto-columns: 246px; gap: 74px; align-items: start; }
.technology-tree-column { min-width: 0; display: grid; gap: 8px; }
.technology-tree-column > header { display: flex; justify-content: space-between; gap: 8px; padding: 0 3px 6px; border-bottom: 1px solid rgba(164, 139, 87, 0.2); }
.technology-tree-column > header span,
.technology-tree-column > header small { color: var(--folio-muted, #817966); font-size: var(--ming-font-small, 14px); }
.technology-tree-column > div { display: grid; gap: 10px; }
.technology-tree-node { min-height: 94px; display: grid; align-content: center; gap: 4px; padding: 11px 13px; color: var(--folio-ink, #cdbf9f); border: 1px solid rgba(164, 137, 83, 0.3); border-left: 4px solid #719582; background: var(--folio-card, linear-gradient(120deg, rgba(22, 40, 33, 0.96), rgba(10, 16, 14, 0.98))); text-align: left; cursor: pointer; box-shadow: 0 9px 24px rgba(0, 0, 0, 0.18); }
.technology-tree-node:hover,
.technology-tree-node:focus-visible { border-color: var(--folio-rule, rgba(205, 173, 106, 0.6)); background: var(--folio-hover, linear-gradient(120deg, rgba(31, 52, 43, 0.98), rgba(13, 21, 18, 0.98))); }
.technology-tree-node.stage-adopted { border-left-color: var(--folio-rule, #c6a65e); }
.technology-tree-node.stage-glimpse { border-left-color: var(--folio-rule, #7a7668); opacity: 0.86; }
.technology-tree-node > span { color: var(--folio-muted, #799989); font-size: var(--ming-font-small, 14px); line-height: 1.35; }
.technology-tree-node > b { overflow: hidden; font-size: 15px; line-height: 1.35; text-overflow: ellipsis; white-space: nowrap; }
.technology-tree-node > small { color: var(--folio-muted, #8d826e); font-size: var(--ming-font-small, 14px); line-height: 1.4; }

@media (max-width: 960px) {
  .technology-concept-starters > div { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (max-width: 760px) {
  .technology-empty-folio { grid-template-columns: 1fr; }
  .technology-empty-folio figure { min-height: 210px; max-height: 245px; }
  .technology-empty-folio > div { padding: 18px 15px; }
  .technology-empty-folio h3 { font-size: 25px; }
  .technology-concept-starters > header { display: grid; }
  .technology-concept-starters > header small { text-align: left; }
  .technology-concept-starters > div { grid-template-columns: 1fr; }
  .technology-concept-starters button { min-height: 64px; }
  .technology-tree { padding: 11px 9px; }
  .technology-tree > header { display: grid; }
  .technology-tree-columns { grid-auto-columns: 224px; gap: 62px; }
  .technology-tree-node { min-height: 96px; }
}

/* 锦衣案卷可读性底线：正文与操作不得再靠 7—10px 小字压缩信息。 */
.jinyi-campaign .system-focus-body .case-overview-panel {
  --jinyi-readable-min: 12px;
  --jinyi-control-min: 13px;
}

.jinyi-campaign .system-focus-body .case-overview-panel :where(p, small, span, dt, dd, li) {
  font-size: var(--jinyi-readable-min);
  line-height: 1.55;
}

.jinyi-campaign .system-focus-body .case-overview-panel :where(button, button span, button small, summary) {
  font-size: var(--jinyi-control-min);
  line-height: 1.4;
}

.jinyi-campaign .system-focus-body .case-overview-panel :where(b, strong) {
  font-size: max(var(--jinyi-readable-min), 1em);
  line-height: 1.45;
}

@media (max-width: 760px) {
  .jinyi-campaign .system-focus-body .case-overview-panel {
    --jinyi-readable-min: 13px;
    --jinyi-control-min: 14px;
  }
}

/* 锦衣终幕延续同一可读性与触控底线，不再沿用旧版 8—10px 账簿字。 */
.jinyi-ending-terminal-copy {
  --jinyi-ending-readable-min: 12px;
  --jinyi-ending-control-min: 13px;
}

.campaign-ended .jinyi-ending-terminal .jinyi-ending-terminal-copy :where(p, small, span, li) {
  font-size: var(--jinyi-ending-readable-min);
  line-height: 1.55;
}

.campaign-ended .jinyi-ending-terminal .jinyi-ending-terminal-copy :where(button, button span, button small) {
  font-size: var(--jinyi-ending-control-min);
  line-height: 1.4;
}

.campaign-ended .jinyi-ending-terminal .jinyi-ending-terminal-copy button { min-height: 44px; }

@media (max-width: 760px) {
  .jinyi-ending-terminal-copy {
    --jinyi-ending-readable-min: 13px;
    --jinyi-ending-control-min: 14px;
  }
}

/* 右栏保留高频家底与真实操作；完整卷页只承载估值、状态和分类等低频细节。 */
.inventory-compact-summary {
  min-width: 0;
  min-height: 100%;
  display: grid;
  align-content: start;
  gap: 8px;
  color: var(--folio-ink, #d8ccb4);
}

.jinyi-campaign .system-dock.single-branch {
  grid-template-rows: auto minmax(0, 1fr);
}

.inventory-compact-summary > header {
  min-width: 0;
  min-height: 70px;
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  align-items: center;
  gap: 7px 12px;
  padding: 10px 12px;
  border: 1px solid rgba(190, 157, 91, 0.28);
  border-left: 3px solid #6f9383;
  background: var(--folio-card, #0c1512);
}

.inventory-compact-summary > header > div { min-width: 0; display: grid; gap: 2px; }
.inventory-compact-summary > header span { color: var(--folio-muted, #8fa99b); font-size: var(--ming-font-small, 14px); font-weight: 700; letter-spacing: 0.08em; }
.inventory-compact-summary > header strong { color: var(--folio-ink, #eadbbb); font-size: 16px; line-height: 1.25; }
.inventory-compact-summary > header small { color: var(--folio-muted, #887f6e); font-size: var(--ming-font-small, 14px); }
.inventory-compact-summary > header > b { color: var(--folio-ink, #d1b36d); font-size: 20px; font-weight: 700; text-align: right; white-space: nowrap; }
.inventory-compact-summary > header > b small { margin-left: 3px; color: var(--folio-muted, #91866f); font-size: var(--ming-font-small, 14px); font-weight: 500; }
.inventory-compact-summary > header > i {
  grid-column: 1 / -1;
  height: 4px;
  overflow: hidden;
  border: 1px solid rgba(109, 145, 126, 0.16);
  background: var(--folio-card, #070c0b);
}
.inventory-compact-summary > header > i em { display: block; height: 100%; background: var(--folio-card, #739b88); box-shadow: 0 0 9px rgba(115, 155, 136, 0.24); }

.inventory-quick-section,
.inventory-stowed-section {
  min-width: 0;
  display: grid;
  gap: 6px;
}

.inventory-quick-section > header,
.inventory-stowed-section > header {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 8px;
  padding: 0 2px;
}

.inventory-quick-section > header span,
.inventory-stowed-section > header span { color: var(--folio-muted, #d2b66f); font-size: var(--ming-font-small, 14px); }
.inventory-quick-section > header small,
.inventory-stowed-section > header small { color: var(--folio-muted, #71847a); font-size: var(--ming-font-small, 14px); text-align: right; }

.inventory-quick-use-list {
  min-width: 0;
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 7px;
}

.inventory-quick-use-list article {
  min-width: 0;
  min-height: 106px;
  display: grid;
  grid-template-columns: 52px minmax(0, 1fr);
  align-items: center;
  gap: 7px 9px;
  padding: 8px;
  border: 1px solid rgba(184, 151, 85, 0.22);
  background: var(--folio-card, #0a110f);
}

.inventory-quick-use-list article.equipped,
.inventory-quick-use-list article.aboard { border-left: 3px solid #72a08b; background: var(--folio-card, #0e1915); }
.inventory-quick-use-list article.fluid-container {
  grid-column: 1 / -1;
  border-color: var(--folio-rule, rgba(93, 157, 136, 0.42));
  box-shadow: inset 3px 0 0 rgba(111, 164, 145, 0.48);
}
.inventory-quick-use-list figure { width: 52px; height: 52px; display: grid; place-items: center; overflow: hidden; margin: 0; border: 1px solid rgba(190, 157, 91, 0.24); background: #080d0c; }
.inventory-quick-use-list img { width: 46px; height: 46px; display: block; object-fit: contain; }
.inventory-quick-copy { min-width: 0; display: grid; gap: 1px; }
.inventory-quick-copy span { overflow: hidden; color: var(--folio-muted, #9c8a67); font-size: var(--ming-font-small, 14px); text-overflow: ellipsis; white-space: nowrap; }
.inventory-quick-copy strong { overflow: hidden; color: var(--folio-ink, #e1d3b6); font-size: 14px; line-height: 1.3; text-overflow: ellipsis; white-space: nowrap; }
.inventory-quick-copy small { color: var(--folio-muted, #87a696); font-size: var(--ming-font-small, 14px); }
.inventory-quick-actions { grid-column: 1 / -1; display: flex; flex-wrap: wrap; gap: 5px; }
.inventory-quick-actions button {
  min-width: 76px;
  min-height: 44px;
  display: grid;
  grid-template-columns: auto auto;
  align-items: center;
  justify-content: center;
  gap: 5px;
  padding: 4px 9px;
  color: var(--folio-ink, #dce8df);
  border: 1px solid rgba(105, 158, 134, 0.42);
  background: var(--folio-card, #10251d);
  font: inherit;
  cursor: pointer;
}
.inventory-quick-actions button span { color: inherit; font-size: var(--ming-font-small, 14px); letter-spacing: 0.04em; }
.inventory-quick-actions button small { color: var(--folio-muted, #88ab9a); font-size: var(--ming-font-small, 14px); }
.inventory-quick-actions button.has-fixed-effects {
  flex: 1 1 100%;
  grid-template-columns: 1fr;
  justify-items: start;
  text-align: left;
}
.inventory-quick-actions button:hover:not(:disabled) { border-color: var(--folio-rule, #8ebba5); background: var(--folio-hover, #173328); }
.inventory-quick-actions button:disabled { color: var(--folio-ink, #7f7768); border-color: var(--folio-rule, rgba(151, 130, 88, 0.18)); background: var(--folio-card, #11130f); cursor: not-allowed; }
.inventory-quick-actions button:disabled small { color: var(--folio-muted, #726b5e); }
.inventory-quick-use-list .empty-system-copy { grid-column: 1 / -1; min-height: 68px; display: grid; place-items: center; margin: 0; color: var(--folio-ink, #9b927f); border: 1px dashed rgba(184, 151, 85, 0.22); font-size: var(--ming-font-small, 14px); }

.inventory-stowed-list { min-width: 0; display: grid; gap: 5px; }
.inventory-stowed-list article {
  min-width: 0;
  display: grid;
  grid-template-columns: 36px minmax(0, 1fr) auto;
  align-items: center;
  gap: 8px;
  padding: 6px 9px;
  border: 1px solid rgba(184, 151, 85, 0.16);
  background: var(--folio-card, #090e0d);
}
.inventory-stowed-list article > img { width: 34px; height: 34px; object-fit: contain; border: 1px solid rgba(184, 151, 85, 0.18); background: #070b0a; }
.inventory-stowed-list article > span { min-width: 0; display: grid; gap: 1px; }
.inventory-stowed-list article b { overflow: hidden; color: var(--folio-ink, #cfc2a7); font-size: var(--ming-font-small, 14px); text-overflow: ellipsis; white-space: nowrap; }
.inventory-stowed-list article small { overflow: hidden; color: var(--folio-muted, #817a6b); font-size: var(--ming-font-small, 14px); text-overflow: ellipsis; white-space: nowrap; }
.inventory-stowed-list article em { color: var(--folio-muted, #799486); font-size: var(--ming-font-small, 14px); font-style: normal; }
.inventory-stowed-list > p { margin: 0; padding: 7px 9px; color: var(--folio-muted, #716d62); border: 1px dashed rgba(184, 151, 85, 0.14); font-size: var(--ming-font-body, 16px); }

/* 水是容具的内容物：余水、水质和饮水操作都附着在对应物品卡上。 */
.inventory-fluid-panel {
  grid-column: 1 / -1;
  min-width: 0;
  display: grid;
  gap: 8px;
  padding: 9px;
  border: 1px solid rgba(92, 151, 130, 0.34);
  background: var(--folio-card, #091410);
}
.inventory-fluid-panel > header {
  min-width: 0;
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  align-items: center;
  gap: 7px 10px;
}
.inventory-fluid-panel > header > div { min-width: 0; display: grid; gap: 2px; }
.inventory-fluid-panel > header span { color: var(--folio-muted, #9fc6b4); font-size: var(--ming-font-small, 14px); font-weight: 750; letter-spacing: 0.05em; }
.inventory-fluid-panel > header strong { color: var(--folio-ink, #eadcbc); font-size: 16px; line-height: 1.2; }
.inventory-fluid-panel > header small { color: var(--folio-muted, #8fa497); font-size: var(--ming-font-small, 14px); line-height: 1.4; }
.inventory-fluid-panel > header > b {
  min-width: 38px;
  color: var(--folio-ink, #d8bf78);
  font-family: var(--font-brush);
  font-size: 21px;
  font-weight: 400;
  text-align: center;
}
.inventory-fluid-panel > header > b small { display: block; color: var(--folio-muted, #9db4a7); font-family: var(--font-body); font-size: var(--ming-font-small, 14px); }
.inventory-fluid-panel > header > em {
  grid-column: 1 / -1;
  height: 7px;
  overflow: hidden;
  border: 1px solid rgba(103, 144, 126, 0.32);
  background: var(--folio-card, #17201c);
}
.inventory-fluid-panel > header > em > i { display: block; height: 100%; background: var(--folio-card, #6f9f91); }
.inventory-fluid-panel.questionable > header > em > i { background: var(--folio-card, #a68749); }
.inventory-fluid-panel.unsafe > header > em > i { background: var(--folio-card, #a45e4c); }
.inventory-fluid-actions {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(136px, 1fr));
  gap: 7px;
}
.inventory-fluid-actions > button,
.inventory-fluid-source-actions > button {
  min-height: 44px;
  padding: 7px 10px;
  border: 1px solid rgba(102, 177, 146, 0.5);
  background: var(--folio-card, #10271f);
  color: var(--folio-ink, #e7d9b8);
  cursor: pointer;
}
.inventory-fluid-actions > button span,
.inventory-fluid-source-actions > button span { display: block; color: var(--folio-muted, #e8d9b5); font-size: var(--ming-font-small, 14px); font-weight: 750; }
.inventory-fluid-actions > button small,
.inventory-fluid-source-actions > button small { display: block; color: var(--folio-muted, #9fb9aa); font-size: var(--ming-font-small, 14px); line-height: 1.35; }
.inventory-fluid-actions > button:disabled,
.inventory-fluid-source-actions > button:disabled { opacity: 0.47; cursor: not-allowed; }
.inventory-fluid-source-list { display: grid; gap: 8px; padding-top: 8px; border-top: 1px solid rgba(89, 141, 121, 0.24); }
.inventory-fluid-source-list > header { display: flex; align-items: baseline; justify-content: space-between; gap: 10px; }
.inventory-fluid-source-list > header span { color: var(--folio-muted, #d2b66d); font-size: var(--ming-font-small, 14px); font-weight: 750; }
.inventory-fluid-source-list > header small { color: var(--folio-muted, #89988f); font-size: var(--ming-font-small, 14px); text-align: right; }
.inventory-fluid-source-list > p { margin: 0; color: var(--folio-muted, #9c9483); font-size: var(--ming-font-body, 16px); }
.inventory-fluid-source-card {
  min-width: 0;
  display: grid;
  grid-template-columns: 38px minmax(0, 1fr) minmax(252px, 0.9fr);
  align-items: center;
  gap: 9px;
  padding: 9px;
  border: 1px solid rgba(102, 153, 132, 0.29);
  background: var(--folio-card, #08110e);
}
.inventory-fluid-source-card > i {
  display: grid;
  width: 34px;
  height: 34px;
  place-items: center;
  border: 1px solid rgba(126, 190, 166, 0.62);
  border-radius: 50%;
  color: var(--folio-ink, #a8d6c2);
  font-family: var(--font-brush);
  font-style: normal;
}
.inventory-fluid-source-copy { min-width: 0; display: grid; gap: 2px; }
.inventory-fluid-source-copy span { color: var(--folio-muted, #9fc4b1); font-size: var(--ming-font-small, 14px); }
.inventory-fluid-source-copy b { overflow-wrap: anywhere; color: var(--folio-ink, #eadbbc); font-size: 15px; }
.inventory-fluid-source-copy small,
.inventory-fluid-source-copy em { color: var(--folio-muted, #8f998f); font-size: var(--ming-font-small, 14px); font-style: normal; line-height: 1.4; }
.inventory-fluid-source-copy em { color: var(--folio-muted, #b5a06d); }
.inventory-fluid-source-actions { min-width: 0; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 7px; }
.inventory-fluid-panel .water-exposure-ledger { margin: 0; }

.inventory-compact-summary > footer {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  padding: 9px 11px;
  color: var(--folio-ink, #a99b80);
  border-left: 3px solid #a68442;
  background: var(--folio-card, #15140f);
  font-size: var(--ming-font-small, 14px);
}
.inventory-compact-summary > footer span { color: var(--folio-muted, #cfb875); white-space: nowrap; }
.inventory-compact-summary > footer small { color: var(--folio-muted, #7f9187); font-size: var(--ming-font-small, 14px); text-align: right; }

.jinyi-campaign .case-relation-panel article {
  grid-template-columns: minmax(138px, 0.62fr) minmax(0, 1fr) 38px;
  min-height: 34px;
}
.jinyi-campaign .case-relation-panel article span { font-size: var(--ming-font-small, 14px); }
.jinyi-campaign .case-relation-panel article strong,
.jinyi-campaign .case-relation-panel > p { font-size: var(--ming-font-body, 16px); }

@media (max-width: 760px) {
  .inventory-quick-use-list { grid-template-columns: 1fr; }
  .inventory-compact-summary > header { grid-template-columns: minmax(0, 1fr) auto; }
  .inventory-compact-summary > footer { align-items: flex-start; flex-direction: column; gap: 4px; }
  .inventory-compact-summary > header span,
  .inventory-compact-summary > header small,
  .inventory-compact-summary > header > b small,
  .inventory-compact-summary > footer,
  .inventory-compact-summary > footer small { font-size: var(--ming-font-small, 14px); }
  .inventory-quick-section > header span,
  .inventory-quick-section > header small,
  .inventory-stowed-section > header span,
  .inventory-stowed-section > header small,
  .inventory-quick-copy span,
  .inventory-quick-copy small,
  .inventory-quick-actions button span,
  .inventory-quick-actions button small,
  .inventory-stowed-list article b,
  .inventory-stowed-list article small,
  .inventory-stowed-list article em,
  .inventory-stowed-list > p { font-size: var(--ming-font-small, 14px); }
  .inventory-quick-copy strong { font-size: 15px; }
  .inventory-fluid-panel > header { grid-template-columns: minmax(0, 1fr) auto; }
  .inventory-fluid-panel > header span,
  .inventory-fluid-panel > header small,
  .inventory-fluid-panel > header > b small,
  .inventory-fluid-actions > button small,
  .inventory-fluid-source-list > header small,
  .inventory-fluid-source-copy span,
  .inventory-fluid-source-copy small,
  .inventory-fluid-source-copy em,
  .inventory-fluid-source-actions > button small { font-size: var(--ming-font-small, 14px); }
  .inventory-fluid-actions { grid-template-columns: 1fr; }
  .inventory-fluid-source-list > header { align-items: flex-start; flex-direction: column; gap: 3px; }
  .inventory-fluid-source-list > header small { text-align: left; }
  .inventory-fluid-source-card { grid-template-columns: 36px minmax(0, 1fr); }
  .inventory-fluid-source-actions { grid-column: 1 / -1; width: 100%; }
  .inventory-quick-actions button { min-height: 44px; }
  .jinyi-campaign .case-relation-panel article { grid-template-columns: minmax(126px, 0.75fr) minmax(0, 1fr) 36px; }
  .jinyi-campaign .case-relation-panel article span,
  .jinyi-campaign .case-relation-panel article strong,
  .jinyi-campaign .case-relation-panel > p { font-size: var(--ming-font-body, 16px); }
}
/* 生产账号、邀测门与账号级天机设置 */
.account-gate-shell {
  position: relative;
  isolation: isolate;
  min-height: 100vh;
  display: grid;
  grid-template-columns: minmax(520px, 1.16fr) minmax(520px, 0.84fr);
  color: var(--paper-200);
  background:
    linear-gradient(90deg, rgba(5, 7, 6, 0.04) 0%, rgba(5, 7, 6, 0.04) 44%, rgba(6, 9, 8, 0.72) 62%, #060907 80%),
    linear-gradient(0deg, rgba(4, 6, 5, 0.8), transparent 40%),
    url('/assets/art/account/ming-survival-invite-gate-keyart-v2.png') center / cover no-repeat;
  overflow-x: hidden;
}

.account-gate-shell::before {
  position: absolute;
  inset: 0;
  z-index: -1;
  content: '';
  pointer-events: none;
  opacity: 0.16;
  background-image: repeating-linear-gradient(112deg, transparent 0 3px, rgba(223, 200, 148, 0.035) 3px 4px);
  mix-blend-mode: soft-light;
}

.account-gate-art {
  position: relative;
  min-height: 100vh;
}

.account-art-copy {
  position: absolute;
  left: clamp(38px, 5vw, 92px);
  bottom: clamp(42px, 7vh, 96px);
  width: min(490px, calc(100% - 76px));
  color: var(--folio-ink, #ded3bb);
  text-shadow: 0 3px 18px #000, 0 1px 4px #000;
}

.account-art-copy > span { color: var(--folio-muted, #d8b86f); font-size: var(--ming-font-small, 14px); font-weight: 800; letter-spacing: 0.24em; }
.account-art-copy h2 { margin: 13px 0 8px; color: var(--folio-ink, #f3ead5); font-family: var(--font-brand); font-size: clamp(38px, 4.2vw, 68px); font-weight: 400; line-height: 1.08; letter-spacing: 0.05em; font-synthesis: none; }
.account-art-copy h2 em { color: var(--folio-muted, #d9bd78); font-style: normal; }
.account-art-copy > p { max-width: 430px; margin: 0; color: var(--folio-muted, #bdb29e); font-size: var(--ming-font-body, 16px); line-height: 1.75; letter-spacing: 0.04em; }

.account-art-test-mark {
  width: fit-content;
  display: grid;
  grid-template-columns: 42px auto;
  align-items: center;
  gap: 11px;
  margin-top: 22px;
  padding: 9px 15px 9px 9px;
  border: 1px solid rgba(214, 185, 116, 0.3);
  background: var(--folio-card, rgba(4, 7, 6, 0.66));
  backdrop-filter: blur(8px);
}

.account-art-test-mark > i { width: 40px; height: 40px; display: grid; place-items: center; color: var(--folio-ink, #f2d5a4); border: 1px solid rgba(228, 191, 123, 0.55); background: var(--folio-card, rgba(121, 31, 22, 0.74)); font-family: var(--font-brush); font-size: 25px; font-style: normal; }
.account-art-test-mark b,
.account-art-test-mark small { display: block; }
.account-art-test-mark b { color: var(--folio-ink, #e6dcc6); font-size: var(--ming-font-small, 14px); letter-spacing: 0.12em; }
.account-art-test-mark small { margin-top: 2px; color: var(--folio-muted, #9f9686); font-size: var(--ming-font-small, 14px); }

.account-possibility {
  position: relative;
  order: 5;
  overflow: hidden;
  display: grid;
  gap: 4px;
  padding: 15px 92px 15px 17px;
  border: 1px solid rgba(115, 157, 136, 0.23);
  border-left: 3px solid rgba(115, 157, 136, 0.58);
  background: var(--folio-card, linear-gradient(90deg, rgba(35, 65, 52, 0.3), rgba(10, 17, 13, 0.56)),
    rgba(8, 13, 10, 0.8));
}

.account-possibility::after {
  position: absolute;
  right: 18px;
  top: 50%;
  content: '天下';
  color: rgba(210, 184, 126, 0.12);
  font-family: var(--font-brush);
  font-size: 38px;
  letter-spacing: 0.08em;
  transform: translateY(-50%) rotate(-4deg);
}

.account-possibility > span { color: var(--folio-muted, #8fbaa4); font-size: var(--ming-font-small, 14px); font-weight: 800; letter-spacing: 0.15em; }
.account-possibility h3 { margin: 0; color: var(--folio-ink, #e4d8bd); font-size: 16px; font-weight: 800; }
.account-possibility p { margin: 0; color: var(--folio-muted, #a8a08f); font-size: var(--ming-font-body, 16px); line-height: 1.55; }
.account-possibility small { color: var(--folio-muted, #716d63); font-size: var(--ming-font-small, 14px); line-height: 1.45; }

.account-journey {
  position: relative;
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 0;
  margin: 0;
  padding: 0 0 17px;
  border-bottom: 1px solid rgba(210, 184, 126, 0.16);
  list-style: none;
}

.account-journey li { position: relative; min-width: 0; display: grid; grid-template-columns: 28px minmax(0, 1fr); align-items: center; gap: 8px; color: var(--folio-ink, #716b60); }
.account-journey li + li::before { position: absolute; top: 14px; right: calc(100% + 3px); width: 20px; height: 1px; content: ''; background: rgba(210, 184, 126, 0.22); }
.account-journey i { width: 28px; height: 28px; display: grid; place-items: center; border: 1px solid rgba(210, 184, 126, 0.18); border-radius: 50%; font-size: var(--ming-font-small, 14px); font-style: normal; }
.account-journey b,
.account-journey small { display: block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.account-journey b { color: var(--folio-ink, #8d8577); font-size: var(--ming-font-small, 14px); letter-spacing: 0.08em; }
.account-journey small { margin-top: 2px; color: var(--folio-muted, #5f5b53); font-size: var(--ming-font-small, 14px); }
.account-journey li.active i,
.account-journey li.complete i { color: var(--folio-ink, #17130b); border-color: var(--folio-rule, #d8bb76); background: var(--folio-selected-surface, #d8bb76); box-shadow: 0 0 18px rgba(216, 187, 118, 0.15); }
.account-journey li.active b,
.account-journey li.complete b { color: var(--folio-ink, #d9cfbb); }
.account-journey li.active small,
.account-journey li.complete small { color: var(--folio-muted, #958c7b); }
}

.account-gate-card {
  position: relative;
  width: min(660px, calc(100% - 64px));
  align-self: center;
  justify-self: center;
  display: grid;
  gap: 18px;
  margin: 28px 0;
  padding: clamp(26px, 3.1vw, 44px);
  border: 1px solid rgba(211, 185, 120, 0.25);
  background: var(--folio-card, linear-gradient(135deg, rgba(216, 187, 118, 0.035), transparent 32%),
    linear-gradient(180deg, rgba(14, 19, 17, 0.94), rgba(7, 11, 9, 0.98)));
  box-shadow: 0 34px 100px rgba(0, 0, 0, 0.56), inset 3px 0 0 rgba(129, 38, 26, 0.56);
  backdrop-filter: blur(15px);
}

.account-gate-card::after {
  position: absolute;
  inset: 8px;
  content: '';
  pointer-events: none;
  border: 1px solid rgba(211, 185, 120, 0.055);
}

.account-gate-card > header {
  display: grid;
  grid-template-columns: 68px minmax(0, 1fr);
  align-items: center;
  gap: 16px;
}

.account-gate-card > header img,
.account-loading-card img { width: 68px; height: 68px; object-fit: contain; filter: drop-shadow(0 10px 20px rgba(0, 0, 0, 0.45)); }
.account-gate-card > header span,
.account-loading-card > span { color: var(--gold-400); font-size: var(--ming-font-small, 14px); font-weight: 700; letter-spacing: 0.17em; }
.account-gate-card h1,
.account-loading-card h1 { margin: 3px 0; color: var(--paper-100); font-family: var(--font-brand); font-size: clamp(36px, 3.6vw, 50px); font-weight: 400; letter-spacing: 0.08em; font-synthesis: none; }
.account-gate-card > header p,
.account-loading-card p { margin: 0; color: var(--paper-400); font-size: var(--ming-font-body, 16px); line-height: 1.72; }

.account-mode-tabs { display: grid; grid-template-columns: 1fr 1fr; gap: 4px; padding: 4px; border: 1px solid rgba(211, 185, 120, 0.2); background: var(--folio-card, rgba(3, 7, 5, 0.64)); }
.account-mode-tabs button { position: relative; min-height: 44px; color: var(--folio-ink, #948b7b); border: 0; background: transparent; font: inherit; font-size: var(--ming-font-small, 14px); font-weight: 700; cursor: pointer; transition: color 160ms ease, background 160ms ease; }
.account-mode-tabs button::after { position: absolute; left: 25%; right: 25%; bottom: 2px; height: 1px; content: ''; background: transparent; }
.account-mode-tabs button:hover { color: var(--folio-ink, #ddd2bd); background: var(--folio-hover, rgba(211, 185, 120, 0.06)); }
.account-mode-tabs button.active { color: var(--folio-ink, #f0dfb7); background: var(--folio-selected-surface, linear-gradient(180deg, rgba(134, 103, 49, 0.42), rgba(84, 63, 31, 0.24))); }
.account-mode-tabs button.active::after { background: #d5b66d; box-shadow: 0 0 12px rgba(213, 182, 109, 0.42); }

.account-form { display: grid; gap: 13px; }
.account-form label { display: grid; gap: 7px; color: var(--folio-ink, #b4aa98); font-size: var(--ming-font-small, 14px); font-weight: 700; letter-spacing: 0.04em; }
.account-form input { width: 100%; min-height: 50px; padding: 10px 14px; color: var(--paper-100); border: 1px solid rgba(211, 185, 120, 0.28); border-radius: 2px; background: var(--folio-card, rgba(7, 12, 9, 0.84)); box-shadow: inset 0 1px 10px rgba(0, 0, 0, 0.32); font: inherit; font-size: var(--ming-font-body, 16px); transition: border-color 160ms ease, box-shadow 160ms ease, background 160ms ease; }
.account-form input::placeholder { color: var(--folio-ink, #625f58); }
.account-form input:hover { border-color: var(--folio-rule, rgba(211, 185, 120, 0.42)); }
.account-form input:focus { border-color: var(--folio-rule, #caaa63); outline: 0; background: var(--folio-card, rgba(10, 16, 12, 0.96)); box-shadow: 0 0 0 3px rgba(202, 170, 99, 0.11), inset 0 1px 10px rgba(0, 0, 0, 0.28); }
.account-form button.primary { min-height: 52px; display: flex; align-items: center; justify-content: center; gap: 12px; color: var(--folio-ink, #17130b); border: 1px solid #e1c67e; background: var(--folio-card, linear-gradient(180deg, #dec47f, #c6a65d)); box-shadow: 0 8px 24px rgba(0, 0, 0, 0.24); font: inherit; font-size: 14px; font-weight: 900; letter-spacing: 0.08em; cursor: pointer; transition: transform 160ms ease, filter 160ms ease, box-shadow 160ms ease; }
.account-form button.primary i { font-family: serif; font-size: 25px; font-style: normal; line-height: 0; transition: transform 160ms ease; }
.account-form button.primary:hover { filter: brightness(1.06); box-shadow: 0 10px 30px rgba(164, 127, 58, 0.18); transform: translateY(-1px); }
.account-form button.primary:hover i { transform: translateX(3px); }
.account-form button:disabled { opacity: 0.58; cursor: wait; }
.account-error { margin: 0; padding: 11px 13px; color: var(--folio-danger, #f4b2a5); border: 1px solid rgba(186, 91, 72, 0.55); background: var(--folio-danger-surface, rgba(96, 35, 28, 0.28)); font-size: var(--ming-font-small, 14px); }
.account-gate-card > footer { display: flex; align-items: center; justify-content: space-between; gap: 16px; padding-top: 2px; color: var(--folio-ink, #716b60); font-size: var(--ming-font-small, 14px); line-height: 1.55; }
.account-gate-card > footer span { display: inline-flex; align-items: center; gap: 6px; }
.account-gate-card > footer span b { width: 22px; height: 22px; display: grid; place-items: center; color: var(--folio-muted, #a89771); border: 1px solid rgba(211, 185, 120, 0.19); border-radius: 50%; font-size: var(--ming-font-small, 14px); }
.account-gate-card > footer small { font-size: var(--ming-font-small, 14px); line-height: 1.55; }
.account-gate-card > footer button { min-height: 44px; padding: 0 13px; color: var(--folio-ink, #b9ae99); border: 1px solid rgba(211, 185, 120, 0.2); background: transparent; font: inherit; font-size: var(--ming-font-small, 14px); cursor: pointer; }
.account-gate-card > footer button:hover { color: var(--folio-ink, #eadbb9); border-color: var(--folio-rule, rgba(211, 185, 120, 0.42)); }

.invite-account-summary { display: grid; grid-template-columns: repeat(3, 1fr); gap: 8px; }
.invite-account-summary span { min-width: 0; display: grid; gap: 5px; padding: 12px 13px; border: 1px solid rgba(211, 185, 120, 0.17); background: var(--folio-card, linear-gradient(180deg, rgba(22, 30, 26, 0.76), rgba(12, 18, 15, 0.8))); }
.invite-account-summary small { color: var(--folio-muted, #756f64); font-size: var(--ming-font-small, 14px); letter-spacing: 0.06em; }
.invite-account-summary strong { overflow: hidden; color: var(--folio-ink, #9cc4af); font-size: 14px; text-overflow: ellipsis; white-space: nowrap; }

.account-gate-shell.loading { grid-template-columns: 1fr; place-items: center; }
.account-loading-card { display: grid; justify-items: center; gap: 8px; padding: 42px; border: 1px solid rgba(211, 185, 120, 0.24); background: var(--folio-card, rgba(7, 11, 9, 0.88)); box-shadow: 0 30px 80px #000; text-align: center; backdrop-filter: blur(14px); }

/* 账号门 V2：右栏改为完整案牒页，登录居中、长期命途说明沉底。 */
.account-gate-v2 { grid-template-columns: minmax(0, 1.12fr) minmax(500px, 0.88fr); }

.account-gate-v2 .account-art-copy { bottom: clamp(48px, 7vh, 82px); width: min(520px, calc(100% - 76px)); }
.account-gate-v2 .account-art-copy h2 { font-size: clamp(45px, 4.7vw, 68px); }
.account-gate-v2 .account-art-copy > p { max-width: 420px; font-size: var(--ming-font-body, 16px); }
.account-gate-v2 .account-art-test-mark { margin-top: 18px; }
.account-gate-v2 .account-art-test-mark b { font-size: var(--ming-font-small, 14px); }
.account-gate-v2 .account-art-test-mark small { font-size: var(--ming-font-small, 14px); }

.account-gate-panel {
  position: relative;
  min-height: 100vh;
  display: grid;
  grid-template-rows: minmax(0, 1fr) auto;
  padding: clamp(30px, 5vh, 56px) clamp(32px, 4vw, 64px) clamp(22px, 3vh, 34px);
  border-left: 1px solid rgba(211, 185, 120, 0.18);
  background: radial-gradient(circle at 68% 24%, rgba(50, 81, 66, 0.13), transparent 36%),
    linear-gradient(180deg, rgba(7, 12, 9, 0.97), rgba(4, 8, 6, 0.995));
  box-shadow: -34px 0 90px rgba(0, 0, 0, 0.32);
}

.account-gate-panel::before,
.account-gate-panel::after { position: absolute; left: 14px; right: 14px; height: 1px; content: ''; pointer-events: none; background: linear-gradient(90deg, transparent, rgba(211, 185, 120, 0.18), transparent); }
.account-gate-panel::before { top: 13px; }
.account-gate-panel::after { bottom: 13px; }

.account-auth-shell {
  width: min(580px, 100%);
  align-self: center;
  justify-self: center;
  display: grid;
  gap: 16px;
  padding: 12px 0 26px;
}

.account-v2-header { display: grid; justify-items: start; }

.account-v2-brand {
  display: grid;
  grid-template-columns: auto minmax(142px, 176px) 1px auto;
  align-items: center;
  gap: 10px;
  margin-bottom: 12px;
}

.account-v2-brand .account-v2-origin-label { color: var(--folio-ink, #716a5d); font-size: var(--ming-font-small, 14px); font-weight: 800; letter-spacing: 0.14em; }
.account-v2-brand img { width: 100%; height: auto; object-fit: contain; filter: drop-shadow(0 8px 16px rgba(0, 0, 0, 0.48)); }
.account-v2-brand > i { width: 1px; height: 34px; background: var(--folio-card, linear-gradient(180deg, transparent, rgba(211, 185, 120, 0.4), transparent)); }
.account-v2-brand span { display: grid; gap: 2px; }
.account-v2-brand b { color: var(--folio-ink, #d5b66e); font-size: var(--ming-font-small, 14px); letter-spacing: 0.13em; white-space: nowrap; }
.account-v2-brand small { color: var(--folio-muted, #918879); font-size: var(--ming-font-small, 14px); letter-spacing: 0.08em; white-space: nowrap; }

.account-v2-product {
  display: grid;
  grid-template-columns: 62px minmax(0, 1fr);
  align-items: center;
  gap: 14px;
}

.account-v2-product > img {
  width: 62px;
  height: 62px;
  object-fit: contain;
  filter: drop-shadow(0 9px 18px rgba(0, 0, 0, 0.52));
}

.account-v2-product > div { display: grid; align-content: center; }
.account-v2-product span { color: var(--folio-muted, #a99064); font-size: var(--ming-font-small, 14px); font-weight: 800; letter-spacing: 0.22em; }
.account-v2-product h1 { margin: 2px 0 0; color: var(--folio-ink, #f2ead7); font-family: var(--font-brand); font-size: clamp(43px, 4.4vw, 58px); font-weight: 400; line-height: 1.05; letter-spacing: 0.09em; font-synthesis: none; }
.account-v2-header > p { max-width: 560px; margin: 10px 0 0; color: var(--folio-muted, #b9ae9a); font-size: var(--ming-font-body, 16px); line-height: 1.7; }
.account-v2-header > p b { color: var(--folio-muted, #dcc17b); }

.account-auth-shell .account-mode-tabs { margin-top: 2px; }
.account-auth-shell .account-form { gap: 12px; }
.account-auth-shell .account-form label { font-size: var(--ming-font-small, 14px); }
.account-auth-shell .account-form input { min-height: 48px; }
.account-auth-shell .account-form button.primary { min-height: 50px; }

.account-v2-security {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 14px;
  color: var(--folio-ink, #68645c);
  font-size: var(--ming-font-small, 14px);
  line-height: 1.5;
}

.account-v2-security > span { display: inline-flex; align-items: center; gap: 6px; }
.account-v2-security > span b { width: 21px; height: 21px; display: grid; place-items: center; color: var(--folio-muted, #958568); border: 1px solid rgba(211, 185, 120, 0.18); border-radius: 50%; font-size: var(--ming-font-small, 14px); }
.account-v2-security > small { color: inherit; font-size: inherit; }
.account-v2-security > button { min-height: 44px; padding: 0 12px; color: var(--folio-ink, #b6aa94); border: 1px solid rgba(211, 185, 120, 0.2); background: var(--folio-card, rgba(8, 13, 10, 0.48)); font: inherit; cursor: pointer; }

.account-v2-possibility {
  width: min(580px, 100%);
  justify-self: center;
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(180px, 0.75fr);
  gap: 5px 24px;
  padding: 18px 0 2px 15px;
  border-top: 1px solid rgba(111, 157, 135, 0.24);
  border-left: 2px solid rgba(111, 157, 135, 0.52);
}

.account-v2-possibility > header { display: flex; align-items: center; gap: 9px; }
.account-v2-possibility > header span { color: var(--folio-muted, #9ac3ad); font-size: var(--ming-font-small, 14px); font-weight: 800; letter-spacing: 0.14em; }
.account-v2-possibility > header small { color: var(--folio-muted, #77867c); font-size: var(--ming-font-small, 14px); }
.account-v2-possibility > strong { color: var(--folio-ink, #e0d4bc); font-size: 16px; line-height: 1.5; }
.account-v2-possibility > p { grid-column: 2; grid-row: 1 / span 2; margin: 0; color: var(--folio-muted, #a19a8c); font-size: var(--ming-font-body, 16px); line-height: 1.6; }
.account-v2-possibility > small { grid-column: 1 / -1; margin-top: 4px; color: var(--folio-muted, #777269); font-size: var(--ming-font-small, 14px); line-height: 1.5; }

.welcome-token-backdrop {
  position: fixed;
  inset: 0;
  z-index: 1000;
  display: grid;
  place-items: center;
  padding: 18px;
  background: rgba(3, 5, 4, 0.88);
  backdrop-filter: blur(14px);
}

.welcome-token-poster {
  width: min(520px, 100%);
  max-height: calc(100vh - 36px);
  overflow-y: auto;
  display: grid;
  justify-items: center;
  gap: 13px;
  padding: clamp(28px, 5vw, 52px);
  color: var(--paper-100);
  border: 1px solid rgba(211, 185, 120, 0.72);
  background:
    linear-gradient(180deg, rgba(5, 8, 7, 0.35), rgba(5, 8, 7, 0.78) 46%, rgba(5, 8, 7, 0.96) 76%),
    url('/assets/art/ui/welcome-token-poster-v2.png') center 40% / cover;
  box-shadow: 0 35px 120px #000;
  text-align: center;
}

.welcome-token-kicker { color: var(--gold-300); font-size: var(--ming-font-small, 14px); letter-spacing: 0.18em; }
.welcome-token-poster > img { width: 88px; height: 88px; object-fit: contain; filter: drop-shadow(0 10px 20px #000); }
.welcome-token-poster h2 { margin: 0; color: #f5e2ad; font-family: var(--font-brush); font-size: clamp(42px, 9vw, 66px); font-weight: 400; line-height: 1.1; text-shadow: 0 4px 24px #000; }
.welcome-token-poster > p { margin: 0; color: #e2d7c1; font-size: var(--ming-font-body, 16px); line-height: 1.8; text-shadow: 0 2px 10px #000; }
.welcome-token-poster > div { width: 100%; display: grid; grid-template-columns: 1fr 1fr; gap: 8px; }
.welcome-token-poster > div span { display: grid; gap: 3px; padding: 10px; color: var(--paper-300); border: 1px solid rgba(211, 185, 120, 0.24); background: rgba(5, 8, 7, 0.68); font-size: var(--ming-font-small, 14px); }
.welcome-token-poster > div b { color: var(--jade-300); font-size: 14px; }
.welcome-token-poster > button { width: 100%; min-height: 50px; color: #17130b; border: 1px solid #e0c983; background: #d7bb72; font: inherit; font-size: 15px; font-weight: 900; cursor: pointer; }
.welcome-token-poster > small { color: #b9af9c; font-size: var(--ming-font-small, 14px); line-height: 1.55; }

.tianji-mode-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; margin-top: 14px; }
.tianji-mode-card { min-height: 92px; display: grid; gap: 4px; padding: 14px; color: var(--paper-300); border: 1px solid var(--line); background: rgba(11, 16, 14, 0.78); text-align: left; cursor: pointer; }
.tianji-mode-card.active { border-color: var(--jade-400); background: rgba(35, 67, 54, 0.38); }
.tianji-mode-card b { color: var(--paper-100); font-size: 16px; }
.tianji-mode-card span { font-size: var(--ming-font-small, 14px); }
.tianji-mode-card em { color: var(--gold-400); font-size: var(--ming-font-small, 14px); font-style: normal; }

.official-tianji-settings,
.byok-activation-card,
.token-package-ledger,
.byok-code-note { margin-top: 12px; padding: 16px; border: 1px solid var(--line); background: rgba(16, 22, 20, 0.76); }
.official-tianji-settings { display: grid; grid-template-columns: 1fr minmax(200px, 0.6fr); gap: 18px; align-items: end; }
.official-tianji-settings h3,
.byok-activation-card h3 { margin: 3px 0; color: var(--paper-100); font-size: 18px; }
.official-tianji-settings p,
.byok-activation-card p,
.byok-code-note p { margin: 4px 0 0; color: var(--paper-400); font-size: var(--ming-font-body, 16px); line-height: 1.65; }
.official-tianji-settings label,
.byok-activation-card label,
.token-package-ledger label { display: grid; gap: 6px; color: var(--paper-300); font-size: var(--ming-font-small, 14px); }
.official-tianji-settings select,
.byok-activation-card input,
.token-package-ledger input { min-height: 44px; padding: 8px 10px; color: var(--paper-100); border: 1px solid var(--line-strong); background: #0c110f; font: inherit; }
.byok-activation-card { display: grid; grid-template-columns: 1fr 1fr auto; align-items: end; gap: 12px; }
.byok-activation-card button,
.token-package-ledger button { min-height: 44px; padding: 0 14px; color: var(--paper-100); border: 1px solid var(--gold-500); background: rgba(95, 72, 34, 0.48); cursor: pointer; }
.byok-code-note span { color: var(--jade-300); font-size: var(--ming-font-small, 14px); font-weight: 800; }
.token-package-ledger header { display: flex; justify-content: space-between; gap: 10px; }
.token-package-ledger header span { color: var(--gold-300); font-size: 14px; }
.token-package-ledger header strong { color: var(--jade-300); font-size: var(--ming-font-small, 14px); }
.token-package-ledger > div { display: flex; flex-wrap: wrap; gap: 8px; margin: 11px 0; }
.token-package-ledger > div span,
.token-package-ledger > div b { padding: 6px 9px; border: 1px solid var(--line); background: #0d1210; font-size: var(--ming-font-small, 14px); }
.token-package-ledger > small { display: block; color: var(--paper-400); font-size: var(--ming-font-small, 14px); line-height: 1.65; }
.token-package-ledger label { margin-top: 12px; }
.settings-panel > footer .account-logout-button { margin-right: auto; color: var(--folio-ink, #d49a8e); border-color: var(--folio-rule, rgba(183, 92, 75, 0.44)); background: transparent; }

@media (max-width: 1180px) {
  .account-gate-shell { grid-template-columns: minmax(0, 1.04fr) minmax(460px, 0.96fr); }
  .account-art-copy { left: 34px; width: min(420px, calc(100% - 68px)); }
  .account-art-copy h2 { font-size: clamp(38px, 5vw, 56px); }
  .account-gate-card { width: calc(100% - 42px); padding: 28px; }
}

@media (max-width: 980px) {
  .account-gate-shell { display: block; background: var(--folio-card, #070a08); overflow: visible; }
  .account-gate-art {
    min-height: min(42vh, 420px);
    background:
      linear-gradient(0deg, #070a08 0%, rgba(7, 10, 8, 0.18) 44%, rgba(7, 10, 8, 0.08) 100%),
      linear-gradient(90deg, rgba(7, 10, 8, 0.08), rgba(7, 10, 8, 0.5) 100%),
      url('/assets/art/account/ming-survival-invite-gate-keyart-v2.png') 34% center / cover no-repeat;
  }
  .account-art-copy { left: 28px; bottom: 48px; width: min(470px, calc(100% - 56px)); }
  .account-art-copy h2 { font-size: clamp(36px, 6vw, 52px); }
  .account-gate-card { z-index: 1; width: min(660px, calc(100% - 36px)); margin: -26px auto 30px; }
}

@media (max-width: 760px) {
  .account-gate-art { min-height: 31vh; background-position: 31% center; }
  .account-art-copy { left: 20px; bottom: 30px; width: calc(100% - 40px); }
  .account-art-copy > span { font-size: var(--ming-font-small, 14px); }
  .account-art-copy h2 { margin-top: 8px; font-size: clamp(31px, 10vw, 44px); }
  .account-art-copy > p,
  .account-art-test-mark { display: none; }
  .account-gate-card { width: calc(100% - 24px); align-self: start; gap: 15px; margin-top: -18px; padding: 22px 16px 26px; }
  .account-journey { padding-bottom: 13px; }
  .account-journey li { grid-template-columns: 24px minmax(0, 1fr); gap: 5px; }
  .account-journey i { width: 24px; height: 24px; }
  .account-journey li + li::before { top: 12px; width: 9px; }
  .account-journey b { font-size: var(--ming-font-small, 14px); letter-spacing: 0; }
  .account-journey small { font-size: var(--ming-font-small, 14px); }
  .account-gate-card > header { grid-template-columns: 56px 1fr; gap: 11px; }
  .account-gate-card > header img { width: 56px; height: 56px; }
  .account-gate-card h1 { font-size: clamp(33px, 11vw, 44px); }
  .account-gate-card > header p { font-size: var(--ming-font-body, 16px); line-height: 1.6; }
  .account-mode-tabs button { min-height: 44px; font-size: var(--ming-font-small, 14px); }
  .account-form input { min-height: 48px; }
  .account-gate-card > footer { align-items: flex-start; flex-direction: column; gap: 7px; }
  .account-gate-card > footer button { width: 100%; }
  .account-possibility { padding: 13px 58px 13px 13px; }
  .account-possibility::after { right: 10px; font-size: 29px; }
  .account-possibility h3 { font-size: 14px; }
  .account-possibility p { font-size: var(--ming-font-body, 16px); }
  .account-possibility small { display: none; }
  .invite-account-summary { gap: 5px; }
  .invite-account-summary span { padding: 9px 8px; }
  .invite-account-summary strong { font-size: var(--ming-font-small, 14px); }
  .welcome-token-poster { padding: 28px 20px; }
  .tianji-mode-grid,
  .official-tianji-settings,
  .byok-activation-card { grid-template-columns: 1fr; }
  .settings-panel > footer { gap: 10px; flex-wrap: wrap; }
}

@media (max-width: 980px) {
  .account-gate-v2 { display: block; }
  .account-gate-v2 .account-gate-art { min-height: min(39vh, 360px); }
  .account-gate-v2 .account-art-copy { bottom: 42px; width: min(460px, calc(100% - 48px)); }
  .account-gate-v2 .account-art-copy h2 { font-size: clamp(38px, 7vw, 54px); }
  .account-gate-panel { min-height: auto; padding: 28px max(20px, env(safe-area-inset-right)) 24px max(20px, env(safe-area-inset-left)); box-shadow: none; }
  .account-auth-shell { padding: 8px 0 24px; }
  .account-v2-possibility { margin-top: 8px; }
}

@media (max-width: 560px) {
  .account-gate-v2 .account-gate-art {
    min-height: clamp(250px, 32svh, 330px);
    background-color: var(--folio-card, #070a08);
    background-image:
      linear-gradient(180deg, rgba(7, 10, 8, 0.04) 0%, rgba(7, 10, 8, 0.02) 48%, #070a08 100%),
      linear-gradient(90deg, rgba(7, 10, 8, 0.03) 0%, rgba(7, 10, 8, 0.1) 58%, rgba(7, 10, 8, 0.5) 100%),
      url('/assets/art/account/ming-survival-invite-gate-keyart-v2.png');
    background-position: center, center, 16% 46%;
    background-size: 100% 100%, 100% 100%, auto 150%;
    background-repeat: no-repeat;
  }
  .account-gate-v2 .account-art-copy { left: 18px; bottom: 26px; width: calc(100% - 36px); }
  .account-gate-v2 .account-art-copy > span { font-size: var(--ming-font-small, 14px); letter-spacing: 0.16em; }
  .account-gate-v2 .account-art-copy h2 { margin: 7px 0 0; font-size: clamp(32px, 10vw, 42px); }
  .account-gate-v2 .account-art-copy > p,
  .account-gate-v2 .account-art-test-mark { display: none; }
  .account-gate-panel { position: relative; z-index: 2; margin-top: -14px; padding: 27px 16px 20px; border-top: 1px solid rgba(211, 185, 120, 0.24); box-shadow: 0 -18px 44px rgba(0, 0, 0, 0.42); }
  .account-auth-shell { gap: 14px; padding-bottom: 20px; }
  .account-v2-brand { grid-template-columns: minmax(122px, 145px) 1px auto; gap: 8px; margin-bottom: 10px; }
  .account-v2-brand .account-v2-origin-label { display: none; }
  .account-v2-brand b { font-size: var(--ming-font-small, 14px); letter-spacing: 0.08em; }
  .account-v2-brand small { font-size: var(--ming-font-small, 14px); letter-spacing: 0.03em; }
  .account-v2-product { grid-template-columns: 52px minmax(0, 1fr); gap: 11px; }
  .account-v2-product > img { width: 52px; height: 52px; }
  .account-v2-product h1 { font-size: clamp(38px, 12vw, 48px); }
  .account-v2-product span { font-size: var(--ming-font-small, 14px); letter-spacing: 0.14em; }
  .account-v2-header > p { margin-top: 7px; font-size: var(--ming-font-body, 16px); line-height: 1.6; }
  .account-v2-security { align-items: flex-start; flex-direction: column; gap: 6px; }
  .account-v2-security > button { width: 100%; }
  .account-v2-possibility { grid-template-columns: 1fr; gap: 4px; padding: 14px 0 0 12px; }
  .account-v2-possibility > p { grid-column: 1; grid-row: auto; font-size: var(--ming-font-body, 16px); }
  .account-v2-possibility > small { grid-column: 1; }
}

@media (min-width: 981px) and (max-height: 760px) {
  .account-gate-panel { padding-top: 22px; padding-bottom: 16px; }
  .account-auth-shell { gap: 13px; padding: 4px 0 16px; }
  .account-v2-brand { margin-bottom: 8px; }
  .account-v2-header > p { margin-top: 7px; line-height: 1.58; }
  .account-v2-possibility { padding-top: 13px; }
  .account-gate-v2.registering .account-v2-possibility { grid-template-columns: minmax(0, 1fr) auto; align-items: center; gap: 12px; padding-top: 10px; }
  .account-gate-v2.registering .account-v2-possibility > strong { font-size: 14px; white-space: nowrap; }
  .account-gate-v2.registering .account-v2-possibility > p,
  .account-gate-v2.registering .account-v2-possibility > small { display: none; }
}

/* 人物记忆全卷：完整记录独立承载，常驻对白只保留最近摘要。 */
.actor-dialogue-open-memory-ledger,
.actor-memory-ledger-open {
  min-height: 44px;
  display: inline-grid;
  align-content: center;
  gap: 2px;
  padding: 8px 13px;
  color: var(--folio-ink, #d9c68e);
  border: 1px solid rgba(192, 151, 73, 0.48);
  background: var(--folio-card, #17170f);
  font: inherit;
  text-align: left;
  cursor: pointer;
}
.actor-dialogue-open-memory-ledger { width: 100%; margin-top: 3px; }
.actor-dialogue-open-memory-ledger b,
.actor-memory-ledger-open b { font-size: var(--ming-font-small, 14px); }
.actor-dialogue-open-memory-ledger small,
.actor-memory-ledger-open small { color: var(--folio-muted, #a99f87); font-size: var(--ming-font-small, 14px); line-height: 1.4; }
.actor-dialogue-panel > header { align-items: center; }
.actor-dialogue-panel > header .actor-memory-ledger-open { margin-left: auto; }

.actor-memory-ledger-backdrop {
  position: fixed;
  inset: 0;
  z-index: 1750;
  display: grid;
  place-items: center;
  padding: 22px;
  background: rgba(1, 4, 3, 0.9);
  backdrop-filter: blur(7px);
}
.actor-memory-ledger-modal {
  width: min(1240px, 100%);
  height: min(900px, calc(100vh - 44px));
  min-height: 0;
  display: block;
  overflow-y: auto;
  overflow-x: hidden;
  scrollbar-gutter: stable;
  color: #e7dcc4;
  border: 1px solid rgba(194, 156, 79, 0.58);
  background: #07100d;
  box-shadow: 0 28px 100px rgba(0, 0, 0, 0.78);
}
.actor-memory-ledger-heading {
  min-height: 144px;
  display: grid;
  grid-template-columns: 112px minmax(0, 1fr) auto;
  align-items: center;
  gap: 20px;
  padding: 18px 24px;
  border-bottom: 1px solid rgba(194, 156, 79, 0.34);
  background: #11150f;
}
.actor-memory-ledger-portrait {
  width: 104px;
  height: 104px;
  margin: 0;
  overflow: hidden;
  border: 1px solid rgba(203, 174, 102, 0.55);
  background: #080b09;
}
.actor-memory-ledger-portrait img { width: 100%; height: 100%; object-fit: cover; object-position: center 18%; }
.actor-memory-ledger-portrait.fallback { display: grid; place-items: center; }
.actor-memory-ledger-portrait.fallback i { color: #d1b66c; font: 400 50px/1 var(--font-brush); font-style: normal; }
.actor-memory-ledger-heading > div > span { color: #ba9a52; font-size: var(--ming-font-small, 14px); letter-spacing: 0.12em; }
.actor-memory-ledger-heading h2 { margin: 3px 0 4px; color: #f1e5c8; font: 400 clamp(34px, 4vw, 54px)/1.05 var(--font-brush); }
.actor-memory-ledger-heading p { margin: 0; color: #bdb29c; font-size: var(--ming-font-body, 16px); line-height: 1.55; }
.actor-memory-ledger-heading > button {
  min-width: 150px;
  min-height: 48px;
  display: grid;
  gap: 2px;
  padding: 8px 14px;
  color: #e6d6b1;
  border: 1px solid rgba(194, 156, 79, 0.48);
  background: #0b100d;
  font: inherit;
  cursor: pointer;
}
.actor-memory-ledger-heading > button b { font-size: var(--ming-font-small, 14px); }
.actor-memory-ledger-heading > button small { color: #9f9a88; font-size: var(--ming-font-small, 14px); }
.actor-memory-ledger-summary {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  border-bottom: 1px solid rgba(194, 156, 79, 0.23);
  background: #0b120f;
}
.actor-memory-ledger-summary > span { min-height: 62px; display: grid; place-content: center; gap: 1px; padding: 8px 14px; border-right: 1px solid rgba(194, 156, 79, 0.18); }
.actor-memory-ledger-summary small { color: #9e9581; font-size: var(--ming-font-small, 14px); }
.actor-memory-ledger-summary b { color: #d9bd72; font-size: 19px; }
.actor-memory-ledger-filters { display: grid; gap: 8px; padding: 12px 18px; border-bottom: 1px solid rgba(111, 157, 135, 0.27); background: #08100d; }
.actor-memory-ledger-filters > section { display: grid; grid-template-columns: 76px minmax(0, 1fr); align-items: center; gap: 10px; }
.actor-memory-ledger-filters > section > span { color: #bda15f; font-size: var(--ming-font-small, 14px); font-weight: 800; }
.actor-memory-ledger-filters > section > div { min-width: 0; display: flex; gap: 7px; overflow-x: auto; scrollbar-width: thin; }
.actor-memory-ledger-filters button {
  min-width: max-content;
  min-height: 44px;
  display: inline-flex;
  align-items: center;
  gap: 7px;
  padding: 7px 12px;
  color: #b8b09c;
  border: 1px solid rgba(190, 151, 76, 0.25);
  background: #0c120f;
  font: inherit;
  font-size: var(--ming-font-small, 14px);
  cursor: pointer;
}
.actor-memory-ledger-filters button small { min-width: 22px; color: #8da994; font-size: var(--ming-font-small, 14px); }
.actor-memory-ledger-filters button.active { color: #f0dfb7; border-color: #a78b4b; background: #2b2718; }
.actor-memory-ledger-list { min-height: 0; overflow-y: auto; display: grid; align-content: start; gap: 12px; padding: 16px 18px 22px; scrollbar-gutter: stable; background: #060c0a; }
/* Directory, messages, candidates and history add independent pages. Let the
   whole ledger scroll; a fixed five-row layout would collapse new sections. */
.actor-memory-ledger-modal > .actor-dialogue-history { min-height: 0; padding: 16px 18px; }
.actor-memory-ledger-modal .actor-dialogue-transcript { max-height: none; overflow: visible; }
.actor-memory-ledger-modal > .actor-memory-ledger-list { overflow: visible; }
.actor-memory-ledger-modal nav.actor-memory-ledger-filters[aria-label="翻阅旧卷"] {
  display: grid; grid-template-columns: minmax(0,1fr) auto minmax(0,1fr);
  align-items: center; gap: 10px; grid-column: 1 / -1; width: 100%;
  box-sizing: border-box; padding: 10px 12px;
}
.actor-memory-ledger-modal nav.actor-memory-ledger-filters[aria-label="翻阅旧卷"] > span { max-width: 18ch; text-align: center; font-size: 14px; line-height: 1.5; }
.actor-memory-ledger-modal nav.actor-memory-ledger-filters[aria-label="翻阅旧卷"] > button { min-width: 0; min-height: 44px; justify-content: center; white-space: normal; font-size: 16px; line-height: 1.5; }
.actor-memory-ledger-card { display: grid; gap: 12px; padding: 16px; border: 1px solid rgba(190, 151, 76, 0.29); border-left: 4px solid #9b7b3e; background: #0c120f; }
.actor-memory-ledger-card.confirmed { border-left-color: #6da086; }
.actor-memory-ledger-card.rejected { border-left-color: #a45247; }
.actor-memory-ledger-card.superseded { border-left-color: #817860; }
.actor-memory-ledger-card > header { display: grid; grid-template-columns: 44px minmax(0, 1fr); gap: 12px; align-items: start; }
.actor-memory-ledger-card > header > i { width: 40px; height: 40px; display: grid; place-items: center; color: #d4b86d; border: 1px solid currentColor; border-radius: 50%; font: 400 22px/1 var(--font-brush); font-style: normal; }
.actor-memory-ledger-card.confirmed > header > i { color: #8fc0a7; }
.actor-memory-ledger-card.rejected > header > i { color: #d28b7c; }
.actor-memory-ledger-card > header span { color: #a8a08e; font-size: var(--ming-font-small, 14px); }
.actor-memory-ledger-card h3 { margin: 4px 0 0; color: #eadfc6; font-size: 16px; line-height: 1.55; }
.actor-memory-source-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; }
.actor-memory-source-grid > span { min-width: 0; display: grid; gap: 4px; padding: 10px 12px; color: #b7ad99; border: 1px solid rgba(111, 157, 135, 0.18); background: #08100d; font-size: var(--ming-font-small, 14px); line-height: 1.5; overflow-wrap: anywhere; }
.actor-memory-source-grid b { color: #91b29e; font-size: var(--ming-font-small, 14px); }
.actor-memory-replacement { margin: 0; padding: 10px 12px; color: #c9c0aa; border-left: 3px solid #817860; background: #11140f; font-size: var(--ming-font-small, 14px); line-height: 1.55; }
.actor-memory-replacement b { margin-right: 9px; color: #d2b66d; }
.actor-memory-ledger-card > footer { display: grid; grid-template-columns: minmax(190px, 0.45fr) minmax(0, 1fr); gap: 10px; align-items: start; }
.actor-memory-source-link,
.actor-memory-account-source { min-height: 48px; display: grid; align-content: center; gap: 2px; padding: 8px 12px; border: 1px solid rgba(111, 157, 135, 0.35); background: #0d1712; text-align: left; }
.actor-memory-source-link { color: #cfe1d5; font: inherit; cursor: pointer; }
.actor-memory-source-link span,
.actor-memory-account-source span { color: #8eb19d; font-size: var(--ming-font-small, 14px); }
.actor-memory-source-link small,
.actor-memory-account-source b { color: #e0d3b6; font-size: var(--ming-font-small, 14px); }
.actor-memory-account-source.pending { border-color: rgba(190, 151, 76, 0.28); background: #14140e; }
.actor-memory-ledger-card details { border: 1px solid rgba(190, 151, 76, 0.2); background: #090f0c; }
.actor-memory-ledger-card summary { min-height: 46px; display: flex; align-items: center; padding: 8px 12px; color: #c8b986; font-size: var(--ming-font-small, 14px); cursor: pointer; }
.actor-memory-ledger-card details ol { display: grid; gap: 8px; margin: 0; padding: 0 12px 12px; list-style: none; }
.actor-memory-ledger-card details li { display: grid; grid-template-columns: 28px minmax(0, 1fr); gap: 8px; }
.actor-memory-ledger-card details li > i { color: #a9955f; font-style: normal; font-size: var(--ming-font-small, 14px); }
.actor-memory-ledger-card details li span { display: grid; gap: 2px; }
.actor-memory-ledger-card details li b { color: #d9cfb7; font-size: var(--ming-font-small, 14px); }
.actor-memory-ledger-card details li small { color: #9f9786; font-size: var(--ming-font-small, 14px); line-height: 1.45; }
.actor-memory-ledger-empty { min-height: 220px; display: grid; place-items: center; align-content: center; gap: 8px; padding: 28px; text-align: center; }
.actor-memory-ledger-empty i { color: #a88a45; font: 400 48px/1 var(--font-brush); font-style: normal; }
.actor-memory-ledger-empty h3 { margin: 0; color: #e5d8ba; font-size: 18px; }
.actor-memory-ledger-empty p { max-width: 520px; margin: 0; color: #a9a08d; font-size: var(--ming-font-body, 16px); line-height: 1.6; }
.actor-memory-ledger-boundary { min-height: 58px; display: flex; align-items: center; gap: 16px; padding: 10px 20px; border-top: 1px solid rgba(194, 156, 79, 0.3); background: #12150f; }
.actor-memory-ledger-boundary b { flex: 0 0 auto; color: #d6b967; font-size: var(--ming-font-small, 14px); }
.actor-memory-ledger-boundary span { color: #aaa18d; font-size: var(--ming-font-small, 14px); line-height: 1.5; }
.archive-memory-source { margin: 14px 0; padding: 12px; border: 1px solid rgba(111, 157, 135, 0.45); background: #0b1511; }
.archive-memory-source > span { display: block; margin-bottom: 8px; color: #9bc2aa; font-size: var(--ming-font-small, 14px); font-weight: 800; }
.archive-memory-source ol { margin: 0; padding: 0; list-style: none; }
.archive-memory-source.missing p { margin: 0; color: #b4aa96; font-size: var(--ming-font-body, 16px); line-height: 1.6; }
.archive-entry.memory-source-focus { outline: 2px solid rgba(126, 177, 149, 0.78); outline-offset: 2px; }

@media (max-width: 760px) {
  .actor-memory-ledger-backdrop { padding: 0; }
  .actor-memory-ledger-modal { width: 100%; height: 100dvh; border: 0; }
  .actor-memory-ledger-heading { min-height: 126px; grid-template-columns: 72px minmax(0, 1fr); gap: 12px; padding: 52px 14px 12px; }
  .actor-memory-ledger-portrait { width: 68px; height: 68px; }
  .actor-memory-ledger-heading h2 { font-size: 34px; }
  .actor-memory-ledger-heading > button { position: absolute; top: 8px; right: 10px; min-width: 132px; min-height: 44px; }
  .actor-memory-ledger-summary { grid-template-columns: repeat(4, minmax(74px, 1fr)); overflow-x: auto; }
  .actor-memory-ledger-summary > span { min-height: 56px; padding: 7px 9px; }
  .actor-memory-ledger-filters { padding: 10px 12px; }
  .actor-memory-ledger-filters > section { grid-template-columns: 1fr; gap: 5px; }
  .actor-memory-ledger-list { padding: 12px; }
  .actor-memory-ledger-card { padding: 13px; }
  .actor-memory-source-grid,
  .actor-memory-ledger-card > footer { grid-template-columns: 1fr; }
  .actor-memory-ledger-boundary { align-items: flex-start; flex-direction: column; gap: 3px; padding: 9px 12px; }
}

/* 彩蛋特殊结局使用完整横幅画面：终幕自行滚动，画面不再被桌面双栏或移动端最小高度裁切。 */
.campaign-ended .jinyi-ending-terminal.special-ending {
  display: block;
  height: 100%;
  min-height: 0;
  overflow-x: hidden;
  overflow-y: auto;
  scrollbar-gutter: stable;
  scrollbar-width: thin;
  scrollbar-color: rgba(160, 68, 54, 0.62) #080c0b;
}

.campaign-ended .jinyi-ending-terminal.special-ending > figure {
  width: 100%;
  height: auto;
  min-height: 0;
  aspect-ratio: 1672 / 941;
}

.campaign-ended .jinyi-ending-terminal.special-ending > figure::after {
  background: linear-gradient(90deg, rgba(4, 7, 7, 0.76) 0%, rgba(4, 7, 7, 0.3) 34%, transparent 58%);
}

.campaign-ended .jinyi-ending-terminal.special-ending > figure img,
.campaign-ended .jinyi-ending-terminal.special-ending.tone-costly > figure img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center center;
  filter: saturate(0.84) contrast(1.06) brightness(0.84);
}

.campaign-ended .jinyi-ending-terminal.special-ending figcaption {
  right: 54%;
  bottom: 8%;
  left: 5%;
}

.campaign-ended .jinyi-ending-terminal.special-ending .jinyi-ending-terminal-copy {
  overflow: visible;
  padding: clamp(26px, 3.2vw, 48px);
  border-top: 1px solid rgba(166, 67, 51, 0.34);
  border-left: 0;
}

@media (max-width: 620px) {
  .campaign-ended .jinyi-ending-terminal.special-ending > figure {
    height: auto;
    min-height: 0;
    aspect-ratio: 1672 / 941;
  }

  .campaign-ended .jinyi-ending-terminal.special-ending figcaption {
    right: 46%;
    bottom: 7%;
    left: 4%;
  }

  .campaign-ended .jinyi-ending-terminal.special-ending figcaption span,
  .campaign-ended .jinyi-ending-terminal.special-ending figcaption p {
    font-size: var(--ming-font-body, 16px);
    letter-spacing: 0.08em;
  }

  .campaign-ended .jinyi-ending-terminal.special-ending figcaption h2 {
    margin: 5px 0 3px;
    font-size: clamp(29px, 9vw, 38px);
    line-height: 1;
  }

  .campaign-ended .jinyi-ending-terminal.special-ending .jinyi-ending-terminal-copy {
    padding: 22px 16px 30px;
  }
}

/* 锦衣行扩展模式徽标：母品牌之后显示，普通命途不渲染。 */
.campaign-mode-mark {
  flex: 0 0 auto;
  height: 42px;
  display: inline-flex;
  align-self: center;
  align-items: center;
  gap: 5px;
  padding: 2px 10px 2px 3px;
  color: #ead7aa;
  border: 1px solid rgba(181, 133, 66, 0.54);
  border-left: 3px solid #9e4435;
  border-radius: 5px;
  background: #151715;
  box-shadow: inset 0 0 0 1px rgba(230, 199, 132, 0.05), 0 5px 16px rgba(0, 0, 0, 0.28);
  font-family: var(--font-body);
  line-height: 1;
  letter-spacing: 0;
  text-shadow: none;
  vertical-align: middle;
}

.campaign-mode-mark > img {
  width: 37px;
  height: 37px;
  flex: 0 0 37px;
  display: block;
  object-fit: contain;
  filter: saturate(0.88) contrast(1.06) brightness(0.94);
}

.campaign-mode-mark > span {
  display: grid;
  align-content: center;
  gap: 2px;
  white-space: nowrap;
}

.campaign-mode-mark b {
  color: #ead8ae;
  font-family: var(--font-brush);
  font-size: 18px;
  font-weight: 400;
  line-height: 1;
  letter-spacing: 0.12em;
}

.campaign-mode-mark em {
  color: #bd796b;
  font-family: var(--font-body);
  font-size: var(--ming-font-small, 14px);
  font-weight: 760;
  font-style: normal;
  line-height: 1;
  letter-spacing: 0.14em;
}

@media (min-width: 761px) and (max-width: 1180px) {
  .campaign-mode-mark {
    height: 38px;
    gap: 4px;
    padding-right: 7px;
  }

  .campaign-mode-mark > img {
    width: 33px;
    height: 33px;
    flex-basis: 33px;
  }

  .campaign-mode-mark b { font-size: 16px; }
}

@media (max-width: 920px) {
  .campaign-brand h1 .campaign-mode-mark { display: inline-flex; }
}

@media (max-width: 520px) {
  .jinyi-campaign .campaign-brand .brand-emblem { display: none; }

  .jinyi-campaign .campaign-brand h1 {
    min-width: 0;
    display: flex;
    align-items: center;
    gap: 5px;
    overflow: visible;
  }

  .campaign-mode-mark {
    height: 32px;
    gap: 2px;
    padding: 1px 5px 1px 2px;
    border-left-width: 2px;
  }

  .campaign-mode-mark > img {
    width: 27px;
    height: 27px;
    flex-basis: 27px;
  }

  .campaign-mode-mark b {
    font-size: 14px;
    letter-spacing: 0.04em;
  }

  .campaign-mode-mark em { display: none; }
}

@media (max-width: 360px) {
  .jinyi-campaign .campaign-brand h1 { font-size: 18px; }
  .campaign-mode-mark { height: 29px; }
  .campaign-mode-mark > img { width: 24px; height: 24px; flex-basis: 24px; }
  .campaign-mode-mark b { font-size: var(--ming-font-small, 14px); }
}

/* 锦衣行品牌延展：主菜单与永久终卷共用正式徽记，文字保持 DOM 真字。 */
.jinyi-mode-lockup {
  display: inline-flex;
  align-items: center;
  gap: 7px;
  color: var(--folio-ink, #e7d5ad);
  border: 1px solid rgba(181, 133, 66, 0.54);
  border-left: 3px solid #9e4435;
  border-radius: 5px;
  background: var(--folio-card, #111614);
  box-shadow: inset 0 0 0 1px rgba(230, 199, 132, 0.05), 0 8px 22px rgba(0, 0, 0, 0.3);
  line-height: 1;
}

.jinyi-mode-lockup > img {
  display: block;
  object-fit: contain;
  filter: saturate(0.88) contrast(1.06) brightness(0.96);
}

.jinyi-mode-lockup > span {
  display: grid;
  align-content: center;
  gap: 3px;
  white-space: nowrap;
}

.jinyi-mode-lockup b {
  color: var(--folio-ink, #ead8ae);
  font-family: var(--font-brush);
  font-weight: 400;
  letter-spacing: 0.12em;
}

.jinyi-mode-lockup em {
  color: var(--folio-muted, #bd796b);
  font-family: var(--font-body);
  font-size: var(--ming-font-small, 14px);
  font-weight: 760;
  font-style: normal;
  letter-spacing: 0.14em;
}

.main-menu-title-lockup {
  display: flex;
  align-items: flex-end;
  gap: 18px;
  min-width: 0;
}

.main-menu-jinyi-mode-mark {
  flex: 0 0 auto;
  height: 54px;
  margin-bottom: 4px;
  padding: 3px 13px 3px 4px;
}

.main-menu-jinyi-mode-mark > img { width: 47px; height: 47px; }
.main-menu-jinyi-mode-mark b { font-size: 22px; }

.main-menu-chapter-insignia {
  width: 29px;
  height: 29px;
  display: block;
  object-fit: contain;
  filter: saturate(0.84) contrast(1.08) brightness(0.95);
}

.main-menu-shell[data-menu-chapter="jinyi"] .main-menu-chapter-option.active {
  border-color: rgba(116, 159, 150, 0.52);
  background: #172825;
  box-shadow: inset 2px 0 #70a095;
}

.main-menu-shell[data-menu-chapter="jinyi"] .main-menu-action.primary {
  border-color: rgba(142, 177, 160, 0.52);
  border-left-color: #719c90;
  background: #0d1715;
  box-shadow: inset 3px 0 #649388, 0 12px 30px rgba(0, 0, 0, 0.26);
}

.main-menu-chapter-option { min-height: 56px; }
.main-menu-kicker { font-size: var(--ming-font-small, 14px); }
.main-menu-product-name span,
.main-menu-lineage small,
.main-menu-token small { font-size: var(--ming-font-small, 14px); }
.main-menu-product-name strong { font-size: 14px; }
.main-menu-chapter-option strong { font-size: var(--ming-font-small, 14px); }
.main-menu-chapter-option small,
.main-menu-action small,
.main-menu-footer { font-size: var(--ming-font-small, 14px); }
.main-menu-mobile-manifesto > header small,
.main-menu-mobile-manifesto > p { font-size: var(--ming-font-small, 14px); }

.jinyi-ending-archive-heading { min-width: 0; }

.jinyi-ending-archive-heading > div {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr);
  align-items: center;
  column-gap: 12px;
}

.jinyi-ending-archive-mode-mark {
  grid-column: 1;
  grid-row: 1 / 3;
  justify-self: start;
  height: 44px;
  padding: 2px 10px 2px 3px;
}

.jinyi-ending-archive-mode-mark > img { width: 39px; height: 39px; }
.jinyi-ending-archive-mode-mark b { font-size: 18px; }
.jinyi-ending-archive-kicker,
.jinyi-ending-archive-heading h2 { grid-column: 2; }

.jinyi-ending-archive-panel > header span,
.jinyi-ending-archive-progress span,
.jinyi-ending-archive-entry figcaption span,
.jinyi-ending-archive-entry figcaption b,
.jinyi-ending-archive-copy > span,
.jinyi-ending-archive-copy > small,
.jinyi-ending-archive-copy > footer small,
.jinyi-ending-archive-copy > footer button,
.jinyi-ending-archive-protagonist small,
.jinyi-ending-archive-protagonist em,
.jinyi-ending-archive-protagonist > b,
.jinyi-ending-archive-entry.locked > figure span,
.jinyi-ending-archive-detail-art figcaption span,
.jinyi-ending-archive-detail-art figcaption p,
.jinyi-ending-archive-detail-copy > header span,
.jinyi-ending-archive-detail-ledger b,
.jinyi-ending-archive-detail-protagonist > div > span,
.jinyi-ending-archive-detail-protagonist small,
.jinyi-ending-archive-detail-copy > footer {
  font-size: var(--ming-font-small, 14px);
}

.jinyi-ending-archive-panel > header p,
.jinyi-ending-archive-copy > p,
.jinyi-ending-archive-detail-ledger p,
.jinyi-ending-archive-detail-protagonist p { font-size: var(--ming-font-body, 16px); }

.jinyi-ending-archive-protagonist strong { font-size: 14px; }
.jinyi-ending-archive-detail-copy > header strong { font-size: var(--ming-font-small, 14px); }
.jinyi-ending-archive-panel > header > button,
.jinyi-ending-archive-copy > footer button,
.jinyi-ending-archive-detail-copy > header button { min-height: 44px; }

.jinyi-ending-archive-entry { min-height: 244px; }
.jinyi-ending-archive-entry > figure { min-height: 244px; }

@media (max-width: 760px) {
  .main-menu-title-lockup { gap: 10px; }
  .main-menu-jinyi-mode-mark {
    height: 42px;
    margin-bottom: 2px;
    padding: 2px 7px 2px 3px;
  }
  .main-menu-jinyi-mode-mark > img { width: 36px; height: 36px; }
  .main-menu-jinyi-mode-mark b { font-size: 17px; }
  .main-menu-jinyi-mode-mark em { display: none; }
  .main-menu-chapter-option { min-height: 58px; }
  .main-menu-chapter-option strong,
  .main-menu-chapter-option small,
  .main-menu-action small,
  .main-menu-footer { font-size: var(--ming-font-small, 14px); }
  .main-menu-chapter-insignia { width: 27px; height: 27px; }

  .jinyi-ending-archive-panel > header {
    grid-template-columns: minmax(0, 1fr) 74px;
    grid-template-rows: auto auto;
    min-height: 214px;
    padding-top: 14px;
  }
  .jinyi-ending-archive-heading { grid-column: 1; grid-row: 1; }
  .jinyi-ending-archive-heading > div { column-gap: 8px; }
  .jinyi-ending-archive-mode-mark { height: 38px; padding-right: 7px; }
  .jinyi-ending-archive-mode-mark > img { width: 33px; height: 33px; }
  .jinyi-ending-archive-mode-mark b { font-size: 15px; }
  .jinyi-ending-archive-mode-mark em { display: none; }
  .jinyi-ending-archive-panel > header p { max-width: 100%; font-size: var(--ming-font-body, 16px); }
  .jinyi-ending-archive-progress {
    grid-column: 1 / -1;
    grid-row: 2;
    min-width: 0;
    display: flex;
    align-items: baseline;
    gap: 13px;
    padding: 9px 0 0;
    border-top: 1px solid rgba(181, 148, 82, 0.18);
    border-left: 0;
    text-align: left;
  }
  .jinyi-ending-archive-progress span { margin-top: 0; }
  .jinyi-ending-archive-panel > header > button {
    position: static;
    grid-column: 2;
    grid-row: 1;
    align-self: start;
  }
  .jinyi-ending-archive-entry,
  .jinyi-ending-archive-entry > figure { min-height: 232px; }
  .jinyi-ending-archive-copy > p,
  .jinyi-ending-archive-detail-summary,
  .jinyi-ending-archive-detail-ledger p,
  .jinyi-ending-archive-detail-protagonist p { font-size: var(--ming-font-body, 16px); }
}

@media (max-width: 380px) {
  .main-menu-title-lockup { gap: 7px; }
  .main-menu-jinyi-mode-mark { height: 38px; padding-right: 5px; }
  .main-menu-jinyi-mode-mark > img { width: 32px; height: 32px; }
  .main-menu-jinyi-mode-mark b { font-size: 15px; letter-spacing: 0.05em; }
}

/* V0.9.5 · 天机双入口、账号资格与玩家文案收口 */
.settings-panel > header button,
.settings-panel > footer button,
.settings-panel .settings-code-redemption button { min-height: 46px; }

.tianji-mode-card {
  position: relative;
  min-height: 104px;
  padding: 15px 16px;
  border-color: rgba(182, 151, 86, 0.32);
  background: #0c1210;
  transition: border-color 150ms ease, background-color 150ms ease, transform 150ms ease;
}

.tianji-mode-card:hover,
.tianji-mode-card:focus-visible {
  border-color: rgba(215, 187, 114, 0.68);
  background: #111915;
  outline: none;
}

.tianji-mode-card:focus-visible { box-shadow: 0 0 0 2px rgba(215, 187, 114, 0.2); }
.tianji-mode-card.active { border-color: #628e78; background: #15231d; }
.tianji-mode-card b { display: flex; align-items: center; justify-content: space-between; gap: 10px; }
.tianji-mode-card b i {
  padding: 3px 7px;
  color: #a9c9b9;
  border: 1px solid rgba(98, 142, 120, 0.48);
  background: #17271f;
  font-family: var(--font-body);
  font-size: var(--ming-font-small, 14px);
  font-style: normal;
  letter-spacing: 0.06em;
}

.tianji-mode-card.locked {
  color: #a79d8c;
  border-color: rgba(156, 126, 72, 0.42);
  background: #14130f;
}

.tianji-mode-card.locked:hover,
.tianji-mode-card.locked:focus-visible { border-color: #b6934d; background: #191711; }
.tianji-mode-card.locked b i { color: #d1b46f; border-color: rgba(190, 151, 70, 0.54); background: #2a2112; }
.tianji-mode-card.locked em { color: #d6bd7b; }

.cloud-service-card {
  display: grid;
  grid-template-columns: 48px minmax(0, 1fr);
  align-items: center;
  gap: 13px;
  padding: 13px 15px;
  border: 1px solid rgba(99, 145, 121, 0.42);
  border-left: 3px solid #628e78;
  background: #0b1511;
}

.cloud-service-seal {
  width: 46px;
  height: 46px;
  display: grid;
  place-items: center;
  color: #b9d7c7;
  border: 1px solid rgba(113, 164, 138, 0.52);
  background: #14251d;
  font-family: var(--font-brush);
  font-size: 26px;
}

.cloud-service-copy { min-width: 0; display: grid; gap: 8px; }
.cloud-service-copy > header,
.cloud-service-copy > footer { display: flex; align-items: center; justify-content: space-between; gap: 12px; }
.cloud-service-copy > header span { color: #7eaa94; font-size: var(--ming-font-small, 14px); font-weight: 800; letter-spacing: 0.11em; }
.cloud-service-copy > header h3 { margin: 2px 0 0; color: var(--paper-100); font-size: 16px; }
.cloud-service-copy > header b { flex: none; color: #c8d9cf; font-size: var(--ming-font-small, 14px); }
.cloud-service-copy > footer { color: #9b9a8d; font-size: var(--ming-font-small, 14px); line-height: 1.5; }
.cloud-service-copy > footer em { flex: none; color: #bda66f; font-style: normal; }
.cloud-storage-meter { height: 7px; overflow: hidden; border: 1px solid rgba(117, 156, 136, 0.28); background: #070d0a; }
.cloud-storage-meter > i { min-width: 2px; height: 100%; display: block; background: #6e9f85; }

.byok-activation-card {
  grid-template-columns: minmax(0, 0.9fr) minmax(360px, 1.1fr);
  align-items: stretch;
  gap: 16px;
  border-color: rgba(180, 139, 65, 0.42);
  background: #13140f;
  scroll-margin: 18px;
}

.byok-activation-card:focus-visible { outline: 2px solid rgba(215, 187, 114, 0.46); outline-offset: 2px; }
.byok-activation-card > header { display: flex; flex-direction: column; justify-content: center; min-width: 0; }
.byok-activation-card > header > span { color: var(--gold-400); font-size: var(--ming-font-small, 14px); font-weight: 800; letter-spacing: 0.12em; }
.byok-activation-card > header h3 { font-size: 20px; }
.byok-activation-card > header p { font-size: var(--ming-font-body, 16px); }

.byok-price-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 9px; }
.byok-price-grid article {
  position: relative;
  display: grid;
  align-content: center;
  min-height: 112px;
  padding: 13px 14px;
  border: 1px solid rgba(181, 148, 82, 0.3);
  background: #0a100d;
}

.byok-price-grid article.discount { border-color: rgba(159, 73, 58, 0.62); background: #211411; }
.byok-price-grid article > span { color: var(--paper-300); font-size: var(--ming-font-small, 14px); font-weight: 800; }
.byok-price-grid article > strong { margin-top: 3px; color: var(--paper-100); font-size: 30px; line-height: 1; }
.byok-price-grid article > strong small { margin-right: 2px; color: var(--gold-400); font-size: 14px; }
.byok-price-grid article > del { position: absolute; top: 39px; right: 13px; color: #897e6d; font-size: var(--ming-font-small, 14px); }
.byok-price-grid article > em { margin-top: 7px; color: #b8ad99; font-size: var(--ming-font-small, 14px); font-style: normal; line-height: 1.45; }
.byok-price-grid article.discount > em { color: #d4b36e; }

.token-package-ledger > .settings-code-redemption {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  align-items: end;
  gap: 10px;
  margin: 14px 0 0;
  padding-top: 13px;
  border-top: 1px solid rgba(181, 148, 82, 0.2);
}

.settings-code-redemption label { min-width: 0; }
.settings-code-redemption button { min-width: 150px; }

@media (max-width: 760px) {
  .cloud-service-card { grid-template-columns: 42px minmax(0, 1fr); padding: 12px; }
  .cloud-service-seal { width: 40px; height: 40px; font-size: 23px; }
  .cloud-service-copy > header { align-items: flex-start; }
  .cloud-service-copy > header h3 { font-size: 15px; }
  .cloud-service-copy > header b,
  .cloud-service-copy > footer { font-size: var(--ming-font-small, 14px); }
  .cloud-service-copy > footer { align-items: flex-start; flex-direction: column; gap: 2px; }
  .tianji-mode-grid { grid-template-columns: 1fr; }
  .tianji-mode-card { min-height: 96px; }
  .byok-activation-card { grid-template-columns: 1fr; }
  .byok-price-grid { grid-template-columns: 1fr 1fr; }
  .token-package-ledger > .settings-code-redemption { grid-template-columns: 1fr; }
  .settings-code-redemption button { width: 100%; min-width: 0; min-height: 46px; }
}

@media (max-width: 420px) {
  .byok-price-grid { grid-template-columns: 1fr; }
  .byok-price-grid article { min-height: 98px; }
}

/* V0.9.6 · 词元不足阻断与下一步 */
.token-shortage-backdrop {
  position: fixed;
  inset: 0;
  z-index: 1800;
  display: grid;
  place-items: center;
  padding: 24px;
  background: rgba(1, 6, 5, 0.82);
  backdrop-filter: blur(5px);
}

.token-shortage-panel {
  width: min(720px, 94vw);
  max-height: min(850px, calc(100dvh - 36px));
  overflow: auto;
  color: #e8dfca;
  border: 1px solid rgba(198, 160, 78, 0.68);
  box-shadow: 0 22px 70px rgba(0, 0, 0, 0.72), inset 0 0 0 1px rgba(211, 177, 101, 0.08);
  background: #0d1310;
}

.token-shortage-panel > header {
  display: grid;
  grid-template-columns: 54px minmax(0, 1fr) auto;
  align-items: center;
  gap: 15px;
  padding: 22px 24px;
  border-bottom: 1px solid rgba(184, 145, 67, 0.34);
  background: #15150f;
}

.token-shortage-panel > header > i {
  display: grid;
  place-items: center;
  width: 50px;
  height: 50px;
  color: #e5c66f;
  border: 1px solid #8e632a;
  border-radius: 50%;
  background: #2b1b11;
  font-family: var(--font-display);
  font-size: 26px;
  font-style: normal;
}

.token-shortage-panel > header span {
  color: #bc9852;
  font-size: var(--ming-font-small, 14px);
  font-weight: 800;
  letter-spacing: 0.14em;
}

.token-shortage-panel > header h2 {
  margin: 3px 0 0;
  color: #f1e6cf;
  font-family: var(--font-display);
  font-size: clamp(30px, 4vw, 42px);
  line-height: 1.05;
  letter-spacing: 0.05em;
}

.token-shortage-panel > header button {
  min-height: 44px;
  padding: 0 15px;
  color: #bdb29e;
  border: 1px solid rgba(169, 139, 80, 0.4);
  background: #101410;
  font-size: var(--ming-font-small, 14px);
}

.token-shortage-copy { padding: 23px 24px 12px; }
.token-shortage-panel p { margin: 0; font-size: var(--ming-font-body, 16px); line-height: 1.85; }
.token-shortage-copy > p { color: #efe4ce; font-size: clamp(17px, 2.2vw, 21px); font-weight: 800; }
.token-shortage-copy > small { display: block; margin-top: 8px; color: #9fc3b1; font-size: var(--ming-font-small, 14px); line-height: 1.6; }

.token-shortage-retained {
  margin: 4px 24px 14px;
  padding: 13px 15px;
  border-left: 3px solid #a6503d;
  background: #191413;
}

.token-shortage-retained > span { color: #cfaa61; font-size: var(--ming-font-small, 14px); font-weight: 800; letter-spacing: 0.1em; }
.token-shortage-retained > p { margin-top: 5px; color: #d8cebb; }

.token-shortage-balance {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 18px;
  margin: 0 24px;
  padding: 14px 0;
  border-top: 1px solid rgba(176, 142, 75, 0.26);
}

.token-shortage-balance > span { display: flex; align-items: baseline; gap: 10px; }
.token-shortage-balance small { color: #9d917d; font-size: var(--ming-font-small, 14px); }
.token-shortage-balance b { color: #e0bb63; font-size: 20px; }
.token-shortage-balance em { color: #a99f8e; font-size: var(--ming-font-small, 14px); font-style: normal; text-align: right; }

.token-shortage-actions {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 10px;
  padding: 6px 24px 24px;
}

.token-shortage-actions button {
  display: grid;
  grid-template-columns: 40px minmax(0, 1fr) auto;
  align-items: center;
  gap: 11px;
  min-height: 68px;
  padding: 10px 14px;
  color: #dfd5c1;
  border: 1px solid rgba(163, 136, 82, 0.5);
  background: #131913;
  text-align: left;
}

.token-shortage-actions button.primary { border-color: #b08a42; background: #221d11; }
.token-shortage-actions button:hover,
.token-shortage-actions button:focus-visible { border-color: #e1bf69; background: #282315; }
.token-shortage-actions button > i { display: grid; place-items: center; width: 38px; height: 38px; color: #d7b45f; border: 1px solid rgba(197, 158, 78, 0.6); border-radius: 50%; font-family: var(--font-display); font-size: 19px; font-style: normal; }
.token-shortage-actions button > span { display: grid; min-width: 0; gap: 2px; }
.token-shortage-actions button b { color: #efe1c5; font-size: 16px; }
.token-shortage-actions button small { overflow: hidden; color: #9eb4a9; font-size: var(--ming-font-small, 14px); line-height: 1.45; text-overflow: ellipsis; white-space: nowrap; }
.token-shortage-actions button > strong { color: #cfac5e; font-size: 25px; font-weight: 400; }

@media (max-width: 640px) {
  .token-shortage-backdrop { place-items: end center; padding: 0; }
  .token-shortage-panel { width: 100%; max-height: min(88dvh, 760px); border-right: 0; border-bottom: 0; border-left: 0; }
  .token-shortage-panel > header { grid-template-columns: 46px minmax(0, 1fr) auto; gap: 11px; padding: 17px 16px; }
  .token-shortage-panel > header > i { width: 44px; height: 44px; font-size: 23px; }
  .token-shortage-panel > header button { padding: 0 11px; }
  .token-shortage-copy { padding: 19px 17px 11px; }
  .token-shortage-retained { margin: 3px 17px 12px; }
  .token-shortage-balance { align-items: flex-start; margin: 0 17px; }
  .token-shortage-balance > span { display: grid; gap: 2px; }
  .token-shortage-balance em { max-width: 170px; }
  .token-shortage-actions { grid-template-columns: 1fr; padding: 5px 17px calc(17px + env(safe-area-inset-bottom)); }
  .token-shortage-actions button { min-height: 58px; }
}

/* 普通命途重大史事：史日、地区传播、正文和专图必须同时抵达玩家。 */
.historical-notice-backdrop {
  position: fixed;
  z-index: 1540;
  inset: 0;
  display: grid;
  place-items: center;
  overflow: auto;
  padding: 24px;
  background: rgba(2, 5, 4, 0.94);
  backdrop-filter: blur(8px);
  animation: modal-fade 170ms ease-out both;
}
.historical-notice-backdrop:focus { outline: none; }
.historical-notice-panel {
  width: min(1320px, 100%);
  max-height: calc(100svh - 48px);
  display: grid;
  grid-template-columns: minmax(0, 1.16fr) minmax(430px, 0.84fr);
  overflow: hidden;
  color: #d9cbaa;
  border: 1px solid rgba(204, 169, 91, 0.58);
  background: #09100c;
  box-shadow: 0 32px 110px rgba(0, 0, 0, 0.86), inset 4px 0 #713d32;
  animation: modal-rise 210ms ease-out both;
}
.historical-notice-panel > figure {
  position: relative;
  min-width: 0;
  min-height: min(720px, calc(100svh - 48px));
  overflow: hidden;
  margin: 0;
  background: #070a08;
}
.historical-notice-panel > figure::after {
  content: '';
  position: absolute;
  z-index: 2;
  inset: 0;
  pointer-events: none;
  background: linear-gradient(0deg, rgba(3, 7, 5, 0.9), transparent 52%);
}
.historical-notice-image-main {
  width: 100%;
  height: 100%;
  display: block;
  object-fit: cover;
  object-position: var(--historical-notice-focal, center center);
}
.historical-notice-panel figcaption {
  position: absolute;
  z-index: 3;
  right: 24px;
  bottom: 22px;
  left: 24px;
  display: flex;
  align-items: end;
  justify-content: space-between;
  gap: 18px;
  padding-top: 16px;
  border-top: 1px solid rgba(229, 205, 143, 0.48);
}
.historical-notice-panel figcaption span { color: #f0dfb3; font-size: 14px; font-weight: 760; letter-spacing: 0.16em; }
.historical-notice-panel figcaption small { color: #c7b995; font-size: var(--ming-font-small, 14px); text-align: right; }
.historical-notice-copy {
  min-width: 0;
  max-height: calc(100svh - 48px);
  display: grid;
  align-content: start;
  gap: 16px;
  overflow-y: auto;
  padding: 34px 34px 28px;
  overscroll-behavior: contain;
  scrollbar-gutter: stable;
  scrollbar-width: auto;
  scrollbar-color: #695a3b #0a110d;
}
.historical-notice-copy::-webkit-scrollbar { width: 12px; }
.historical-notice-copy::-webkit-scrollbar-track { background: #0a110d; box-shadow: inset 1px 0 rgba(214, 177, 96, 0.12); }
.historical-notice-copy::-webkit-scrollbar-thumb { border: 3px solid #0a110d; border-radius: 10px; background: #8e7545; }
.historical-notice-copy::-webkit-scrollbar-thumb:hover { background: #b59452; }
.historical-notice-copy > header { padding-bottom: 18px; border-bottom: 1px solid rgba(198, 161, 82, 0.34); }
.historical-notice-copy > header > span,
.historical-notice-date > span,
.historical-notice-rule > span { color: #c9a55d; font-size: var(--ming-font-small, 14px); font-weight: 780; letter-spacing: 0.16em; }
.historical-notice-copy h2 {
  margin: 9px 0 12px;
  color: #f1e1b9;
  font-family: var(--font-brush);
  font-size: clamp(38px, 4.3vw, 62px);
  font-weight: 400;
  line-height: 1.08;
  letter-spacing: 0.06em;
}
.historical-notice-copy > header p { margin: 0; color: #c6bca4; font-size: var(--ming-font-body, 16px); line-height: 1.78; }
.historical-notice-standard { display: flex; align-items: center; gap: 12px; padding: 9px 12px; border: 1px solid rgba(190, 151, 73, 0.35); background: rgba(26, 27, 18, 0.8); }
.historical-notice-standard img { width: 76px; height: 48px; object-fit: cover; border: 1px solid rgba(213, 178, 101, 0.54); }
.historical-notice-standard span { min-width: 0; display: grid; gap: 3px; }
.historical-notice-standard small { color: #9fa99d; font-size: var(--ming-font-small, 14px); letter-spacing: 0.12em; }
.historical-notice-standard b { color: #ead9ad; font-size: 15px; }
.historical-notice-facts { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1px; margin: 0; border: 1px solid rgba(180, 146, 75, 0.3); background: rgba(180, 146, 75, 0.3); }
.historical-notice-facts > div { min-width: 0; padding: 8px 10px; background: #101712; }
.historical-notice-facts dt { color: #909f94; font-size: var(--ming-font-small, 14px); }
.historical-notice-facts dd { margin: 4px 0 0; color: #e0d1ad; font-size: var(--ming-font-small, 14px); line-height: 1.45; overflow-wrap: anywhere; }
.historical-notice-date { display: grid; gap: 5px; padding: 13px 15px; border-left: 3px solid #985b46; background: rgba(36, 34, 24, 0.72); }
.historical-notice-date b { color: #ead9ad; font-size: 17px; font-weight: 620; }
.historical-notice-date small { color: #9fa99d; font-size: var(--ming-font-small, 14px); line-height: 1.55; }
.historical-notice-consequences { display: grid; gap: 8px; margin: 0; padding: 0; list-style: none; }
.historical-notice-consequences li { min-width: 0; display: grid; grid-template-columns: 36px minmax(0, 1fr); align-items: start; gap: 11px; padding: 10px 12px; border: 1px solid rgba(172, 139, 72, 0.28); background: rgba(13, 22, 16, 0.76); }
.historical-notice-consequences li span { width: 33px; height: 33px; display: grid; place-items: center; color: #ccb06d; border: 1px solid rgba(204, 176, 109, 0.58); border-radius: 50%; font-size: var(--ming-font-small, 14px); }
.historical-notice-consequences li p { margin: 3px 0 0; color: #c5bba1; font-size: var(--ming-font-body, 16px); line-height: 1.58; }
.historical-notice-rule { padding: 13px 15px; border: 1px solid rgba(93, 151, 122, 0.42); background: rgba(12, 31, 22, 0.66); }
.historical-notice-rule p { margin: 7px 0 8px; color: #c9c4ad; font-size: var(--ming-font-body, 16px); line-height: 1.65; }
.historical-notice-rule b { display: block; color: #86b89f; font-size: var(--ming-font-small, 14px); line-height: 1.55; }
.historical-notice-boundary { padding: 11px 13px; border-left: 3px solid rgba(163, 128, 72, 0.8); background: rgba(30, 25, 17, 0.78); }
.historical-notice-boundary span { color: #c7a45e; font-size: var(--ming-font-small, 14px); font-weight: 800; letter-spacing: 0.14em; }
.historical-notice-boundary p { margin: 5px 0 0; color: #ada58f; font-size: var(--ming-font-body, 16px); line-height: 1.55; }
.historical-notice-copy footer { display: flex; justify-content: flex-end; padding-top: 2px; }
.historical-notice-copy footer button { min-width: 220px; min-height: 52px; padding: 10px 20px; color: #f0dfb8; border: 1px solid rgba(204, 169, 91, 0.64); background: #254335; font-size: 14px; font-weight: 720; cursor: pointer; }
.historical-notice-copy footer button:hover,
.historical-notice-copy footer button:focus-visible { border-color: #e0c178; background: #315a46; outline: 2px solid rgba(224, 193, 120, 0.28); outline-offset: 2px; }

@media (max-width: 980px) {
  .historical-notice-backdrop { place-items: start center; }
  .historical-notice-panel { grid-template-columns: 1fr; overflow: visible; }
  .historical-notice-panel > figure { min-height: 0; aspect-ratio: 16 / 8.7; }
  .historical-notice-copy { max-height: none; overflow: visible; }
}

@media (max-width: 620px) {
  .historical-notice-backdrop { display: block; padding: 0; }
  .historical-notice-panel { width: 100%; min-height: 100dvh; border: 0; box-shadow: none; }
  .historical-notice-panel > figure { aspect-ratio: 16 / 9.6; }
  .historical-notice-panel figcaption { right: 14px; bottom: 12px; left: 14px; display: grid; gap: 4px; padding-top: 9px; }
  .historical-notice-panel figcaption span { font-size: var(--ming-font-small, 14px); }
  .historical-notice-panel figcaption small { font-size: var(--ming-font-small, 14px); text-align: left; }
  .historical-notice-copy { gap: 13px; padding: 22px 16px calc(20px + env(safe-area-inset-bottom)); }
  .historical-notice-copy > header { padding-bottom: 14px; }
  .historical-notice-copy h2 { margin: 7px 0 10px; font-size: clamp(34px, 10.5vw, 44px); }
  .historical-notice-copy > header p { font-size: var(--ming-font-body, 16px); line-height: 1.7; }
  .historical-notice-facts { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .historical-notice-date { padding: 11px 12px; }
  .historical-notice-date b { font-size: 16px; }
  .historical-notice-consequences li { grid-template-columns: 32px minmax(0, 1fr); gap: 9px; padding: 9px; }
  .historical-notice-consequences li span { width: 30px; height: 30px; }
  .historical-notice-consequences li p { margin-top: 2px; font-size: var(--ming-font-body, 16px); }
  .historical-notice-rule p { font-size: var(--ming-font-body, 16px); }
  .historical-notice-copy footer { position: sticky; z-index: 1; bottom: 0; padding-top: 3px; background: #09100c; }
  .historical-notice-copy footer button { width: 100%; min-height: 54px; }
}

/* 重大史事画卷第二版：弱化“验收表”方框，让画面、史题与民间见闻形成一条阅读线。 */
.historical-notice-panel {
  grid-template-columns: minmax(0, 0.96fr) minmax(520px, 1.04fr);
  border-color: rgba(190, 157, 91, 0.48);
  background: #0a110d;
  box-shadow: 0 34px 120px rgba(0, 0, 0, 0.9), inset 3px 0 #815142;
}
.historical-notice-panel > figure::after {
  background: linear-gradient(0deg, rgba(3, 7, 5, 0.9), transparent 48%), linear-gradient(90deg, transparent 78%, rgba(5, 10, 7, 0.48));
}
.historical-notice-panel figcaption { right: 28px; bottom: 25px; left: 28px; }
.historical-notice-panel figcaption span { font-size: var(--ming-font-small, 14px); letter-spacing: 0.2em; }
.historical-notice-copy { gap: 13px; padding: 30px 32px 24px; }
.historical-notice-copy > header { padding-bottom: 13px; border-bottom: 0; }
.historical-notice-eyebrow { display: flex; align-items: center; justify-content: space-between; gap: 18px; }
.historical-notice-eyebrow > span { display: flex; align-items: center; gap: 10px; }
.historical-notice-eyebrow i {
  width: 35px;
  height: 35px;
  display: grid;
  place-items: center;
  color: #e2c992;
  border: 1px solid rgba(187, 91, 67, 0.82);
  background: #6d342b;
  font-family: var(--font-brush);
  font-size: 20px;
  font-style: normal;
  line-height: 1;
  transform: rotate(-2deg);
}
.historical-notice-eyebrow b { color: #d8c18b; font-size: var(--ming-font-small, 14px); letter-spacing: 0.22em; }
.historical-notice-eyebrow em { color: #9aab9f; font-size: var(--ming-font-small, 14px); font-style: normal; letter-spacing: 0.12em; }
.historical-notice-copy h2 { margin: 14px 0 12px; line-height: 1; letter-spacing: 0.05em; }
.historical-notice-copy h2 > span { display: block; color: #f0dfb4; font-size: clamp(42px, 4vw, 56px); }
.historical-notice-copy h2 > small { display: block; margin-top: 8px; color: #c89967; font-family: var(--font-brush); font-size: clamp(30px, 3.1vw, 43px); font-weight: 400; letter-spacing: 0.09em; }
.historical-notice-copy > header p { padding-left: 14px; border-left: 2px solid rgba(143, 80, 62, 0.72); color: #c7bea9; font-size: var(--ming-font-body, 16px); line-height: 1.68; }
.historical-notice-date {
  grid-template-columns: auto minmax(0, 1fr) auto;
  align-items: baseline;
  gap: 4px 12px;
  padding: 11px 0 10px;
  border-top: 1px solid rgba(188, 151, 76, 0.28);
  border-right: 0;
  border-bottom: 1px solid rgba(188, 151, 76, 0.28);
  border-left: 0;
  background: transparent;
}
.historical-notice-date > span { font-size: var(--ming-font-small, 14px); }
.historical-notice-date b { font-size: 17px; }
.historical-notice-date i { color: #93aa9e; font-size: var(--ming-font-small, 14px); font-style: normal; }
.historical-notice-date small { grid-column: 2 / -1; color: #87998f; font-size: var(--ming-font-small, 14px); }
.historical-notice-consequences { counter-reset: historical-impact; gap: 0; }
.historical-notice-consequences li {
  position: relative;
  grid-template-columns: 34px minmax(0, 1fr);
  gap: 10px;
  padding: 8px 4px;
  border: 0;
  border-bottom: 1px dashed rgba(162, 136, 81, 0.24);
  background: transparent;
}
.historical-notice-consequences li:last-child { border-bottom: 0; }
.historical-notice-consequences li span {
  width: 30px;
  height: 30px;
  color: #bda260;
  border-color: rgba(189, 162, 96, 0.4);
  font-size: var(--ming-font-small, 14px);
}
.historical-notice-consequences li p { margin-top: 3px; color: #bdb6a2; font-size: var(--ming-font-body, 16px); line-height: 1.52; }
.historical-notice-rule {
  position: relative;
  min-height: max-content;
  padding: 12px 14px 12px 18px;
  overflow: hidden;
  border: 0;
  background: #13221a;
}
.historical-notice-rule::before { content: ''; position: absolute; inset: 0 auto 0 0; width: 4px; background: #658d78; }
.historical-notice-rule > span { font-size: var(--ming-font-small, 14px); }
.historical-notice-rule p { margin: 5px 0 4px; font-size: var(--ming-font-body, 16px); line-height: 1.55; }
.historical-notice-rule b { font-size: var(--ming-font-small, 14px); }
.historical-notice-copy footer { padding-top: 4px; }
.historical-notice-copy footer button {
  position: relative;
  min-width: 238px;
  min-height: 50px;
  overflow: hidden;
  border-color: rgba(183, 148, 79, 0.58);
  background: #284a3a;
  letter-spacing: 0.12em;
}
.historical-notice-copy footer button::before { content: '阅'; display: inline-grid; width: 25px; height: 25px; place-items: center; margin-right: 10px; border: 1px solid rgba(229, 207, 151, 0.52); border-radius: 50%; font-family: var(--font-brush); font-size: 15px; vertical-align: -1px; }

@media (max-height: 780px) and (min-width: 981px) {
  .historical-notice-panel { grid-template-columns: minmax(0, 0.9fr) minmax(570px, 1.1fr); }
  .historical-notice-copy { gap: 8px; padding: 22px 26px 18px; }
  .historical-notice-copy > header { padding-bottom: 7px; }
  .historical-notice-copy h2 { margin: 9px 0; }
  .historical-notice-copy h2 > span { font-size: 43px; }
  .historical-notice-copy h2 > small { margin-top: 5px; font-size: 32px; }
  .historical-notice-copy > header p { font-size: var(--ming-font-body, 16px); line-height: 1.6; }
  .historical-notice-date { padding: 8px 0 7px; }
  .historical-notice-consequences li { padding: 5px 3px; }
  .historical-notice-consequences li p { font-size: var(--ming-font-body, 16px); line-height: 1.45; }
  .historical-notice-rule { padding-top: 8px; padding-bottom: 8px; }
  .historical-notice-rule p { margin: 3px 0; font-size: var(--ming-font-body, 16px); }
  .historical-notice-copy footer button { min-height: 48px; }
}

@media (max-width: 980px) {
  .historical-notice-panel { grid-template-columns: 1fr; }
  .historical-notice-panel > figure::after { background: linear-gradient(0deg, rgba(3, 7, 5, 0.88), transparent 50%); }
}

@media (max-width: 620px) {
  .historical-notice-panel figcaption { right: 16px; bottom: 13px; left: 16px; }
  .historical-notice-copy { gap: 12px; padding: 20px 17px calc(22px + env(safe-area-inset-bottom)); }
  .historical-notice-eyebrow i { width: 31px; height: 31px; font-size: 18px; }
  .historical-notice-eyebrow b { font-size: var(--ming-font-small, 14px); }
  .historical-notice-eyebrow em { font-size: var(--ming-font-small, 14px); }
  .historical-notice-copy h2 { margin: 12px 0 10px; }
  .historical-notice-copy h2 > span { font-size: clamp(35px, 9.6vw, 41px); line-height: 1.08; }
  .historical-notice-copy h2 > small { margin-top: 6px; font-size: clamp(28px, 8vw, 34px); line-height: 1.08; }
  .historical-notice-copy > header p { padding-left: 11px; font-size: var(--ming-font-body, 16px); line-height: 1.68; }
  .historical-notice-date { grid-template-columns: auto minmax(0, 1fr); gap: 4px 10px; }
  .historical-notice-date i { grid-column: 2; }
  .historical-notice-date small { grid-column: 1 / -1; }
  .historical-notice-consequences li { padding: 8px 2px; }
  .historical-notice-rule { padding: 12px 12px 12px 16px; }
  .historical-notice-copy footer { position: static; padding-top: 3px; background: transparent; }
}

/* 异地灶火：同一权威时钟事务生成的正式故事事件。 */
.free-action-fire-warning,
.home-fire-alert {
  min-width: 0;
  display: grid;
  grid-template-columns: 38px minmax(0, 1fr);
  align-items: center;
  gap: 11px;
  padding: 10px 12px;
  border: 1px solid rgba(190, 96, 55, 0.52);
  background: rgba(60, 27, 17, 0.78);
}
.free-action-fire-warning > i,
.home-fire-alert > i {
  width: 36px;
  height: 36px;
  display: grid;
  place-items: center;
  color: #edba77;
  border: 1px solid rgba(222, 124, 71, 0.76);
  border-radius: 50%;
  font-family: var(--font-brush);
  font-size: 19px;
  font-style: normal;
}
.free-action-fire-warning > div,
.home-fire-alert > span { min-width: 0; display: grid; gap: 2px; }
.free-action-fire-warning b,
.home-fire-alert b { color: #e8ca98; font-size: var(--ming-font-small, 14px); }
.free-action-fire-warning p,
.home-fire-alert small { margin: 0; color: #c2ad91; font-size: var(--ming-font-small, 14px); line-height: 1.55; }
.free-action-fire-warning.incident,
.home-fire-alert.incident { border-color: rgba(207, 155, 76, 0.52); background: rgba(50, 38, 17, 0.78); }
.home-fire-alert { margin: 13px 0 0; }
.home-away-notice .home-fire-alert { margin-top: 14px; }
.fire-incident-backdrop { z-index: 1550; background: rgba(7, 5, 3, 0.95); }
.fire-incident-panel {
  border-color: rgba(190, 112, 70, 0.68);
  background: #120d09;
  box-shadow: 0 34px 120px rgba(0, 0, 0, 0.92), inset 4px 0 #9a3e26;
}
.fire-incident-panel > figure::after {
  background: linear-gradient(0deg, rgba(10, 5, 2, 0.94), transparent 52%), linear-gradient(90deg, transparent 76%, rgba(17, 8, 3, 0.48));
}
.fire-incident-panel figcaption { border-color: rgba(231, 166, 104, 0.55); }
.fire-incident-panel figcaption span { color: #f0c98f; }
.fire-incident-copy .historical-notice-eyebrow i { border-color: #d66d45; background: #8e2f20; }
.fire-incident-copy .historical-notice-eyebrow b { color: #e3b779; }
.fire-incident-copy > header p { border-left-color: rgba(184, 77, 42, 0.82); }
.historical-notice-copy.fire-incident-copy { grid-auto-rows: max-content; }
.fire-incident-place { border-color: rgba(188, 91, 48, 0.32); }
.fire-incident-place > span { color: #cf8e58; }
.fire-incident-place i { color: #d19c72; }
.fire-incident-damage {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 1px;
  margin: 0;
  padding: 1px;
  list-style: none;
  background: rgba(174, 92, 50, 0.34);
}
.fire-incident-damage li {
  min-width: 0;
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  align-items: center;
  gap: 10px;
  padding: 11px 13px;
  background: #15100b;
}
.fire-incident-damage li > span { color: #ad9e86; font-size: var(--ming-font-small, 14px); }
.fire-incident-damage li > p { display: flex; align-items: center; gap: 7px; margin: 0; }
.fire-incident-damage li b { color: #d8c7a5; font-size: 16px; font-weight: 560; }
.fire-incident-damage li i { color: #8f6d53; font-size: var(--ming-font-small, 14px); font-style: normal; }
.fire-incident-damage li strong { color: #df8063; font-size: 19px; }
.fire-incident-rule { min-height: auto; overflow: visible; background: #24150f; }
.fire-incident-rule::before { background: #a14b31; }
.fire-incident-rule > span { color: #d18e5b; }
.fire-incident-rule b { color: #d7a074; }
.historical-notice-copy .fire-incident-actions {
  width: 100%;
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 10px;
}
.fire-incident-action-note {
  grid-column: 1 / -1;
  color: #c7b99f;
  font-size: var(--ming-font-small, 14px);
  line-height: 1.55;
}
.historical-notice-copy .fire-incident-actions button {
  min-width: 0;
  flex: 1 1 0;
  border-color: rgba(180, 120, 72, 0.58);
  background: #211812;
  letter-spacing: 0.03em;
}
.historical-notice-copy .fire-incident-actions button b,
.historical-notice-copy .fire-incident-actions button small { display: block; }
.historical-notice-copy .fire-incident-actions button b { font-size: 15px; }
.historical-notice-copy .fire-incident-actions button small { margin-top: 4px; color: #cbbda4; font-size: var(--ming-font-small, 14px); line-height: 1.4; }
.historical-notice-copy .fire-incident-actions button::before { content: none; }
.historical-notice-copy .fire-incident-actions button.primary { color: #22160d; background: #d1a05d; }
.historical-notice-copy .fire-incident-actions button.primary small { color: #5d4324; }
.historical-notice-copy .fire-incident-actions button:hover,
.historical-notice-copy .fire-incident-actions button:focus-visible { border-color: #e7bd7c; background: #352118; }
.historical-notice-copy .fire-incident-actions button.primary:hover,
.historical-notice-copy .fire-incident-actions button.primary:focus-visible { background: #e0b771; }
.fire-rescue-flow {
  min-width: 0;
  display: grid;
  gap: 13px;
}
.fire-rescue-command {
  display: grid;
  gap: 10px;
  padding: 14px;
  border: 1px solid rgba(210, 102, 62, 0.42);
  background: linear-gradient(135deg, rgba(69, 24, 16, 0.88), rgba(18, 13, 10, 0.94));
  box-shadow: inset 3px 0 0 rgba(218, 97, 54, 0.72);
}
.fire-rescue-command > header { display: grid; grid-template-columns: 1fr auto; align-items: end; gap: 2px 12px; }
.fire-rescue-command > header span { color: #d97e58; font-size: var(--ming-font-small, 14px); font-weight: 760; letter-spacing: 0.12em; }
.fire-rescue-command > header strong { color: #f0c184; font-family: var(--font-brush); font-size: 25px; font-weight: 400; }
.fire-rescue-command > header small { grid-column: 1 / -1; color: #bda98b; font-size: var(--ming-font-small, 14px); }
.fire-rescue-command > p { margin: 0; color: #d0c0a5; font-size: var(--ming-font-body, 16px); line-height: 1.65; }
.fire-family-bucket-line {
  display: grid;
  gap: 9px;
  padding: 11px;
  border: 1px solid rgba(91, 159, 145, 0.44);
  background:
    radial-gradient(circle at 100% 0, rgba(92, 151, 136, 0.14), transparent 42%),
    linear-gradient(135deg, rgba(16, 37, 32, 0.92), rgba(13, 20, 17, 0.96));
  box-shadow: inset 3px 0 rgba(91, 159, 145, 0.7);
}
.fire-family-bucket-line.blocked {
  border-color: rgba(182, 122, 76, 0.42);
  background: linear-gradient(135deg, rgba(50, 33, 23, 0.9), rgba(19, 17, 14, 0.96));
  box-shadow: inset 3px 0 rgba(179, 105, 67, 0.62);
}
.fire-family-bucket-line.active {
  border-color: rgba(111, 169, 143, 0.55);
  background: linear-gradient(135deg, rgba(12, 38, 31, 0.96), rgba(11, 24, 21, 0.96));
  box-shadow: inset 3px 0 0 rgba(132, 188, 160, 0.76);
}
.fire-family-bucket-line > header { display: flex; align-items: center; justify-content: space-between; gap: 12px; }
.fire-family-bucket-line > header span { display: inline-flex; align-items: center; gap: 8px; color: #d8c9a9; }
.fire-family-bucket-line > header i {
  width: 28px;
  height: 28px;
  display: grid;
  place-items: center;
  color: #bce0d3;
  border: 1px solid rgba(106, 174, 156, 0.56);
  background: rgba(45, 103, 90, 0.3);
  font-family: var(--font-brush);
  font-size: 17px;
  font-style: normal;
}
.fire-family-bucket-line > header b { font-size: 15px; }
.fire-family-bucket-line > header em { color: #9fcab9; font-size: var(--ming-font-small, 14px); font-style: normal; }
.fire-family-bucket-line.blocked > header em { color: #d4a987; }
.fire-family-bucket-facts { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 6px; }
.fire-family-bucket-facts > span { min-width: 0; display: grid; gap: 2px; padding: 7px 8px; border: 1px solid rgba(124, 165, 147, 0.24); background: rgba(3, 12, 10, 0.42); }
.fire-family-bucket-facts small { color: #9db7aa; font-size: var(--ming-font-small, 14px); }
.fire-family-bucket-facts b { overflow: hidden; color: #eee0be; font-size: 14px; text-overflow: ellipsis; white-space: nowrap; }
.historical-notice-copy .fire-family-bucket-line > button {
  min-height: 58px;
  display: grid;
  align-content: center;
  gap: 3px;
  padding: 9px 12px;
  color: #201710;
  border: 1px solid rgba(225, 190, 112, 0.64);
  background: linear-gradient(135deg, #d9bd78, #9ebd9e);
  text-align: left;
}
.historical-notice-copy .fire-family-bucket-line > button::before { content: none; }
.fire-family-bucket-line > button b { font-size: 15px; }
.fire-family-bucket-line > button small { color: #3c4434; font-size: var(--ming-font-small, 14px); line-height: 1.45; }
.historical-notice-copy .fire-family-bucket-line > button:disabled { color: #d8c7aa; border-color: rgba(190, 139, 92, 0.35); background: rgba(50, 35, 26, 0.86); cursor: not-allowed; }
.historical-notice-copy .fire-family-bucket-line > button:disabled small { color: #c9b69a; }
.fire-family-bucket-line > p { margin: 0; color: #abc0b5; font-size: var(--ming-font-body, 16px); line-height: 1.55; }
.fire-family-bucket-line.blocked > p { color: #c8b49b; }
.fire-family-recovery {
  display: grid;
  gap: 9px;
  padding: 11px;
  border: 1px solid rgba(219, 166, 92, 0.38);
  background: linear-gradient(135deg, rgba(48, 31, 20, 0.9), rgba(21, 17, 13, 0.94));
  box-shadow: inset 3px 0 rgba(218, 160, 83, 0.62);
}
.fire-family-recovery > header { display: grid; grid-template-columns: auto 1fr; align-items: baseline; gap: 8px 12px; }
.fire-family-recovery > header span { color: #d9a86e; font-size: var(--ming-font-small, 14px); font-weight: 760; letter-spacing: 0.1em; }
.fire-family-recovery > header b { color: #f0dfbc; font-size: 16px; }
.fire-family-recovery > p { margin: 0; color: #d7c7ae; font-size: var(--ming-font-body, 16px); line-height: 1.58; }
.fire-family-recovery > small { color: #c9b99e; font-size: var(--ming-font-small, 14px); line-height: 1.55; }
.fire-family-recovery-actions { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; }
.historical-notice-copy .fire-family-recovery-actions button {
  min-height: 58px;
  display: grid;
  align-content: center;
  gap: 3px;
  padding: 9px 11px;
  color: #e5d4b5;
  border: 1px solid rgba(211, 156, 87, 0.42);
  background: rgba(27, 21, 15, 0.88);
  text-align: left;
}
.historical-notice-copy .fire-family-recovery-actions button::before { content: none; }
.fire-family-recovery-actions button b { font-size: 15px; }
.fire-family-recovery-actions button small { color: #ccbca2; font-size: var(--ming-font-small, 14px); line-height: 1.45; }
.historical-notice-copy .fire-family-recovery-actions button.primary { color: #25170e; background: linear-gradient(135deg, #deb469, #c78a4d); }
.historical-notice-copy .fire-family-recovery-actions button.primary small { color: #54381f; }
.historical-notice-copy .fire-family-recovery-actions button:disabled { color: #b8a890; border-color: rgba(159, 119, 77, 0.25); background: rgba(30, 25, 20, 0.72); cursor: not-allowed; }
.historical-notice-copy .fire-family-recovery-actions button:disabled small { color: #988b79; }
.fire-water-supply {
  display: grid;
  gap: 10px;
  padding: 12px;
  border: 1px solid rgba(83, 153, 151, 0.42);
  border-left: 3px solid #5fa9a2;
  background: linear-gradient(118deg, rgba(18, 66, 62, 0.38), rgba(15, 24, 20, 0.86));
}
.fire-water-supply > header { display: flex; align-items: center; justify-content: space-between; gap: 12px; }
.fire-water-supply > header span { display: inline-flex; align-items: center; gap: 8px; color: #d7e5d9; }
.fire-water-supply > header i {
  display: inline-grid;
  width: 30px;
  height: 30px;
  place-items: center;
  border: 1px solid rgba(111, 185, 179, 0.5);
  color: #9fd5cf;
  background: rgba(18, 78, 73, 0.5);
  font-size: 14px;
  font-style: normal;
}
.fire-water-supply > header b { font-size: 16px; }
.fire-water-supply > header em { color: #9fd5cf; font-size: var(--ming-font-small, 14px); font-style: normal; }
.fire-water-supply > p { margin: 0; color: #c6d4ca; font-size: var(--ming-font-body, 16px); line-height: 1.58; }
.fire-water-supply-facts { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 6px; }
.fire-water-supply-facts > span { min-width: 0; display: grid; gap: 3px; padding: 8px; border: 1px solid rgba(104, 168, 158, 0.26); background: rgba(3, 18, 16, 0.42); }
.fire-water-supply-facts small { color: #9dbcb1; font-size: var(--ming-font-small, 14px); }
.fire-water-supply-facts b { color: #eee1c0; font-size: 14px; line-height: 1.4; overflow-wrap: anywhere; }
.fire-water-supply-actions { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; }
.fire-water-supply-note {
  min-height: 58px;
  display: grid;
  align-content: center;
  gap: 3px;
  padding: 9px 11px;
  border: 1px solid rgba(104, 140, 131, 0.22);
  color: #b8b0a0;
  background: rgba(20, 26, 23, 0.72);
}
.fire-water-supply-note b { font-size: 15px; }
.fire-water-supply-note small { color: #b9aa94; font-size: var(--ming-font-small, 14px); line-height: 1.45; }
.historical-notice-copy .fire-water-supply button {
  min-width: 0;
  min-height: 58px;
  display: grid;
  align-content: center;
  gap: 3px;
  padding: 9px 11px;
  border: 1px solid rgba(104, 168, 158, 0.35);
  color: #dfd4b9;
  background: rgba(12, 31, 27, 0.8);
  text-align: left;
}
.historical-notice-copy .fire-water-supply button::before { content: none; }
.fire-water-supply button b { font-size: 15px; }
.fire-water-supply button small { color: #b9ccc2; font-size: var(--ming-font-small, 14px); line-height: 1.45; }
.historical-notice-copy .fire-water-supply button.primary { color: #17302b; background: linear-gradient(135deg, #a9d2c3, #73b0a7); }
.historical-notice-copy .fire-water-supply button.primary small { color: #31554d; }
.historical-notice-copy .fire-water-supply button:disabled { color: #b8b0a0; border-color: rgba(104, 140, 131, 0.22); background: rgba(20, 26, 23, 0.72); cursor: not-allowed; }
.fire-water-supply > article { display: grid; gap: 7px; padding: 10px; border: 1px solid rgba(107, 175, 163, 0.28); background: rgba(3, 18, 15, 0.5); }
.fire-water-supply > article.blocked { border-color: rgba(193, 130, 86, 0.38); }
.fire-water-supply > article header { display: flex; align-items: baseline; justify-content: space-between; gap: 10px; }
.fire-water-supply > article header span { color: #8fc8bd; font-size: var(--ming-font-small, 14px); font-weight: 760; }
.fire-water-supply > article header b { color: #eadcb9; font-size: 15px; }
.fire-water-supply > article p { margin: 0; color: #c7d2ca; font-size: var(--ming-font-body, 16px); line-height: 1.55; }
.fire-water-supply > article > div { display: flex; flex-wrap: wrap; justify-content: space-between; gap: 5px 12px; }
.fire-water-supply > article > div small,
.fire-water-supply > article > div em { color: #9eb8ad; font-size: var(--ming-font-small, 14px); font-style: normal; }
.fire-water-supply-boundary { color: #adc5ba; font-size: var(--ming-font-small, 14px); line-height: 1.55; }
.fire-water-return-report {
  border-color: rgba(205, 164, 89, 0.48);
  background:
    radial-gradient(circle at 100% 0, rgba(195, 151, 75, 0.13), transparent 44%),
    linear-gradient(135deg, rgba(45, 35, 20, 0.94), rgba(14, 20, 16, 0.97));
  box-shadow: inset 3px 0 0 rgba(205, 164, 89, 0.68);
}
.fire-water-return-report > header span { color: #ead8ae; }
.fire-water-return-report > header i {
  color: #2d2111;
  border-color: rgba(222, 187, 112, 0.7);
  background: linear-gradient(145deg, #e1c47c, #ad8141);
}
.fire-water-return-report > header em { color: #d9bb7e; }
.fire-water-return-report.available {
  border-color: rgba(112, 177, 150, 0.58);
  box-shadow: inset 3px 0 0 rgba(105, 172, 146, 0.78), 0 10px 32px rgba(0, 0, 0, 0.18);
}
.fire-water-return-report.available > header em { color: #a9d8c4; }
.fire-rescue-command-actions { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; }
.historical-notice-copy .fire-rescue-command-actions button {
  min-height: 58px;
  display: grid;
  align-content: center;
  gap: 3px;
  padding: 9px 12px;
  color: #dfc8a6;
  border: 1px solid rgba(207, 144, 87, 0.38);
  background: rgba(28, 20, 14, 0.86);
  text-align: left;
}
.historical-notice-copy .fire-rescue-command-actions button::before { content: none; }
.fire-rescue-command-actions button b { font-size: var(--ming-font-body, 16px); }
.fire-rescue-command-actions button small { color: #cbbda4; font-size: var(--ming-font-small, 14px); line-height: 1.45; }
.historical-notice-copy .fire-rescue-command-actions button.primary { color: #24140d; background: linear-gradient(135deg, #dcb168, #c88549); }
.historical-notice-copy .fire-rescue-command-actions button.primary:not(:disabled) small { color: #56351f; }
.historical-notice-copy .fire-rescue-command-actions button:disabled {
  cursor: not-allowed;
  opacity: 1;
  color: #c8b99d;
  border-color: rgba(202, 159, 99, 0.42);
  background: linear-gradient(135deg, rgba(86, 57, 34, 0.88), rgba(57, 39, 27, 0.92));
  box-shadow: inset 3px 0 rgba(191, 116, 66, 0.5);
}
.fire-rescue-command-actions button:disabled b { color: #e1d1b5; }
.fire-rescue-command-actions button:disabled small { color: #c7b99f; }
.fire-rescue-route {
  display: grid;
  gap: 11px;
  padding: 13px 14px 14px;
  border: 1px solid rgba(192, 142, 83, 0.42);
  background: linear-gradient(135deg, rgba(29, 23, 15, 0.96), rgba(12, 17, 13, 0.96));
}
.fire-rescue-route > header { display: grid; grid-template-columns: auto 1fr; align-items: baseline; gap: 3px 10px; }
.fire-rescue-route > header span { color: #a99573; font-size: var(--ming-font-small, 14px); letter-spacing: 0.1em; }
.fire-rescue-route > header b { color: #f0d59f; font-size: 18px; }
.fire-rescue-route > header small { grid-column: 1 / -1; color: #c6b99e; font-size: var(--ming-font-small, 14px); }
.fire-rescue-route ol { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 7px; margin: 0; padding: 0; list-style: none; }
.fire-rescue-route li {
  min-width: 0;
  display: grid;
  grid-template-columns: 30px minmax(0, 1fr);
  align-items: center;
  gap: 8px;
  padding: 9px;
  border: 1px solid rgba(158, 137, 98, 0.28);
  background: rgba(11, 17, 13, 0.82);
}
.fire-rescue-route li > i {
  width: 28px;
  height: 28px;
  display: grid;
  place-items: center;
  color: #bba576;
  border: 1px solid rgba(187, 165, 118, 0.45);
  font-family: var(--font-brush);
  font-size: 16px;
  font-style: normal;
}
.fire-rescue-route li > span { min-width: 0; display: grid; gap: 2px; }
.fire-rescue-route li b { color: #d9ccb2; font-size: 14px; }
.fire-rescue-route li small { color: #c9bea7; font-size: var(--ming-font-small, 14px); line-height: 1.4; }
.fire-rescue-route li.current { border-color: rgba(222, 183, 104, 0.72); background: rgba(73, 55, 29, 0.78); box-shadow: inset 3px 0 #d9ad60; }
.fire-rescue-route li.current > i { color: #27180e; border-color: #ddb66e; background: #ddb66e; }
.fire-rescue-route li.fire-node:not(.current) > i { color: #efae7e; border-color: rgba(198, 84, 51, 0.72); background: rgba(102, 35, 24, 0.72); }
.fire-rescue-route li.water-node:not(.current) > i { color: var(--folio-ink, #b9dfd3); border-color: var(--folio-rule, rgba(83, 151, 138, 0.72)); background: var(--folio-selected-surface, rgba(28, 75, 70, 0.74)); }
.fire-rescue-command--embers { border-color: rgba(191, 145, 78, 0.46); background: linear-gradient(135deg, rgba(55, 38, 20, 0.9), rgba(17, 16, 12, 0.96)); box-shadow: inset 3px 0 0 rgba(202, 153, 79, 0.7); }
.fire-rescue-command--embers > header span { color: #cba464; }
.fire-aftermath-command {
  border-color: rgba(120, 158, 125, 0.5);
  background: linear-gradient(135deg, rgba(29, 45, 32, 0.94), rgba(24, 20, 13, 0.97));
  box-shadow: inset 3px 0 0 rgba(123, 165, 127, 0.76);
}
.fire-aftermath-command > header span { color: #9bc59e; }
.fire-aftermath-ledger { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 7px; }
.fire-aftermath-ledger > span { min-width: 0; display: grid; gap: 3px; padding: 9px 10px; border: 1px solid rgba(192, 159, 91, 0.28); background: rgba(8, 14, 10, 0.72); }
.fire-aftermath-ledger small { color: #c5b99f; font-size: var(--ming-font-small, 14px); }
.fire-aftermath-ledger b { color: #ead9b5; font-size: 16px; }
.fire-aftermath-ledger em { color: #d49a70; font-size: var(--ming-font-small, 14px); font-style: normal; }
.fire-aftermath-ledger .settled { border-color: rgba(111, 157, 128, 0.4); background: rgba(25, 57, 40, 0.55); }
.fire-aftermath-ledger .settled em { color: #a9d0b7; }

.active-fire-alert {
  display: grid;
  grid-template-columns: 46px minmax(0, 1fr) minmax(184px, auto);
  align-items: center;
  gap: 13px;
  margin: 0 0 14px;
  padding: 12px 14px;
  color: #eadbc0;
  border: 1px solid rgba(196, 84, 47, 0.72);
  border-left: 4px solid #c35e3d;
  background: linear-gradient(100deg, rgba(73, 24, 15, 0.96), rgba(28, 16, 11, 0.96));
  box-shadow: 0 12px 28px rgba(13, 5, 3, 0.28), inset 0 0 28px rgba(181, 73, 38, 0.08);
}
.active-fire-alert > i {
  width: 44px;
  height: 44px;
  display: grid;
  place-items: center;
  color: #f1c58c;
  border: 1px solid rgba(226, 141, 79, 0.74);
  background: #7d2c1f;
  font-family: var(--font-brush);
  font-size: 25px;
  font-style: normal;
}
.active-fire-alert > div { min-width: 0; display: grid; gap: 3px; }
.active-fire-alert > div span { color: #df8a5f; font-size: var(--ming-font-small, 14px); font-weight: 780; letter-spacing: 0.14em; }
.active-fire-alert > div b { color: #f1e0c2; font-size: 17px; }
.active-fire-alert > div small { color: #d2c0a3; font-size: var(--ming-font-small, 14px); line-height: 1.45; }
.active-fire-alert > button {
  min-height: 54px;
  display: grid;
  align-content: center;
  gap: 3px;
  padding: 8px 16px;
  color: #2a190e;
  border: 1px solid #d5a35e;
  background: linear-gradient(135deg, #e0b66e, #ca884c);
  text-align: left;
}
.active-fire-alert > button b { font-size: 15px; }
.active-fire-alert > button small { color: #5a371f; font-size: var(--ming-font-small, 14px); line-height: 1.35; }

@media (max-width: 720px) {
  .active-fire-alert { grid-template-columns: 42px minmax(0, 1fr); padding: 12px; }
  .active-fire-alert > i { width: 40px; height: 40px; }
  .active-fire-alert > div span,
  .active-fire-alert > div small { font-size: var(--ming-font-small, 14px); }
  .active-fire-alert > button { grid-column: 1 / -1; width: 100%; min-height: 58px; }
}

@media (max-width: 620px) {
  .fire-incident-panel > figure { aspect-ratio: 16 / 9; }
  .fire-incident-panel figcaption span { font-size: var(--ming-font-small, 14px); letter-spacing: 0.12em; }
  .fire-incident-copy h2 > span { font-size: clamp(34px, 10vw, 42px); }
  .fire-incident-damage li { padding: 10px; }
  .fire-incident-damage li > span { font-size: var(--ming-font-small, 14px); }
  .fire-incident-damage li b { font-size: 15px; }
  .fire-incident-damage li strong { font-size: 18px; }
  .historical-notice-copy .fire-incident-actions { position: static; display: grid; grid-template-columns: 1fr; background: transparent; }
  .historical-notice-copy .fire-incident-actions button { width: 100%; min-height: 52px; }
  .historical-notice-copy .fire-incident-actions button.primary { order: -1; }
  .fire-rescue-command { padding: 12px; }
  .fire-rescue-command > header strong { font-size: 23px; }
  .fire-rescue-command > p { font-size: var(--ming-font-body, 16px); }
  .fire-rescue-command > header span,
  .fire-rescue-command > header small,
  .fire-rescue-command-actions button small { font-size: var(--ming-font-small, 14px); }
  .fire-family-bucket-line { padding: 10px; }
  .fire-family-bucket-line > header { align-items: flex-start; flex-direction: column; gap: 6px; }
  .fire-family-bucket-facts { grid-template-columns: 1fr; }
  .fire-family-bucket-facts > span { grid-template-columns: 88px minmax(0, 1fr); align-items: center; gap: 8px; }
  .fire-family-bucket-facts b { white-space: normal; }
  .fire-family-recovery > header { grid-template-columns: 1fr; gap: 3px; }
  .fire-family-recovery-actions { grid-template-columns: 1fr; }
  .historical-notice-copy .fire-family-recovery-actions button { min-height: 60px; }
  .fire-water-supply { padding: 10px; }
  .fire-water-supply > header { align-items: flex-start; flex-direction: column; gap: 6px; }
  .fire-water-supply-facts { grid-template-columns: 1fr; }
  .fire-water-supply-facts > span { grid-template-columns: 88px minmax(0, 1fr); align-items: center; gap: 8px; }
  .fire-water-supply-actions { grid-template-columns: 1fr; }
  .historical-notice-copy .fire-water-supply button { min-height: 60px; }
  .fire-rescue-command-actions { grid-template-columns: 1fr; }
  .historical-notice-copy .fire-rescue-command-actions button { min-height: 60px; }
  .fire-rescue-route { padding: 12px; }
  .fire-rescue-route ol { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .fire-rescue-route li { min-height: 62px; }
  .fire-rescue-route li b { font-size: 14px; }
  .fire-rescue-route li small { font-size: var(--ming-font-small, 14px); }
  .fire-aftermath-ledger { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

/* 风雨异动：冷青雨色与火讯区分，保留同一卷宗层级。 */
.environmental-incident-backdrop {
  z-index: 1545;
  background: rgba(3, 9, 10, 0.95);
}
.environmental-incident-panel {
  --rain-ink: #071211;
  --rain-panel: #0b1716;
  --rain-line: rgba(92, 151, 139, 0.48);
  --rain-accent: #76b8a8;
  border-color: rgba(92, 151, 139, 0.66);
  background: var(--rain-ink);
  box-shadow: 0 34px 120px rgba(0, 0, 0, 0.92), inset 4px 0 #39786e;
}
.environmental-incident-panel > figure::after {
  background: linear-gradient(0deg, rgba(3, 10, 10, 0.94), transparent 54%), linear-gradient(90deg, transparent 70%, rgba(2, 13, 13, 0.52));
}
.environmental-incident-panel figcaption { border-color: var(--rain-line); }
.environmental-incident-panel figcaption span { color: #b7d9cf; }
.environmental-incident-panel figcaption small { font-size: var(--ming-font-small, 14px); }
.environmental-incident-copy .historical-notice-eyebrow i {
  color: #d9eee8;
  border-color: #70aa9c;
  background: #285d56;
}
.environmental-incident-copy .historical-notice-eyebrow b { color: #a9d0c5; font-size: var(--ming-font-small, 14px); }
.environmental-incident-copy .historical-notice-eyebrow em { font-size: var(--ming-font-small, 14px); }
.environmental-incident-scroll-cue {
  min-height: 34px;
  display: grid;
  grid-template-columns: auto minmax(0, 1fr) auto;
  align-items: center;
  gap: 10px;
  padding: 6px 10px;
  color: #b7cec6;
  border: 1px solid rgba(93, 154, 143, 0.28);
  background: rgba(13, 31, 29, 0.78);
}
.environmental-incident-scroll-cue span { color: #83b8ab; font-size: var(--ming-font-small, 14px); font-weight: 780; letter-spacing: 0.08em; }
.environmental-incident-scroll-cue b { min-width: 0; overflow: hidden; color: #c7d8d2; font-size: var(--ming-font-small, 14px); text-overflow: ellipsis; white-space: nowrap; }
.environmental-incident-scroll-cue i { color: #9dc8bc; font-size: var(--ming-font-small, 14px); font-style: normal; white-space: nowrap; }
.environmental-incident-copy > header p { border-left-color: rgba(79, 142, 131, 0.86); }
.environmental-incident-place { border-color: rgba(93, 154, 143, 0.34); }
.environmental-incident-place > span { color: #79ad9f; font-size: var(--ming-font-small, 14px); }
.environmental-incident-place i { color: #a7c4ba; }
.rainstorm-impact-ledger,
.rainstorm-force-ledger {
  display: grid;
  gap: 10px;
  padding: 13px;
  border: 1px solid var(--rain-line);
  background: linear-gradient(135deg, rgba(17, 38, 35, 0.94), rgba(8, 20, 19, 0.96));
  box-shadow: inset 3px 0 rgba(83, 147, 134, 0.54);
}
.rainstorm-impact-ledger > header,
.rainstorm-force-ledger > header {
  display: flex;
  justify-content: space-between;
  gap: 12px;
  align-items: baseline;
}
.rainstorm-impact-ledger > header span,
.rainstorm-force-ledger > header span {
  color: #82b5a8;
  font-size: var(--ming-font-small, 14px);
  font-weight: 780;
  letter-spacing: 0.12em;
}
.rainstorm-impact-ledger > header b,
.rainstorm-force-ledger > header b { color: #d5e5de; font-size: 14px; }
.rainstorm-impact-ledger > div,
.rainstorm-force-ledger > div { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; }
.rainstorm-impact-ledger article,
.rainstorm-force-ledger article {
  min-width: 0;
  display: grid;
  grid-template-columns: 38px minmax(0, 1fr);
  gap: 10px;
  align-items: center;
  padding: 10px;
  border: 1px solid rgba(113, 162, 151, 0.24);
  background: rgba(4, 14, 13, 0.76);
}
.rainstorm-impact-ledger article > i,
.rainstorm-force-ledger article > i {
  width: 36px;
  height: 36px;
  display: grid;
  place-items: center;
  color: #b8d8cf;
  border: 1px solid rgba(112, 170, 157, 0.56);
  font-family: var(--font-brush);
  font-size: 19px;
  font-style: normal;
}
.rainstorm-impact-ledger article > div,
.rainstorm-force-ledger article > div { min-width: 0; display: grid; gap: 2px; }
.rainstorm-impact-ledger article span,
.rainstorm-force-ledger article span { color: #78ac9f; font-size: var(--ming-font-small, 14px); }
.rainstorm-impact-ledger article b,
.rainstorm-force-ledger article b { overflow: hidden; color: #dce8e3; font-size: 15px; text-overflow: ellipsis; white-space: nowrap; }
.rainstorm-impact-ledger article small,
.rainstorm-force-ledger article small,
.rainstorm-force-ledger > p,
.rainstorm-impact-ledger.empty > p { margin: 0; color: #b8ccc4; font-size: var(--ming-font-small, 14px); line-height: 1.55; }
.rainstorm-route-note {
  display: grid;
  grid-template-columns: 40px minmax(0, 1fr);
  gap: 11px;
  align-items: center;
  padding: 11px 13px;
  border: 1px solid rgba(98, 144, 135, 0.32);
  background: rgba(14, 29, 27, 0.76);
}
.rainstorm-route-note > i {
  width: 38px;
  height: 38px;
  display: grid;
  place-items: center;
  color: #b9d2ca;
  border: 1px solid rgba(105, 157, 146, 0.52);
  font-family: var(--font-brush);
  font-size: 20px;
  font-style: normal;
}
.rainstorm-route-note > div { display: grid; gap: 2px; }
.rainstorm-route-note span { color: #7fb3a6; font-size: var(--ming-font-small, 14px); font-weight: 760; letter-spacing: 0.1em; }
.rainstorm-route-note p { margin: 0; color: #c0d0ca; font-size: var(--ming-font-body, 16px); line-height: 1.55; }
.environmental-incident-rule { background: #102422; }
.environmental-incident-rule::before { background: #4d9487; }
.environmental-incident-rule > span { color: #83b8ab; font-size: var(--ming-font-small, 14px); }
.environmental-incident-rule b { color: #bbd7ce; }
.historical-notice-copy .environmental-incident-actions button {
  border-color: rgba(101, 155, 143, 0.58);
  background: #132422;
}
.historical-notice-copy .environmental-incident-actions button.primary { color: #10201d; background: #8fc9b9; }
.historical-notice-copy .environmental-incident-actions button:hover,
.historical-notice-copy .environmental-incident-actions button:focus-visible { border-color: #a8d5c8; background: #1b3935; }
.historical-notice-copy .environmental-incident-actions button.primary:hover,
.historical-notice-copy .environmental-incident-actions button.primary:focus-visible { background: #aedbce; }
.environmental-incident-panel.drought {
  --drought-accent: #cda15b;
  --rain-ink: #151006;
  --rain-panel: #1c1509;
  --rain-line: rgba(205, 161, 91, 0.5);
  --rain-accent: var(--drought-accent);
  border-color: rgba(205, 161, 91, 0.7);
  background: #130f07;
  box-shadow: 0 34px 120px rgba(0, 0, 0, 0.92), inset 4px 0 #9a6d2f;
}
.environmental-incident-panel.drought > figure::after {
  background: linear-gradient(0deg, rgba(18, 12, 4, 0.93), transparent 56%), linear-gradient(90deg, transparent 72%, rgba(28, 18, 6, 0.46));
}
.environmental-incident-panel.drought figcaption span,
.environmental-incident-panel.drought .historical-notice-eyebrow b,
.environmental-incident-panel.drought .environmental-incident-place > span,
.environmental-incident-panel.drought .rainstorm-impact-ledger > header span,
.environmental-incident-panel.drought .rainstorm-force-ledger > header span,
.environmental-incident-panel.drought .rainstorm-route-note span,
.environmental-incident-panel.drought .environmental-incident-rule > span { color: #d9b16c; }
.environmental-incident-panel.drought .environmental-incident-scroll-cue { border-color: rgba(205, 161, 91, 0.32); background: #211709; }
.environmental-incident-panel.drought .environmental-incident-scroll-cue span { color: #d9b16c; }
.environmental-incident-panel.drought .environmental-incident-scroll-cue b { color: #dac9a4; }
.environmental-incident-panel.drought .environmental-incident-scroll-cue i { color: #e1bd77; }
.environmental-incident-panel.drought .historical-notice-copy > header p { border-left-color: rgba(193, 139, 58, 0.88); }
.environmental-incident-panel.drought .environmental-incident-place,
.environmental-incident-panel.drought .rainstorm-impact-ledger,
.environmental-incident-panel.drought .rainstorm-force-ledger,
.environmental-incident-panel.drought .rainstorm-route-note { border-color: rgba(205, 161, 91, 0.34); background: #1b150a; }
.environmental-incident-panel.drought .rainstorm-impact-ledger article,
.environmental-incident-panel.drought .rainstorm-force-ledger article { border-color: rgba(205, 161, 91, 0.28); background: #21190c; }
.environmental-incident-panel.drought .rainstorm-impact-ledger article > i,
.environmental-incident-panel.drought .rainstorm-force-ledger article > i,
.environmental-incident-panel.drought .rainstorm-route-note > i { border-color: rgba(211, 169, 99, 0.58); background: #34230f; color: #e5c27f; }
.environmental-incident-panel.drought .environmental-incident-rule { background: #241a0c; }
.environmental-incident-panel.drought .environmental-incident-rule::before { background: #b37d36; }
.environmental-incident-panel.drought .environmental-incident-actions button.primary { color: #241707; background: #d7ad65; }
.environmental-incident-panel.drought .environmental-incident-actions button.primary:hover,
.environmental-incident-panel.drought .environmental-incident-actions button.primary:focus-visible { background: #edc77f; }
.drought-stage-ledger {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr);
  align-items: baseline;
  gap: 4px 13px;
  padding: 11px 13px;
  border: 1px solid rgba(205, 161, 91, 0.38);
  background: #261b0c;
}
.drought-stage-ledger span { color: #d4a85f; font-size: var(--ming-font-small, 14px); font-weight: 780; letter-spacing: 0.12em; }
.drought-stage-ledger b { color: #f0dbaf; font-size: 16px; }
.drought-stage-ledger small { grid-column: 1 / -1; color: #d2c09d; font-size: var(--ming-font-small, 14px); line-height: 1.55; }
.drought-response-ledger {
  display: grid;
  gap: 10px;
  padding: 13px;
  border: 1px solid rgba(205, 161, 91, 0.42);
  background: linear-gradient(135deg, #281c0b, #171006);
  box-shadow: inset 3px 0 rgba(190, 132, 47, 0.62);
}
.drought-response-ledger > header {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 12px;
}
.drought-response-ledger > header span { color: #d8aa60; font-size: var(--ming-font-small, 14px); font-weight: 780; letter-spacing: 0.1em; }
.drought-response-ledger > header b { color: #f1dfb8; font-size: 15px; }
.drought-response-ledger.blocked > p { margin: 0; color: #d0bd98; font-size: var(--ming-font-body, 16px); line-height: 1.6; }
.drought-response-actions { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; }
.drought-response-actions article {
  min-width: 0;
  display: grid;
  grid-template-columns: 38px minmax(0, 1fr);
  gap: 8px 10px;
  align-items: start;
  padding: 10px;
  border: 1px solid rgba(205, 161, 91, 0.28);
  background: rgba(38, 27, 12, 0.88);
}
.drought-response-actions article > i,
.drought-haul-gate > i {
  width: 36px;
  height: 36px;
  display: grid;
  place-items: center;
  color: #efce8b;
  border: 1px solid rgba(214, 170, 99, 0.6);
  background: #3a270f;
  font-family: var(--font-brush);
  font-size: 19px;
  font-style: normal;
}
.drought-response-actions article > div { min-width: 0; display: grid; gap: 3px; }
.drought-response-actions article > div b { color: #ead7ad; font-size: 15px; }
.drought-response-actions article > div p { margin: 0; color: #cfbd99; font-size: var(--ming-font-body, 16px); line-height: 1.5; }
.drought-response-actions article > button {
  grid-column: 1 / -1;
  min-height: 54px;
  display: grid;
  align-content: center;
  gap: 2px;
  padding: 8px 12px;
  color: #2b1a05;
  border: 1px solid #c9994f;
  background: linear-gradient(135deg, #dfb866, #c38f43);
  text-align: left;
}
.drought-response-actions article > button span { font-size: 15px; font-weight: 800; }
.drought-response-actions article > button small { color: #4d3210; font-size: var(--ming-font-small, 14px); line-height: 1.35; }
.drought-response-actions article > button:disabled { color: #9e8e70; border-color: rgba(154, 124, 76, 0.4); background: #2a2114; cursor: not-allowed; }
.drought-response-actions article > button:disabled small { color: #ad9d80; }
.drought-water-action-note {
  min-height: 58px;
  display: grid;
  align-content: center;
  gap: 3px;
  padding: 9px 11px;
  border: 1px solid rgba(154, 124, 76, 0.4);
  color: #9e8e70;
  background: #2a2114;
}
.drought-water-action-note span { font-size: 15px; font-weight: 800; }
.drought-water-action-note small { color: #ad9d80; font-size: var(--ming-font-small, 14px); line-height: 1.35; }
.drought-haul-gate {
  display: grid;
  grid-template-columns: 38px minmax(0, 1fr) minmax(180px, 0.48fr);
  gap: 11px;
  align-items: center;
  padding: 11px;
  border: 1px dashed rgba(205, 161, 91, 0.38);
  background: rgba(22, 16, 8, 0.86);
}
.drought-haul-gate.blocked { grid-template-columns: 38px minmax(0, 1fr); }
.drought-haul-gate.ready {
  border-style: solid;
  border-color: rgba(216, 173, 96, 0.62);
  background: linear-gradient(110deg, rgba(53, 36, 13, 0.96), rgba(24, 30, 20, 0.92));
  box-shadow: inset 3px 0 #bd8c42;
}
.drought-haul-gate.active {
  border-style: solid;
  border-color: rgba(101, 155, 132, 0.62);
  background: linear-gradient(110deg, rgba(22, 48, 39, 0.94), rgba(28, 25, 14, 0.92));
  box-shadow: inset 3px 0 #659b84;
}
.drought-haul-gate > div { display: grid; gap: 2px; }
.drought-haul-gate span { color: #d1a75f; font-size: var(--ming-font-small, 14px); font-weight: 780; letter-spacing: 0.08em; }
.drought-haul-gate b { color: #dfcfac; font-size: 14px; }
.drought-haul-gate p { margin: 0; color: #bfae8d; font-size: var(--ming-font-body, 16px); line-height: 1.5; }
.drought-haul-gate > button {
  min-height: 56px;
  display: grid;
  align-content: center;
  gap: 2px;
  padding: 9px 12px;
  color: #2a1905;
  border: 1px solid #d1a45c;
  background: linear-gradient(135deg, #e3c078, #c99546);
  text-align: left;
  cursor: pointer;
}
.drought-haul-gate.active > button { color: #e0eee7; border-color: #73ad96; background: #254b3e; }
.drought-haul-gate > button span { color: inherit; font-size: 15px; letter-spacing: 0; }
.drought-haul-gate > button small { color: #503615; font-size: var(--ming-font-small, 14px); line-height: 1.35; }
.drought-haul-gate.active > button small { color: #b8d3c6; }
.drought-haul-gate > button:disabled { color: #9e8e70; border-color: rgba(154, 124, 76, 0.4); background: #2a2114; cursor: not-allowed; }
.drought-haul-gate > button:disabled small { color: #ad9d80; }
.environmental-incident-alert {
  display: grid;
  grid-template-columns: 46px minmax(0, 1fr) minmax(190px, auto);
  align-items: center;
  gap: 13px;
  margin: 0 0 14px;
  padding: 12px 14px;
  color: #dceae5;
  border: 1px solid rgba(77, 145, 132, 0.72);
  border-left: 4px solid #4d9487;
  background: linear-gradient(100deg, rgba(16, 48, 44, 0.96), rgba(9, 24, 22, 0.96));
  box-shadow: 0 12px 28px rgba(2, 12, 11, 0.3), inset 0 0 28px rgba(88, 160, 146, 0.08);
}
.environmental-incident-alert > i {
  width: 44px;
  height: 44px;
  display: grid;
  place-items: center;
  color: #d7ebe5;
  border: 1px solid rgba(112, 174, 160, 0.74);
  background: #285d56;
  font-family: var(--font-brush);
  font-size: 24px;
  font-style: normal;
}
.environmental-incident-alert > div { min-width: 0; display: grid; gap: 3px; }
.environmental-incident-alert > div span { color: #7fb9ab; font-size: var(--ming-font-small, 14px); font-weight: 780; letter-spacing: 0.14em; }
.environmental-incident-alert > div b { color: #e0ece7; font-size: 17px; }
.environmental-incident-alert > div small { color: #bdd1c9; font-size: var(--ming-font-small, 14px); line-height: 1.45; }
.environmental-incident-alert > button {
  min-height: 54px;
  display: grid;
  align-content: center;
  gap: 3px;
  padding: 8px 16px;
  color: #10231f;
  border: 1px solid #8bc5b5;
  background: linear-gradient(135deg, #a5d5c8, #76ad9f);
  text-align: left;
}
.environmental-incident-alert > button b { font-size: 15px; }
.environmental-incident-alert > button small { color: #284a43; font-size: var(--ming-font-small, 14px); line-height: 1.35; }
.environmental-incident-alert.drought { border-color: rgba(190, 139, 62, 0.56); border-left-color: #a97632; background: #171107; }
.environmental-incident-alert.drought > i { border-color: rgba(205, 161, 91, 0.6); background: #35240f; color: #e2bc76; }
.environmental-incident-alert.drought > div span { color: #d6aa63; }
.environmental-incident-alert.drought > div b { color: #efe1c2; }
.environmental-incident-alert.drought > div small { color: #cfbf9e; }
.environmental-incident-alert.drought > button { border-color: #c5964f; background: #d8ad65; color: #251706; }
.environmental-incident-alert.drought > button small { color: #4d3414; }

@media (max-width: 720px) {
  .environmental-incident-alert { grid-template-columns: 42px minmax(0, 1fr); padding: 12px; }
  .environmental-incident-alert > i { width: 40px; height: 40px; }
  .environmental-incident-alert > button { grid-column: 1 / -1; width: 100%; min-height: 58px; }
  .rainstorm-impact-ledger > div,
  .rainstorm-force-ledger > div { grid-template-columns: 1fr; }
  .drought-stage-ledger { grid-template-columns: 1fr; }
  .drought-stage-ledger small { grid-column: auto; }
  .drought-response-ledger > header { display: grid; gap: 3px; }
  .drought-response-actions { grid-template-columns: 1fr; }
  .drought-response-actions article > button { min-height: 58px; }
  .drought-haul-gate,
  .drought-haul-gate.blocked { grid-template-columns: 38px minmax(0, 1fr); }
  .drought-haul-gate > button { grid-column: 1 / -1; min-height: 58px; }
}

@media (max-width: 980px) {
  .environmental-incident-scroll-cue { display: none; }
  .historical-notice-copy { scrollbar-gutter: auto; }
}

@media (max-width: 620px) {
  .environmental-incident-copy h2 > span { font-size: clamp(32px, 9.5vw, 40px); }
  .rainstorm-impact-ledger,
  .rainstorm-force-ledger { padding: 11px; }
  .rainstorm-impact-ledger > header,
  .rainstorm-force-ledger > header { display: grid; gap: 3px; }
  .rainstorm-impact-ledger article b,
  .rainstorm-force-ledger article b { white-space: normal; }
  .rainstorm-route-note p,
  .rainstorm-impact-ledger article small,
  .rainstorm-force-ledger article small,
  .rainstorm-force-ledger > p { font-size: var(--ming-font-small, 14px); }
}

/* NPC 独立事务卷：状态、道路、前置与天机结算分层展示。 */
.actor-assignment-ledger > div { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); }
.actor-assignment-ledger button,
.actor-dialogue-task-ledger button {
  min-width: 0;
  display: grid;
  gap: 2px;
  padding: 7px 9px;
  color: var(--folio-ink, #dce9df);
  border: 1px solid rgba(104, 151, 130, 0.34);
  background: var(--folio-card, rgba(7, 17, 13, 0.72));
  text-align: left;
  cursor: pointer;
}
.actor-assignment-ledger button b,
.actor-dialogue-task-ledger button b { overflow: hidden; padding: 0; border: 0; color: var(--folio-ink, #e2d3ad); font-size: var(--ming-font-small, 14px); text-overflow: ellipsis; white-space: nowrap; }
.actor-assignment-ledger button small,
.actor-dialogue-task-ledger button small { overflow: hidden; color: var(--folio-muted, #88aa99) !important; font-size: var(--ming-font-small, 14px); text-overflow: ellipsis; white-space: nowrap; }
.actor-assignment-ledger button:hover,
.actor-assignment-ledger button:focus-visible,
.actor-dialogue-task-ledger button:hover,
.actor-dialogue-task-ledger button:focus-visible { border-color: var(--folio-rule, rgba(213, 174, 88, 0.68)); background: var(--folio-hover, rgba(32, 42, 28, 0.92)); outline: none; }

.actor-assignment-backdrop {
  position: fixed;
  z-index: 1580;
  inset: 0;
  display: grid;
  place-items: center;
  padding: 20px;
  background: rgba(1, 5, 4, 0.92);
  backdrop-filter: blur(7px);
  animation: modal-fade 160ms ease-out both;
}
.actor-assignment-modal {
  width: min(1120px, 100%);
  height: min(920px, calc(100svh - 40px));
  max-height: calc(100svh - 40px);
  display: grid;
  grid-template-rows: auto minmax(0, 1fr) auto;
  overflow: hidden;
  color: #d9cbaa;
  border: 1px solid rgba(201, 165, 87, 0.52);
  background: linear-gradient(145deg, #111812, #060b09 76%);
  box-shadow: 0 30px 100px rgba(0, 0, 0, 0.82), inset 5px 0 #6f3c31;
  scrollbar-color: #685839 #0b110d;
  animation: modal-rise 190ms ease-out both;
}
.actor-assignment-modal:focus { outline: none; }
.actor-assignment-hero {
  position: relative;
  min-height: 220px;
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto auto;
  align-items: end;
  gap: 18px;
  overflow: hidden;
  padding: 30px 30px 24px;
  border-bottom: 1px solid rgba(200, 164, 84, 0.44);
  background: url('/assets/art/system-focus/npc-assignment-folio-v2.png') center 50% / cover no-repeat;
}
.actor-assignment-hero-shade {
  position: absolute;
  inset: 0;
  background: linear-gradient(90deg, rgba(3, 8, 6, 0.96) 0%, rgba(4, 9, 7, 0.78) 48%, rgba(4, 8, 6, 0.24) 76%, rgba(4, 8, 6, 0.6) 100%), linear-gradient(0deg, rgba(4, 8, 6, 0.94), transparent 72%);
}
.actor-assignment-heading,
.actor-assignment-seal,
.actor-assignment-hero > button { position: relative; z-index: 1; }
.actor-assignment-heading { min-width: 0; align-self: end; }
.actor-assignment-heading > span { color: #c9a65b; font-size: var(--ming-font-small, 14px); font-weight: 780; letter-spacing: 0.18em; }
.actor-assignment-heading h2 { margin: 7px 0 5px; color: #f0e1ba; font-family: var(--font-brush); font-size: clamp(34px, 4.4vw, 58px); font-weight: 400; line-height: 1.05; letter-spacing: 0.08em; }
.actor-assignment-heading p { max-width: 690px; margin: 0; color: #c7bda7; font-size: var(--ming-font-body, 16px); line-height: 1.72; }
.actor-assignment-seal { min-width: 142px; display: grid; grid-template-columns: 48px minmax(0, 1fr); align-items: center; gap: 9px; padding: 9px 12px; border: 1px solid rgba(195, 153, 70, 0.52); background: rgba(8, 15, 11, 0.86); }
.actor-assignment-seal > i { width: 45px; height: 45px; display: grid; place-items: center; color: #d4b66d; border: 1px solid currentColor; border-radius: 50%; font-family: var(--font-brush); font-size: 22px; font-style: normal; }
.actor-assignment-seal > span { display: grid; gap: 2px; }
.actor-assignment-seal small { color: #929c91; font-size: var(--ming-font-small, 14px); letter-spacing: 0.1em; }
.actor-assignment-seal b { color: #e9d8ae; font-size: 16px; }
.actor-assignment-seal.underway { border-color: rgba(93, 155, 125, 0.62); }
.actor-assignment-seal.underway > i,
.actor-assignment-seal.completed > i { color: #86bba0; }
.actor-assignment-seal.blocked,
.actor-assignment-seal.failed { border-color: rgba(166, 76, 59, 0.68); }
.actor-assignment-seal.blocked > i,
.actor-assignment-seal.failed > i { color: #d47e6d; }
.actor-assignment-hero > button { min-height: 62px; padding: 8px 14px; color: #cdbc98; border: 1px solid rgba(195, 154, 72, 0.46); background: rgba(6, 12, 9, 0.86); cursor: pointer; }
.actor-assignment-hero > button b,
.actor-assignment-hero > button small { display: block; }
.actor-assignment-hero > button b { font-size: var(--ming-font-small, 14px); }
.actor-assignment-hero > button small { margin-top: 3px; color: #87978e; font-size: var(--ming-font-small, 14px); }

.actor-assignment-body {
  min-height: 0;
  display: grid;
  grid-template-columns: 318px minmax(0, 1fr);
  overflow: auto;
  scrollbar-color: #685839 #0b110d;
}
.actor-assignment-owner { min-width: 0; padding: 22px; border-right: 1px solid rgba(196, 158, 79, 0.24); background: rgba(15, 23, 18, 0.82); }
.actor-assignment-owner > header { display: grid; grid-template-columns: 82px minmax(0, 1fr); align-items: center; gap: 13px; padding-bottom: 16px; border-bottom: 1px solid rgba(194, 156, 78, 0.25); }
.actor-assignment-portrait { width: 82px; height: 102px; overflow: hidden; margin: 0; border: 1px solid rgba(202, 165, 88, 0.48); background: #090f0c; }
.actor-assignment-portrait img { width: 100%; height: 100%; object-fit: cover; object-position: center 22%; }
.actor-assignment-portrait.fallback { display: grid; place-items: center; }
.actor-assignment-portrait.fallback i { color: #c6a35a; font-family: var(--font-brush); font-size: 38px; font-style: normal; }
.actor-assignment-owner > header span { color: #8cac9b; font-size: var(--ming-font-small, 14px); letter-spacing: 0.12em; }
.actor-assignment-owner h3 { margin: 4px 0 2px; color: #eee0bd; font-family: var(--font-brush); font-size: 29px; font-weight: 400; }
.actor-assignment-owner > header p { margin: 0; color: #a79d87; font-size: var(--ming-font-body, 16px); }
.actor-assignment-condition { display: grid; grid-template-columns: repeat(3, 1fr); margin-top: 13px; border-top: 1px solid rgba(93, 140, 118, 0.25); border-left: 1px solid rgba(93, 140, 118, 0.25); }
.actor-assignment-condition span { display: grid; gap: 3px; padding: 8px; border-right: 1px solid rgba(93, 140, 118, 0.25); border-bottom: 1px solid rgba(93, 140, 118, 0.25); }
.actor-assignment-condition small { color: #87988e; font-size: var(--ming-font-small, 14px); }
.actor-assignment-condition b { color: #d7c797; font-size: 17px; }
.actor-assignment-owner dl { display: grid; margin: 14px 0 0; }
.actor-assignment-owner dl > div { display: grid; grid-template-columns: 70px minmax(0, 1fr); gap: 8px; padding: 7px 0; border-bottom: 1px dashed rgba(169, 141, 78, 0.22); }
.actor-assignment-owner dt { color: #87978d; font-size: var(--ming-font-small, 14px); }
.actor-assignment-owner dd { margin: 0; color: #d6c9aa; font-size: var(--ming-font-small, 14px); line-height: 1.55; }
.actor-assignment-owner > section { margin-top: 15px; padding: 11px 12px; border: 1px solid rgba(95, 145, 121, 0.3); background: rgba(7, 16, 12, 0.64); }
.actor-assignment-owner > section > span { color: #c7a75e; font-size: var(--ming-font-small, 14px); font-weight: 780; }
.actor-assignment-owner > section p { margin: 7px 0 0; color: #acaa9c; font-size: var(--ming-font-body, 16px); line-height: 1.55; }
.actor-assignment-owner > section p b { display: inline-block; min-width: 38px; color: #83aa96; }

.actor-assignment-progress { min-width: 0; display: grid; align-content: start; gap: 13px; padding: 22px; }
.actor-assignment-overview { display: flex; align-items: end; justify-content: space-between; gap: 15px; padding-bottom: 13px; border-bottom: 1px solid rgba(196, 158, 79, 0.27); }
.actor-assignment-overview > div { min-width: 0; }
.actor-assignment-overview span,
.actor-assignment-route > header span,
.actor-assignment-findings > header span { color: #c3a258; font-size: var(--ming-font-small, 14px); font-weight: 780; letter-spacing: 0.12em; }
.actor-assignment-overview h3 { margin: 5px 0 3px; color: #eadbb7; font-family: var(--font-brush); font-size: 27px; font-weight: 400; }
.actor-assignment-overview p { margin: 0; color: #9eab9f; font-size: var(--ming-font-body, 16px); line-height: 1.6; }
.actor-assignment-overview > strong { flex: 0 0 auto; color: #91bea7; font-size: 21px; font-weight: 500; }
.actor-assignment-step-rail { display: grid; grid-template-columns: repeat(auto-fit, minmax(150px, 1fr)); gap: 7px; margin: 0; padding: 0; list-style: none; }
.actor-assignment-step-rail li { min-width: 0; display: grid; grid-template-columns: 37px minmax(0, 1fr); align-items: center; gap: 8px; padding: 9px; border: 1px solid rgba(173, 143, 78, 0.25); background: rgba(12, 18, 14, 0.78); }
.actor-assignment-step-rail i { width: 34px; height: 34px; display: grid; place-items: center; color: #9d895d; border: 1px solid currentColor; border-radius: 50%; font-family: var(--display); font-size: var(--ming-font-small, 14px); font-style: normal; }
.actor-assignment-step-rail span { min-width: 0; display: grid; gap: 3px; }
.actor-assignment-step-rail b { overflow: hidden; color: #cfc2a3; font-size: var(--ming-font-small, 14px); text-overflow: ellipsis; white-space: nowrap; }
.actor-assignment-step-rail small { color: #788a80; font-size: var(--ming-font-small, 14px); }
.actor-assignment-step-rail li.current { border-color: rgba(95, 156, 126, 0.58); box-shadow: inset 3px 0 #679d81; }
.actor-assignment-step-rail li.current i,
.actor-assignment-step-rail li.completed i { color: #86b89f; }
.actor-assignment-step-rail li.blocked i { color: #c46c5d; }
.actor-assignment-route,
.actor-assignment-findings { padding: 13px 14px; border: 1px solid rgba(95, 145, 121, 0.3); background: rgba(6, 14, 10, 0.64); }
.actor-assignment-route > header,
.actor-assignment-findings > header { display: flex; align-items: baseline; justify-content: space-between; gap: 12px; }
.actor-assignment-route > header b,
.actor-assignment-findings > header b { color: #84ac98; font-size: var(--ming-font-small, 14px); }
.actor-assignment-route > div { display: grid; grid-template-columns: minmax(0, 1fr) auto minmax(0, 1fr); align-items: center; gap: 10px; margin-top: 10px; }
.actor-assignment-route > div > span { display: grid; gap: 2px; padding: 8px 10px; border: 1px solid rgba(180, 147, 78, 0.22); background: rgba(18, 21, 15, 0.72); }
.actor-assignment-route > div small { color: #7e9086; font-size: var(--ming-font-small, 14px); }
.actor-assignment-route > div b { overflow: hidden; color: #dbcba6; font-size: var(--ming-font-small, 14px); text-overflow: ellipsis; white-space: nowrap; }
.actor-assignment-route > div > i { color: #bf9d54; font-family: var(--display); font-size: 22px; font-style: normal; }
.actor-assignment-route > p,
.actor-assignment-findings > p { margin: 9px 0 0; color: #94a69b; font-size: var(--ming-font-body, 16px); line-height: 1.55; }
.actor-assignment-findings.clear { border-color: rgba(91, 151, 119, 0.48); background: rgba(13, 43, 30, 0.42); }
.actor-assignment-findings.has-findings { border-color: rgba(159, 81, 65, 0.48); background: rgba(50, 20, 16, 0.38); }
.actor-assignment-findings ul { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 6px; margin: 10px 0 0; padding: 0; list-style: none; }
.actor-assignment-findings li { min-width: 0; display: grid; grid-template-columns: 30px minmax(0, 1fr); gap: 8px; padding: 8px; border: 1px solid rgba(164, 80, 65, 0.35); }
.actor-assignment-findings li > i { width: 28px; height: 28px; display: grid; place-items: center; color: #cc7767; border: 1px solid currentColor; border-radius: 50%; font-family: var(--display); font-style: normal; }
.actor-assignment-findings li span { min-width: 0; display: grid; gap: 2px; }
.actor-assignment-findings li b { color: #dfc7b3; font-size: var(--ming-font-small, 14px); }
.actor-assignment-findings li small { color: #9b8f85; font-size: var(--ming-font-small, 14px); line-height: 1.4; }
.actor-assignment-findings li.warning { border-color: rgba(181, 143, 70, 0.32); }
.actor-assignment-findings li.warning > i { color: #c7a65b; }
.actor-assignment-recovery { padding: 14px; border: 1px solid rgba(196, 151, 64, 0.56); background: linear-gradient(145deg, rgba(48, 34, 12, 0.72), rgba(11, 23, 17, 0.9)); box-shadow: inset 3px 0 rgba(211, 172, 82, 0.72); }
.actor-assignment-recovery > header { display: flex; align-items: center; justify-content: space-between; gap: 12px; }
.actor-assignment-recovery > header > span { display: flex; align-items: center; gap: 9px; min-width: 0; }
.actor-assignment-recovery > header i { width: 34px; height: 34px; display: grid; place-items: center; flex: 0 0 auto; color: #e0bf72; border: 1px solid rgba(220, 181, 89, 0.6); border-radius: 50%; font-family: var(--font-brush); font-size: 18px; font-style: normal; }
.actor-assignment-recovery > header b { color: #eadbb6; font-size: 15px; }
.actor-assignment-recovery > header strong { color: #93c1a7; font-size: var(--ming-font-small, 14px); font-weight: 650; text-align: right; }
.actor-assignment-recovery > p { margin: 10px 0; color: #c8bda5; font-size: var(--ming-font-body, 16px); line-height: 1.65; }
.actor-assignment-recovery > div { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; }
.actor-assignment-recovery button { min-height: 58px; display: grid; grid-template-columns: 35px minmax(0, 1fr); align-items: center; gap: 9px; padding: 9px 11px; color: #e7d7af; border: 1px solid rgba(99, 160, 129, 0.55); background: rgba(13, 38, 27, 0.84); text-align: left; cursor: pointer; }
.actor-assignment-recovery button > i { width: 33px; height: 33px; display: grid; place-items: center; color: #dfbe72; border: 1px solid rgba(213, 175, 85, 0.46); border-radius: 50%; font-family: var(--font-brush); font-size: 17px; font-style: normal; }
.actor-assignment-recovery button > span { min-width: 0; display: grid; gap: 3px; }
.actor-assignment-recovery button b { color: #e8d9b6; font-size: 14px; }
.actor-assignment-recovery button small { color: #a7bcae; line-height: 1.45; }
.actor-assignment-recovery button:hover,
.actor-assignment-recovery button:focus-visible { border-color: #d5b461; background: rgba(23, 56, 40, 0.94); outline: none; }
.actor-assignment-recovery button:disabled { opacity: 0.46; cursor: not-allowed; }
.actor-assignment-recovery > small { display: block; margin-top: 10px; padding-top: 9px; color: #9eaa9f; border-top: 1px dashed rgba(196, 153, 70, 0.3); line-height: 1.55; }
.actor-assignment-footer { display: grid; grid-template-columns: minmax(0, 1fr) minmax(300px, 0.7fr); align-items: stretch; gap: 12px; padding: 14px 20px calc(14px + env(safe-area-inset-bottom)); border-top: 1px solid rgba(195, 157, 78, 0.34); background: #0a100d; }
.actor-assignment-footer > div { display: grid; align-content: center; gap: 3px; padding-left: 11px; border-left: 3px solid #678f79; }
.actor-assignment-footer > div b { color: #d9c79e; font-size: var(--ming-font-small, 14px); }
.actor-assignment-footer > div span { color: #84988c; font-size: var(--ming-font-small, 14px); line-height: 1.5; }
.actor-assignment-footer > button { min-height: 60px; display: grid; grid-template-columns: 38px minmax(0, 1fr); align-items: center; gap: 10px; padding: 9px 13px; color: #e8d9b4; border: 1px solid rgba(97, 158, 127, 0.64); background: linear-gradient(135deg, #173c2c, #102219); text-align: left; cursor: pointer; }
.actor-assignment-footer > button > i { width: 36px; height: 36px; display: grid; place-items: center; color: #dbc075; border: 1px solid rgba(218, 188, 112, 0.54); border-radius: 50%; font-family: var(--font-brush); font-size: 18px; font-style: normal; }
.actor-assignment-footer > button span { min-width: 0; display: grid; gap: 2px; }
.actor-assignment-footer > button b { font-size: 14px; }
.actor-assignment-footer > button small { color: #9db8aa; font-size: var(--ming-font-small, 14px); line-height: 1.35; }
.actor-assignment-footer > button:disabled { opacity: 0.43; cursor: not-allowed; }

@media (max-width: 760px) {
  .actor-assignment-backdrop { place-items: stretch; padding: 0; }
  .actor-assignment-modal { width: 100%; height: 100dvh; max-height: 100dvh; border: 0; }
  .actor-assignment-hero { min-height: 205px; grid-template-columns: minmax(0, 1fr) auto; gap: 8px; padding: 20px 14px 16px; background-position: 62% 50%; }
  .actor-assignment-heading { grid-column: 1 / -1; }
  .actor-assignment-heading h2 { font-size: 35px; }
  .actor-assignment-heading p { display: -webkit-box; overflow: hidden; font-size: var(--ming-font-body, 16px); -webkit-box-orient: vertical; -webkit-line-clamp: 2; }
  .actor-assignment-seal { min-width: 126px; grid-template-columns: 39px minmax(0, 1fr); padding: 7px 9px; }
  .actor-assignment-seal > i { width: 37px; height: 37px; font-size: 18px; }
  .actor-assignment-hero > button { min-height: 48px; padding: 6px 10px; }
  .actor-assignment-hero > button small { display: none; }
  .actor-assignment-body { grid-template-columns: 1fr; }
  .actor-assignment-owner { padding: 14px; border-right: 0; border-bottom: 1px solid rgba(196, 158, 79, 0.24); }
  .actor-assignment-owner > header { grid-template-columns: 64px minmax(0, 1fr); padding-bottom: 11px; }
  .actor-assignment-portrait { width: 64px; height: 76px; }
  .actor-assignment-owner h3 { font-size: 25px; }
  .actor-assignment-owner dl { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0 10px; }
  .actor-assignment-owner dl > div { grid-template-columns: 1fr; gap: 2px; }
  .actor-assignment-owner > section { margin-top: 11px; }
  .actor-assignment-progress { gap: 10px; padding: 14px; }
  .actor-assignment-overview h3 { font-size: 23px; }
  .actor-assignment-step-rail { grid-template-columns: 1fr; }
  .actor-assignment-findings ul { grid-template-columns: 1fr; }
  .actor-assignment-recovery > header { align-items: flex-start; flex-direction: column; }
  .actor-assignment-recovery > header strong { text-align: left; }
  .actor-assignment-recovery > div { grid-template-columns: 1fr; }
  .actor-assignment-footer { z-index: 2; grid-template-columns: 1fr; padding: 9px 12px calc(10px + env(safe-area-inset-bottom)); }
  .actor-assignment-footer > div { display: grid; padding: 0 0 6px 8px; }
  .actor-assignment-footer > div b { font-size: var(--ming-font-small, 14px); }
  .actor-assignment-footer > div span { font-size: var(--ming-font-small, 14px); line-height: 1.35; }
  .actor-assignment-footer > button { min-height: 56px; }
  .actor-assignment-ledger { grid-template-columns: 1fr; }
  .actor-assignment-ledger > div { grid-template-columns: 1fr; }
}

.actor-assignment-modal small,
.actor-assignment-modal dt { font-size: max(13px, 0.8125rem); }

.actor-assignment-heading > span,
.actor-assignment-heading p,
.actor-assignment-owner > header span,
.actor-assignment-owner > header p,
.actor-assignment-owner dd,
.actor-assignment-owner > section > span,
.actor-assignment-owner > section p,
.actor-assignment-overview > div > span,
.actor-assignment-overview p,
.actor-assignment-step-rail b,
.actor-assignment-route > header span,
.actor-assignment-route > header b,
.actor-assignment-findings > header span,
.actor-assignment-findings > header b,
.actor-assignment-route > p,
.actor-assignment-findings > p,
.actor-assignment-findings li b,
.actor-assignment-recovery > header b,
.actor-assignment-recovery > header strong,
.actor-assignment-recovery > p,
.actor-assignment-recovery button b,
.actor-assignment-recovery button small,
.actor-assignment-recovery > small,
.actor-assignment-footer > div b,
.actor-assignment-footer > div span,
.actor-assignment-loadout > header span,
.actor-assignment-loadout-items b,
.actor-assignment-loadout-items em,
.actor-assignment-loadout-skills b,
.actor-assignment-loadout-items > p,
.actor-assignment-loadout-skills > p { font-size: var(--ming-font-small, 14px); }

.actor-assignment-loadout { padding: 0 !important; overflow: hidden; border-color: rgba(105, 157, 130, 0.42) !important; background: linear-gradient(145deg, rgba(12, 29, 21, 0.86), rgba(5, 12, 9, 0.92)) !important; }
.actor-assignment-loadout > header { display: flex; align-items: baseline; justify-content: space-between; gap: 8px; padding: 9px 11px; border-bottom: 1px solid rgba(105, 157, 130, 0.3); background: rgba(27, 50, 37, 0.46); }
.actor-assignment-loadout > header span { color: #d2b66b; font-size: var(--ming-font-small, 14px); font-weight: 780; letter-spacing: 0.12em; }
.actor-assignment-loadout > header small { color: #86a795; font-size: var(--ming-font-small, 14px); }
.actor-assignment-loadout-items { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 6px; padding: 8px; }
.actor-assignment-loadout-items article { min-width: 0; display: grid; grid-template-columns: 43px minmax(0, 1fr); align-items: center; gap: 8px; padding: 7px; border: 1px solid rgba(177, 144, 73, 0.25); background: rgba(9, 15, 11, 0.86); }
.actor-assignment-loadout-items article:only-child { grid-column: 1 / -1; }
.actor-assignment-loadout-items article.equipped { border-color: rgba(105, 163, 132, 0.48); box-shadow: inset 2px 0 #73a88c; }
.actor-assignment-loadout-items article.assignment { border-color: var(--folio-rule, rgba(201, 162, 76, 0.5)); background: var(--folio-card, linear-gradient(135deg, rgba(47, 38, 17, 0.72), rgba(10, 25, 17, 0.9))); box-shadow: inset 2px 0 #c49d4f; }
.actor-assignment-loadout-items article.assignment small { overflow: visible; line-height: 1.3; text-overflow: clip; white-space: normal; }
.actor-assignment-loadout-items figure { width: 43px; height: 43px; display: grid; place-items: center; overflow: hidden; margin: 0; border: 1px solid rgba(184, 148, 75, 0.32); background: radial-gradient(circle, rgba(77, 69, 45, 0.38), rgba(5, 10, 8, 0.9)); }
.actor-assignment-loadout-items figure img { width: 100%; height: 100%; display: block; object-fit: contain; }
.actor-assignment-loadout-items figure > i { color: #c3a257; font-family: var(--display); font-size: 17px; font-style: normal; }
.actor-assignment-loadout-items article > span { min-width: 0; display: grid; gap: 1px; }
.actor-assignment-loadout-items small { overflow: hidden; color: #79a28d; font-size: var(--ming-font-small, 14px); text-overflow: ellipsis; white-space: nowrap; }
.actor-assignment-loadout-items b { overflow: hidden; color: #e2d4b2; font-size: var(--ming-font-small, 14px); text-overflow: ellipsis; white-space: nowrap; }
.actor-assignment-loadout-items em { color: #8f968d; font-size: var(--ming-font-small, 14px); font-style: normal; }
.actor-assignment-loadout-skills { display: grid; gap: 5px; padding: 0 8px 8px; }
.actor-assignment-loadout-skills > article { min-width: 0; display: grid; grid-template-columns: 30px minmax(0, 1fr) auto; align-items: center; gap: 8px; padding: 7px 9px; border: 1px solid rgba(105, 157, 130, 0.28); background: rgba(13, 27, 20, 0.78); }
.actor-assignment-loadout-skills > article > i { width: 28px; height: 28px; display: grid; place-items: center; color: #91bda5; border: 1px solid currentColor; border-radius: 50%; font-family: var(--display); font-size: var(--ming-font-small, 14px); font-style: normal; }
.actor-assignment-loadout-skills > article > span { min-width: 0; display: grid; grid-template-columns: auto minmax(0, 1fr); align-items: center; gap: 2px 7px; }
.actor-assignment-loadout-skills small { color: #789789; font-size: var(--ming-font-small, 14px); }
.actor-assignment-loadout-skills b { overflow: hidden; color: #d9ceb0; font-size: var(--ming-font-small, 14px); text-overflow: ellipsis; white-space: nowrap; }
.actor-assignment-loadout-skills u { grid-column: 1 / -1; height: 3px; overflow: hidden; background: rgba(128, 151, 138, 0.18); text-decoration: none; }
.actor-assignment-loadout-skills u em { height: 100%; display: block; background: linear-gradient(90deg, #628f78, #b7a05d); }
.actor-assignment-loadout-skills strong { color: #b9a467; font-size: 14px; font-weight: 560; }
.actor-assignment-loadout-items > p,
.actor-assignment-loadout-skills > p { margin: 0 !important; padding: 4px; color: #8d9b91 !important; font-size: var(--ming-font-body, 16px); }

@media (max-width: 420px) {
  .actor-assignment-loadout-items { grid-template-columns: 1fr 1fr; }
  .actor-assignment-loadout-items article { grid-template-columns: 39px minmax(0, 1fr); padding: 6px; }
  .actor-assignment-loadout-items figure { width: 39px; height: 39px; }
}

/* V0.8.3 · 行动草稿落笔转场 */
.free-action-panel.draft-arrived {
  animation: action-draft-panel 680ms cubic-bezier(0.2, 0.7, 0.2, 1) both;
}

.free-action-panel.draft-arrived .free-action-composer textarea {
  animation: action-draft-ink 820ms ease-out both;
}

.free-action-panel.draft-arrived .free-action-label > span:not(.action-draft-receipt) {
  display: none;
}

.action-draft-receipt {
  min-width: 0;
  display: inline-flex;
  align-items: center;
  gap: 6px;
  color: #9fc7b2 !important;
  font-size: var(--ming-font-small, 14px);
  line-height: 1.35;
  animation: action-draft-arrival 520ms ease-out both;
}

.action-draft-receipt > i {
  width: 22px;
  height: 22px;
  flex: 0 0 22px;
  display: grid;
  place-items: center;
  color: #efd596;
  border: 1px solid rgba(203, 163, 81, 0.66);
  border-radius: 50%;
  background: #3b241a;
  font-family: var(--font-brush);
  font-size: var(--ming-font-small, 14px);
  font-style: normal;
}

.action-draft-receipt > b {
  flex: 0 0 auto;
  color: #d9c38d;
  font-size: var(--ming-font-small, 14px);
  font-weight: 720;
  white-space: nowrap;
}

.action-draft-receipt > small {
  min-width: 0;
  overflow: hidden;
  color: #8eae9e !important;
  font-size: var(--ming-font-small, 14px);
  font-style: normal;
  text-overflow: ellipsis;
  white-space: nowrap;
}

@keyframes action-draft-arrival {
  from { opacity: 0; transform: translateY(-6px); }
  to { opacity: 1; transform: translateY(0); }
}

@keyframes action-draft-panel {
  0% { box-shadow: inset 0 0 0 rgba(213, 175, 94, 0); }
  38% { box-shadow: inset 4px 0 rgba(213, 175, 94, 0.78), 0 0 22px rgba(117, 144, 125, 0.18); }
  100% { box-shadow: inset 1px 0 rgba(213, 175, 94, 0.16); }
}

@keyframes action-draft-ink {
  0% { border-color: rgba(213, 175, 94, 0.9); background-color: rgba(28, 34, 24, 0.96); }
  100% { border-color: rgba(218, 190, 132, 0.34); background-color: rgba(2, 6, 5, 0.72); }
}

@media (max-width: 760px) {
  .campaign-shell .free-action-panel {
    height: auto;
    min-height: 0;
    grid-template-columns: minmax(0, 1fr);
    gap: 14px;
    padding: 15px;
  }

  .campaign-shell .free-action-intro,
  .campaign-shell .free-action-composer {
    height: auto;
    min-height: 0;
    overflow: visible;
  }

  .campaign-shell .free-action-composer {
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    grid-template-rows: auto auto auto;
    gap: 8px;
  }

  .campaign-shell .free-action-label {
    display: grid;
    grid-column: 1;
    grid-row: 1;
    grid-template-columns: auto minmax(0, 1fr);
    align-items: center;
    gap: 5px 9px;
  }

  .campaign-shell .free-action-label > b {
    writing-mode: horizontal-tb;
    white-space: nowrap;
  }

  .campaign-shell .free-action-label > span:not(.action-draft-receipt) {
    justify-self: end;
  }

  .campaign-shell .free-action-composer textarea {
    grid-column: 1;
    grid-row: 2;
    min-height: 140px;
    max-height: 220px;
    font-size: var(--ming-font-body, 16px);
    line-height: 1.55;
  }

  .campaign-shell .free-action-toolbar {
    grid-column: 1;
    grid-row: 3;
  }

  .action-draft-receipt {
    grid-column: 1 / -1;
    width: 100%;
    display: grid;
    grid-template-columns: 24px minmax(0, 1fr);
    align-items: center;
    gap: 4px 6px;
    font-size: var(--ming-font-small, 14px);
  }

  .action-draft-receipt > i { grid-row: 1 / 3; }
  .action-draft-receipt > b,
  .action-draft-receipt > small { font-size: var(--ming-font-small, 14px); }
  .action-draft-receipt > small {
    grid-column: 2;
    white-space: normal;
  }
}

@media (prefers-reduced-motion: reduce) {
  .free-action-panel.draft-arrived,
  .free-action-panel.draft-arrived .free-action-composer textarea,
  .action-draft-receipt { animation: none; }
}

/* V0.8.4 · 家宅、据点与据点建筑彻底分卷 */
.home-entry-disclosure,
.home-enter-button {
  color: var(--ming-ink);
  border-color: var(--ming-rule);
  background: var(--ming-paper-raised);
  box-shadow: inset 3px 0 #8e6d35;
}

.home-interior-summary {
  position: relative;
  min-height: 290px;
  display: grid;
  align-content: start;
  gap: 10px;
  overflow: hidden;
  padding: 15px;
  border: 1px solid rgba(191, 157, 85, 0.3);
  background: #07100c;
  isolation: isolate;
}

.home-interior-summary::before {
  content: '';
  position: absolute;
  z-index: -2;
  inset: 0;
  background: var(--home-interior-art) 76% center / cover no-repeat;
  opacity: 0.42;
}

.home-interior-summary::after {
  content: '';
  position: absolute;
  z-index: -1;
  inset: 0;
  background: linear-gradient(90deg, rgba(5, 12, 9, 0.98) 0 52%, rgba(5, 12, 9, 0.68) 74%, rgba(5, 12, 9, 0.52));
}

.home-interior-summary > header,
.home-interior-ledger > header,
.home-interior-actions > header {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 12px;
}

.home-interior-summary > header span,
.home-interior-ledger > header span,
.home-interior-actions > header span {
  color: #c9a75c;
  font-size: var(--ming-font-small, 14px);
  font-weight: 780;
  letter-spacing: 0.1em;
}

.home-interior-summary > header h3,
.home-interior-ledger > header h3 {
  margin: 4px 0 2px;
  color: #eee0bd;
  font-family: var(--font-brush);
  font-size: 26px;
  font-weight: 400;
  line-height: 1.15;
}

.home-interior-summary > header p,
.home-interior-ledger > header p {
  margin: 0;
  color: #b8ad96;
  font-size: var(--ming-font-body, 16px);
  line-height: 1.55;
}

.home-interior-summary > header > b,
.home-interior-ledger > header > b {
  flex: 0 0 auto;
  padding: 5px 9px;
  color: #ddc57d;
  border: 1px solid rgba(203, 163, 79, 0.42);
  background: #2d2415;
  font-size: var(--ming-font-small, 14px);
}

.home-interior-status {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  border-top: 1px solid rgba(196, 159, 81, 0.22);
  border-left: 1px solid rgba(196, 159, 81, 0.22);
}

.home-interior-status > span {
  min-width: 0;
  display: grid;
  gap: 2px;
  padding: 8px;
  border-right: 1px solid rgba(196, 159, 81, 0.22);
  border-bottom: 1px solid rgba(196, 159, 81, 0.22);
  background: rgba(4, 10, 7, 0.78);
}

.home-interior-status small { color: #8da293; font-size: var(--ming-font-small, 14px); }
.home-interior-status b { color: #e0d0aa; font-size: 14px; }

.home-enter-button {
  min-height: 44px;
  padding: 7px 11px;
  color: #e5d4aa;
  border: 1px solid rgba(110, 165, 137, 0.48);
  background: #12271d;
  font-size: var(--ming-font-small, 14px);
  cursor: pointer;
}

.home-interior-summary > footer {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(160px, auto);
  align-items: center;
  gap: 10px;
  margin-top: auto;
  padding-top: 10px;
  border-top: 1px solid rgba(191, 157, 84, 0.22);
}
.home-interior-summary > footer > p { margin: 0; color: #a99e88; font-size: var(--ming-font-body, 16px); line-height: 1.55; }
.home-enter-button { display: grid; gap: 2px; text-align: left; }
.home-enter-button b { font-size: 14px; }
.home-enter-button small { color: #91ad9d; font-size: var(--ming-font-small, 14px); }

.home-unverified-ledger {
  position: relative;
  min-height: 290px;
  display: grid;
  align-content: start;
  gap: 15px;
  overflow: hidden;
  padding: 18px;
  border: 1px solid rgba(190, 153, 77, 0.42);
  background:
    linear-gradient(90deg, rgba(6, 12, 9, 0.98) 0 50%, rgba(7, 12, 9, 0.72) 76%, rgba(7, 12, 9, 0.58)),
    var(--home-interior-art) 78% center / cover no-repeat,
    #07100c;
}
.home-unverified-ledger > header,
.home-unverified-ledger > footer {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 14px;
}
.home-unverified-ledger > header { padding-bottom: 12px; border-bottom: 1px solid rgba(192, 156, 79, 0.24); }
.home-unverified-ledger > header span,
.home-unverified-body span { color: #caa85f; font-size: var(--ming-font-small, 14px); font-weight: 780; letter-spacing: 0.08em; }
.home-unverified-ledger > header h3 { margin: 4px 0 2px; color: #efe0bc; font-family: var(--font-brush); font-size: 27px; font-weight: 400; }
.home-unverified-ledger > header p,
.home-unverified-body p,
.home-unverified-ledger > footer > p { margin: 0; color: #b9ae96; font-size: var(--ming-font-body, 16px); line-height: 1.65; }
.home-unverified-ledger > header > b { padding: 6px 11px; color: #dfc273; border: 1px solid rgba(211, 171, 86, 0.55); background: #2b2214; font-size: var(--ming-font-small, 14px); }
.home-unverified-body { display: grid; grid-template-columns: 58px minmax(0, 1fr); align-items: center; gap: 13px; max-width: 670px; }
.home-unverified-body > i { display: grid; width: 58px; height: 58px; place-items: center; color: #d7bd78; border: 1px solid rgba(204, 166, 84, 0.48); border-radius: 50%; background: rgba(33, 26, 15, 0.9); font-family: var(--font-brush); font-size: 25px; font-style: normal; }
.home-unverified-body h4 { margin: 4px 0 5px; color: #eadbb7; font-size: 18px; }
.home-unverified-ledger > footer { align-items: center; margin-top: auto; padding-top: 12px; border-top: 1px solid rgba(192, 156, 79, 0.24); }
.home-unverified-ledger > footer > p { max-width: 620px; }

.home-interior-ledger {
  display: grid;
  gap: 15px;
  padding: 18px;
  background: #07100c;
}
.home-interior-ledger > header {
  padding: 4px 3px 13px;
  border-bottom: 1px solid rgba(193, 158, 84, 0.28);
}
.home-interior-ledger > header > b.present { color: #a8cfba; border-color: rgba(104, 163, 134, 0.52); background: #142b20; }
.home-interior-ledger > header > b.away { color: #c6b17c; }
.home-rename-editor {
  border: 1px solid rgba(181, 145, 72, 0.34);
  background: #0c140f;
}
.home-rename-editor > summary {
  min-height: 48px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  padding: 8px 12px;
  color: #e1cea2;
  cursor: pointer;
  list-style: none;
}
.home-rename-editor > summary::-webkit-details-marker { display: none; }
.home-rename-editor > summary::after { content: '改'; color: #cfb269; font-family: var(--font-brush); font-size: 22px; }
.home-rename-editor[open] > summary::after { content: '收'; }
.home-rename-editor > summary > span { min-width: 0; display: grid; gap: 2px; }
.home-rename-editor > summary b { font-size: 14px; }
.home-rename-editor > summary small { color: #9eaa9f; font-size: var(--ming-font-small, 14px); }
.home-rename-editor > summary > em {
  margin-left: auto;
  color: #a9cbb9;
  font-size: var(--ming-font-small, 14px);
  font-style: normal;
  white-space: nowrap;
}
.home-rename-editor > div {
  display: grid;
  grid-template-columns: auto minmax(180px, 1fr) minmax(185px, auto);
  align-items: center;
  gap: 9px;
  padding: 11px 12px 12px;
  border-top: 1px solid rgba(181, 145, 72, 0.24);
  background: #07100c;
}
.home-rename-editor label { color: #c7b68f; font-size: var(--ming-font-small, 14px); }
.home-rename-editor input {
  min-width: 0;
  min-height: 44px;
  padding: 8px 11px;
  color: #efe0bb;
  border: 1px solid rgba(179, 148, 80, 0.48);
  background: #050b08;
  font-size: var(--ming-font-body, 16px);
}
.home-rename-editor input:focus { border-color: #cbb06b; outline: 2px solid rgba(111, 170, 141, 0.26); }
.home-rename-editor button {
  min-height: 44px;
  display: grid;
  gap: 1px;
  padding: 7px 11px;
  color: #eddcaf;
  border: 1px solid rgba(102, 162, 132, 0.52);
  background: #14271d;
  cursor: pointer;
  text-align: left;
}
.home-rename-editor button b { font-size: 14px; }
.home-rename-editor button small { color: #9cb4a6; font-size: var(--ming-font-small, 14px); }
.home-interior-nav {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 8px;
}
.home-interior-nav a {
  min-height: 50px;
  display: grid;
  align-content: center;
  gap: 2px;
  padding: 8px 12px;
  color: #e4d2a7;
  border: 1px solid rgba(176, 145, 78, 0.34);
  background: #12170f;
  text-decoration: none;
}
.home-interior-nav a:hover,
.home-interior-nav a:focus-visible { border-color: rgba(112, 170, 141, 0.64); background: #14271d; outline: none; }
.home-interior-nav b { font-size: 14px; }
.home-interior-nav small { color: #9cae9f; font-size: var(--ming-font-small, 14px); }

.home-interior-actions {
  display: grid;
  gap: 10px;
  padding: 14px;
  border: 1px solid rgba(105, 156, 130, 0.32);
  background: #09150f;
}
.home-interior-actions > header h4 { margin: 3px 0 0; color: #eadbb8; font-size: 18px; }
.home-interior-actions > header > b { color: #a9cbb9; font-size: var(--ming-font-small, 14px); }
.system-focus-body .home-interior-actions .home-action-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.system-focus-body .home-interior-actions .home-action-card { min-height: 146px; }
.home-interior-ledger .home-action-card span,
.home-interior-ledger .home-action-card p,
.home-interior-ledger .home-action-card footer b,
.home-interior-ledger .dwelling-storage-columns article small,
.home-interior-ledger .dwelling-storage-columns > div > p { font-size: var(--ming-font-small, 14px); }
.home-interior-ledger [data-personal-action] {
  min-height: 44px;
  padding: 8px 11px;
  font-size: var(--ming-font-small, 14px);
}
.home-interior-ledger .residential-construction [data-personal-action] {
  min-height: 52px;
  font-size: var(--ming-font-small, 14px);
}
.home-away-notice {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(210px, 0.34fr);
  gap: 14px;
  align-items: center;
  padding: 16px;
  border: 1px solid rgba(159, 134, 81, 0.42);
  background: #10140f;
}
.home-away-notice span { color: #c9a95f; font-size: var(--ming-font-small, 14px); letter-spacing: 0.08em; }
.home-away-notice h4 { margin: 4px 0 5px; color: #eadbb8; font-size: 18px; }
.home-away-notice p { margin: 0; color: #b7ad96; font-size: var(--ming-font-body, 16px); line-height: 1.65; }
.home-away-notice .system-action-seed { min-height: 50px; }

.home-scope-boundary {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 8px;
}
.home-scope-boundary > span {
  padding: 10px 12px;
  color: #a99f8c;
  border: 1px solid rgba(191, 157, 84, 0.22);
  background: #0a120e;
  font-size: var(--ming-font-small, 14px);
  line-height: 1.6;
}
.home-scope-boundary b { display: block; color: #d4b66d; font-size: var(--ming-font-small, 14px); }

.building-account-empty > div p,
.settlement-readiness > div > p { font-size: var(--ming-font-body, 16px); line-height: 1.6; }
.settlement-readiness-list b { font-size: var(--ming-font-small, 14px); }
.settlement-readiness-list small { overflow: visible; font-size: var(--ming-font-small, 14px); line-height: 1.45; text-overflow: clip; white-space: normal; }

@media (max-width: 760px) {
  .home-unverified-ledger { min-height: 0; padding: 13px; background-position: center; }
  .home-unverified-ledger > header,
  .home-unverified-ledger > footer { flex-direction: column; }
  .home-unverified-body { grid-template-columns: 46px minmax(0, 1fr); }
  .home-unverified-body > i { width: 46px; height: 46px; font-size: 21px; }
  .home-interior-summary { min-height: 0; padding: 13px; }
  .home-interior-summary::before { background-position: center; opacity: 0.22; }
  .home-interior-summary::after { background: rgba(5, 12, 9, 0.8); }
  .home-interior-status { grid-template-columns: 1fr; }
  .home-interior-summary > footer { grid-template-columns: 1fr; }
  .home-enter-button { width: 100%; }
  .home-interior-ledger { padding: 12px; }
  .home-interior-ledger > header,
  .home-interior-actions > header { flex-direction: column; }
  .home-interior-nav { grid-template-columns: 1fr; }
  .home-rename-editor > div { grid-template-columns: 1fr; }
  .home-rename-editor > summary { min-height: 52px; }
  .home-rename-editor > summary small,
  .home-rename-editor > summary > em,
  .home-rename-editor label,
  .home-rename-editor button small { font-size: var(--ming-font-small, 14px); }
  .home-rename-editor input,
  .home-rename-editor button { width: 100%; min-height: 46px; }
  .home-interior-nav a { min-height: 52px; }
  .dwelling-hired-repair { grid-template-columns: 82px minmax(0, 1fr); }
  .dwelling-hired-repair > figure { width: 82px; height: 82px; }
  .dwelling-hired-repair > div > div { grid-template-columns: 1fr; }
  .dwelling-hired-repair header span,
  .dwelling-hired-repair p,
  .dwelling-hired-repair button small { font-size: var(--ming-font-small, 14px); }
  .home-fire-aftermath { grid-template-columns: 1fr; padding: 11px; }
  .home-fire-aftermath > figure { min-height: 0; aspect-ratio: 16 / 9; }
  .home-fire-aftermath header { grid-template-columns: 1fr; }
  .home-fire-aftermath header b { grid-row: auto; grid-column: auto; justify-self: start; }
  .home-fire-aftermath-damage { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .home-fire-aftermath-actions { grid-template-columns: 1fr; }
  .home-fire-aftermath h5 { font-size: 20px; }
  .home-fire-aftermath p,
  .home-fire-aftermath header span,
  .home-fire-aftermath header b,
  .home-fire-aftermath-damage small,
  .home-fire-aftermath-damage em,
  .home-fire-aftermath-actions button small { font-size: var(--ming-font-small, 14px); }
  .system-focus-body .home-interior-actions .home-action-grid { grid-template-columns: 1fr; }
  .home-interior-ledger .residence-ledger-card > header span,
  .home-interior-ledger .residence-ledger-card > header p,
  .home-interior-ledger .residence-ledger-card > header strong,
  .home-interior-ledger .residence-ledger-card > p,
  .home-interior-ledger .residence-metrics small,
  .home-interior-ledger .residence-metrics em,
  .home-interior-ledger .residence-facilities b,
  .home-interior-ledger .residence-facilities span,
  .home-interior-ledger .residence-repairs b,
  .home-interior-ledger .residence-repairs span,
  .home-interior-ledger .home-action-card span,
  .home-interior-ledger .home-action-card p,
  .home-interior-ledger .home-action-card footer b,
  .home-interior-ledger .dwelling-storage-columns article b,
  .home-interior-ledger .dwelling-storage-columns article small,
  .home-interior-ledger .dwelling-storage-columns > div > p,
  .home-interior-ledger .home-interior-nav small,
  .home-interior-ledger > header span,
  .home-interior-ledger > header > b,
  .home-interior-ledger .home-interior-actions > header span,
  .home-interior-ledger .home-interior-actions > header > b,
  .home-interior-ledger .residence-maintenance-ledger > header span,
  .home-interior-ledger .residence-maintenance-ledger > header > b,
  .home-interior-ledger .dwelling-storage > header span,
  .home-interior-ledger .dwelling-storage > header > b,
  .home-interior-ledger [data-personal-action] { font-size: var(--ming-font-small, 14px); }
  .home-away-notice { grid-template-columns: 1fr; padding: 13px; }
  .home-scope-boundary { grid-template-columns: 1fr; }
}

/* V0.8.5 · 异地返家、家具实体与同住家人互动 */
.home-return-button {
  min-width: min(100%, 238px);
  min-height: 52px !important;
  border-color: rgba(202, 164, 82, 0.58) !important;
  background: #2a2113 !important;
  box-shadow: inset 4px 0 #a6553f;
}
.home-return-button:hover,
.home-return-button:focus-visible { border-color: #d0b36d !important; background: #342919 !important; outline: none; }
.home-return-button b { color: #f0ddb0; font-size: 15px; }
.home-return-button small { color: #c0b292; font-size: var(--ming-font-small, 14px); line-height: 1.45; white-space: normal; }

.home-interior-nav { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.dwelling-furniture-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 10px;
}
.dwelling-furniture-card {
  min-width: 0;
  display: grid;
  grid-template-columns: 96px minmax(0, 1fr);
  overflow: hidden;
  border: 1px solid rgba(183, 151, 81, 0.34);
  background: var(--folio-card, #0c110c);
}
.dwelling-furniture-card > figure { position: relative; min-height: 178px; margin: 0; background: #080b08; }
.dwelling-furniture-card > figure img { width: 100%; height: 100%; object-fit: cover; opacity: 0.82; }
.dwelling-furniture-card > figure figcaption {
  position: absolute;
  left: 7px;
  bottom: 7px;
  padding: 3px 6px;
  color: #ead8ae;
  border: 1px solid rgba(212, 174, 91, 0.5);
  background: #241d12;
  font-size: var(--ming-font-small, 14px);
}
.dwelling-furniture-card > div { min-width: 0; display: grid; align-content: start; gap: 8px; padding: 11px; }
.dwelling-furniture-card header { min-width: 0; display: grid; gap: 2px; }
.dwelling-furniture-card header span { color: var(--folio-muted, #9bb7a7); font-size: var(--ming-font-small, 14px); font-weight: 750; letter-spacing: 0.08em; }
.dwelling-furniture-card header b { color: var(--folio-ink, #e7d8b6); font-size: 15px; line-height: 1.35; }
.dwelling-furniture-card p { margin: 0; color: var(--folio-muted, #b2a792); font-size: var(--ming-font-body, 16px); line-height: 1.55; }
.furniture-condition { display: grid; gap: 4px; }
.furniture-condition i { height: 5px; overflow: hidden; background: #20251f; }
.furniture-condition i b { display: block; height: 100%; background: #8dae98; }
.furniture-condition small { color: #9e9582; font-size: var(--ming-font-small, 14px); line-height: 1.4; }
.dwelling-furniture-card button {
  min-height: 46px;
  display: grid;
  align-content: center;
  gap: 1px;
  padding: 7px 9px;
  color: var(--folio-ink, #e7d4a7);
  border: 1px solid rgba(106, 158, 132, 0.48);
  background: var(--folio-card, #14271d);
  text-align: left;
  cursor: pointer;
}
.dwelling-furniture-card button b { font-size: var(--ming-font-small, 14px); }
.dwelling-furniture-card button small { color: var(--folio-muted, #9eb7a8); font-size: var(--ming-font-small, 14px); }
.dwelling-furniture-card button:disabled { opacity: 0.5; cursor: not-allowed; }
.furniture-view-only { color: #988d79; font-size: var(--ming-font-small, 14px); }
.furniture-card-actions { display: grid; gap: 6px; }
.dwelling-furniture-card .furniture-move-action {
  border-color: var(--folio-rule, rgba(183, 151, 81, 0.42));
  background: var(--folio-card, #241f14);
}
.dwelling-furniture-card .furniture-move-action small { color: var(--folio-muted, #b7a98b); }
.pending-furnishing-ledger {
  display: grid;
  gap: 10px;
  margin-top: 12px;
  padding: 12px;
  border: 1px solid rgba(183, 151, 81, 0.34);
  background: linear-gradient(135deg, rgba(29, 25, 15, 0.9), rgba(9, 17, 12, 0.96));
}
.pending-furnishing-ledger > header {
  display: flex;
  align-items: end;
  justify-content: space-between;
  gap: 12px;
  padding-bottom: 8px;
  border-bottom: 1px solid rgba(183, 151, 81, 0.22);
}
.pending-furnishing-ledger > header div { display: grid; gap: 3px; }
.pending-furnishing-ledger > header span,
.pending-furnishing-card span { color: #9bb7a7; font-size: var(--ming-font-small, 14px); font-weight: 750; letter-spacing: 0.06em; }
.pending-furnishing-ledger > header h5 { margin: 0; color: #e7d8b6; font-size: 15px; line-height: 1.45; }
.pending-furnishing-ledger > header > b { color: #ddc57e; font-size: var(--ming-font-small, 14px); }
.pending-furnishing-ledger > div { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; }
.pending-furnishing-card {
  min-width: 0;
  display: grid;
  grid-template-columns: 72px minmax(0, 1fr) minmax(150px, 0.7fr);
  align-items: stretch;
  border: 1px solid rgba(105, 158, 132, 0.34);
  background: #0b120d;
}
.pending-furnishing-card > img { width: 72px; height: 100%; min-height: 92px; object-fit: cover; opacity: 0.88; }
.pending-furnishing-card > div { min-width: 0; display: grid; align-content: center; gap: 3px; padding: 9px; }
.pending-furnishing-card > div b { color: #eadab8; font-size: 15px; }
.pending-furnishing-card > div small { color: #ada28d; font-size: var(--ming-font-small, 14px); line-height: 1.45; }
.pending-furnishing-card > button {
  min-height: 52px;
  display: grid;
  align-content: center;
  gap: 3px;
  padding: 10px;
  color: #ead8ae;
  border: 0;
  border-left: 1px solid rgba(105, 158, 132, 0.38);
  background: #153024;
  text-align: left;
  cursor: pointer;
}
.pending-furnishing-card > button b,
.pending-furnishing-card > button small { font-size: var(--ming-font-small, 14px); line-height: 1.4; }
.pending-furnishing-card > button small { color: #a5bdad; }
.pending-furnishing-card > button:disabled { opacity: 0.5; cursor: not-allowed; }

.hearth-cooking-ledger {
  grid-column: 1 / -1;
  min-width: 0;
  display: grid;
  gap: 11px;
  padding: 13px;
  border: 1px solid rgba(199, 158, 75, 0.48);
  background: var(--folio-card, linear-gradient(135deg, rgba(35, 24, 13, 0.96), rgba(8, 19, 13, 0.98) 52%));
  box-shadow: inset 4px 0 #9e4b35;
}
.hearth-cooking-ledger > header {
  display: grid;
  grid-template-columns: 92px minmax(0, 1fr) auto;
  align-items: center;
  gap: 12px;
  padding-bottom: 11px;
  border-bottom: 1px solid rgba(190, 150, 73, 0.28);
}
.hearth-cooking-ledger > header figure { width: 92px; height: 72px; margin: 0; overflow: hidden; background: #080906; }
.hearth-cooking-ledger > header img { width: 100%; height: 100%; object-fit: cover; opacity: 0.88; }
.hearth-cooking-ledger > header > div { min-width: 0; display: grid; gap: 3px; }
.hearth-cooking-ledger > header span { color: var(--folio-muted, #d3ad60); font-size: var(--ming-font-small, 14px); font-weight: 800; letter-spacing: 0.08em; }
.hearth-cooking-ledger > header h3 { margin: 0; color: var(--folio-ink, #f0dfba); font-size: 19px; line-height: 1.35; }
.hearth-cooking-ledger > header p { margin: 0; color: var(--folio-muted, #bdb19a); font-size: var(--ming-font-body, 16px); line-height: 1.55; }
.hearth-cooking-ledger > header > b { align-self: start; padding: 5px 8px; color: var(--folio-ink, #d6bf87); border: 1px solid rgba(190, 150, 73, 0.38); background: var(--folio-card, #241d12); font-size: var(--ming-font-small, 14px); white-space: nowrap; }

.hearth-live-fire { display: grid; grid-template-columns: 42px minmax(0, 1fr); align-items: center; gap: 10px; padding: 10px 12px; border: 1px solid rgba(179, 143, 73, 0.32); background: var(--folio-card, rgba(17, 18, 13, 0.86)); }
.hearth-live-fire > i { width: 38px; height: 38px; display: grid; place-items: center; color: var(--folio-ink, #dac58f); border: 1px solid rgba(199, 159, 80, 0.48); background: var(--folio-card, #241b10); font-size: 16px; font-style: normal; font-weight: 900; }
.hearth-live-fire > span { min-width: 0; display: grid; grid-template-columns: auto minmax(0, 1fr); align-items: baseline; gap: 2px 9px; }
.hearth-live-fire small { color: var(--folio-muted, #9eb3a5); font-size: var(--ming-font-small, 14px); font-weight: 800; letter-spacing: 0.08em; }
.hearth-live-fire b { color: var(--folio-ink, #ead7ab); font-size: 14px; }
.hearth-live-fire em { grid-column: 1 / -1; color: var(--folio-muted, #aaa18f); font-size: var(--ming-font-small, 14px); font-style: normal; line-height: 1.45; }
.hearth-live-fire.burning { border-color: var(--folio-rule, rgba(210, 137, 62, 0.48)); background: var(--folio-card, linear-gradient(90deg, rgba(63, 29, 12, 0.92), rgba(18, 17, 12, 0.9))); }
.hearth-live-fire.burning > i { color: var(--folio-ink, #ffe1a3); border-color: var(--folio-rule, rgba(232, 150, 65, 0.65)); background: var(--folio-card, #612d13); box-shadow: 0 0 18px rgba(213, 102, 35, 0.24); }
.hearth-live-fire.embers > i { color: var(--folio-ink, #e6b681); border-color: var(--folio-rule, rgba(195, 102, 55, 0.55)); background: var(--folio-card, #3f2116); }
.hearth-cooking-recipes { display: grid; gap: 9px; }
.cooking-recipe-card {
  min-width: 0;
  display: grid;
  gap: 10px;
  padding: 11px;
  border: 1px solid rgba(104, 158, 131, 0.34);
  background: rgba(6, 15, 10, 0.88);
}
.cooking-recipe-card > header { display: grid; grid-template-columns: 64px minmax(0, 1fr) auto; align-items: center; gap: 10px; }
.cooking-recipe-card > header figure { width: 64px; height: 64px; margin: 0; overflow: hidden; border: 1px solid rgba(190, 150, 73, 0.32); background: #100d08; }
.cooking-recipe-card > header img { width: 100%; height: 100%; object-fit: cover; }
.cooking-recipe-card > header > div { min-width: 0; display: grid; gap: 2px; }
.cooking-recipe-card > header span { color: #94b5a2; font-size: var(--ming-font-small, 14px); font-weight: 760; }
.cooking-recipe-card > header h4 { margin: 0; color: #ead7ab; font-size: 17px; line-height: 1.35; }
.cooking-recipe-card > header p { margin: 0; color: #afa48f; font-size: var(--ming-font-body, 16px); line-height: 1.5; }
.cooking-recipe-card > header > b { color: #d0b36d; font-size: var(--ming-font-small, 14px); white-space: nowrap; }
.cooking-recipe-flow {
  min-width: 0;
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto minmax(0, 1fr) auto minmax(0, 1fr);
  align-items: stretch;
  gap: 7px;
}
.cooking-recipe-flow.with-tools-water {
  grid-template-columns: minmax(0, 1fr) auto minmax(0, 1fr) auto minmax(0, 1fr) auto minmax(0, 1fr);
}
.cooking-recipe-flow > section { min-width: 0; display: grid; align-content: start; gap: 5px; padding: 8px; border: 1px solid rgba(183, 150, 78, 0.26); background: #0d120d; }
.cooking-recipe-flow > section > em { color: #c9a85f; font-size: var(--ming-font-small, 14px); font-style: normal; font-weight: 800; letter-spacing: 0.08em; }
.cooking-recipe-flow > strong { align-self: center; color: #9e8d67; font-size: 19px; }
.cooking-resource { min-width: 0; display: grid; gap: 2px; }
.cooking-resource i { color: #81998a; font-size: var(--ming-font-small, 14px); font-style: normal; }
.cooking-resource b { overflow: hidden; color: #e3d4b1; font-size: var(--ming-font-small, 14px); line-height: 1.4; text-overflow: ellipsis; white-space: nowrap; }
.cooking-resource small { color: #9fa795; font-size: var(--ming-font-small, 14px); line-height: 1.4; }
.cooking-resource.cooking-fuel { gap: 3px; }
.cooking-resource .cooking-heat-ledger { color: #d7b965; font-weight: 800; }
.cooking-resource.missing b,
.cooking-resource.missing small { color: #c98372; }
.cooking-resource.output b { color: #e1c675; }
.cooking-recipe-card > footer { display: grid; grid-template-columns: minmax(0, 1fr) minmax(220px, 0.42fr); align-items: center; gap: 10px; }
.cooking-recipe-card > footer > span { min-width: 0; display: grid; gap: 2px; }
.cooking-recipe-card > footer > span b { color: #b9cbbf; font-size: var(--ming-font-small, 14px); }
.cooking-recipe-card > footer > span small { color: #9e9584; font-size: var(--ming-font-small, 14px); line-height: 1.45; }
.cooking-recipe-card > footer button { min-height: 50px; display: grid; align-content: center; gap: 2px; padding: 8px 11px; color: #f0dfb6; border: 1px solid rgba(199, 158, 75, 0.56); background: #312414; text-align: left; cursor: pointer; }
.cooking-recipe-card > footer button b { font-size: 14px; }
.cooking-recipe-card > footer button small { color: #beaF8f; font-size: var(--ming-font-small, 14px); line-height: 1.35; }
.cooking-recipe-card > footer button:disabled { opacity: 0.52; cursor: not-allowed; }

.household-interactions {
  display: grid;
  gap: 10px;
  padding: 14px;
  border: 1px solid rgba(184, 149, 76, 0.34);
  background: var(--folio-card, #11120d);
}
.household-interactions > header { display: flex; align-items: flex-start; justify-content: space-between; gap: 12px; }
.household-interactions > header span { color: var(--folio-muted, #c9a75c); font-size: var(--ming-font-small, 14px); font-weight: 780; letter-spacing: 0.1em; }
.household-interactions > header h4 { margin: 3px 0 0; color: var(--folio-ink, #eadbb8); font-size: 18px; line-height: 1.4; }
.household-interactions > header > b { color: var(--folio-ink, #a9cbb9); font-size: var(--ming-font-small, 14px); white-space: nowrap; }
.household-provision-reminder {
  min-width: 0;
  display: grid;
  gap: 9px;
  padding: 12px;
  color: var(--folio-ink, #d7c8aa);
  border: 1px solid rgba(191, 145, 67, 0.54);
  border-left: 4px solid #b8753d;
  background: var(--folio-card, linear-gradient(105deg, #21170f, #101812 72%));
  font-size: var(--ming-font-small, 14px);
}
.household-provision-reminder > header { display: flex; justify-content: space-between; gap: 12px; align-items: baseline; }
.household-provision-reminder > header span { color: var(--folio-muted, #d5ae63); font-weight: 780; letter-spacing: 0.08em; }
.household-provision-reminder > header b { color: var(--folio-ink, #9eb9aa); font-size: var(--ming-font-small, 14px); }
.household-provision-reminder > article { min-width: 0; display: grid; grid-template-columns: minmax(180px, 0.5fr) minmax(0, 1fr); gap: 10px 14px; align-items: center; padding: 10px; border: 1px solid rgba(126, 150, 124, 0.25); background: var(--folio-card, rgba(5, 12, 9, 0.62)); }
.household-provision-reminder-speaker { min-width: 0; display: grid; grid-template-columns: 56px minmax(0, 1fr); gap: 9px; align-items: center; }
.household-provision-reminder-portrait { width: 56px; height: 70px; min-height: 0; }
.household-provision-reminder-speaker > i { width: 48px; height: 48px; display: grid; place-items: center; color: var(--folio-ink, #ddbd78); border: 1px solid rgba(198, 159, 79, 0.45); border-radius: 50%; font-family: var(--font-brush); font-size: 24px; font-style: normal; }
.household-provision-reminder-speaker > span { min-width: 0; display: grid; gap: 3px; }
.household-provision-reminder-speaker small { color: var(--folio-muted, #a88e61); font-size: var(--ming-font-small, 14px); }
.household-provision-reminder-speaker b { color: var(--folio-ink, #ead9b8); font-size: 14px; overflow-wrap: anywhere; }
.household-provision-reminder blockquote { min-width: 0; margin: 0; color: var(--folio-ink, #dfd3bd); font-size: var(--ming-font-body, 16px); line-height: 1.65; }
.household-provision-handling { grid-column: 1 / -1; min-width: 0; display: grid; grid-template-columns: minmax(124px, max-content) minmax(0, 1fr); gap: 5px 12px; align-items: baseline; padding: 8px 10px; border-left: 3px solid #9e9258; background: var(--folio-card, rgba(25, 31, 19, 0.72)); font-size: var(--ming-font-small, 14px); line-height: 1.55; }
.household-provision-handling > b { color: var(--folio-ink, #f1d28b); font-size: 14px; }
.household-provision-handling > span { min-width: 0; color: var(--folio-muted, #c8d4c9); overflow-wrap: anywhere; }
.household-provision-handling > small { grid-column: 1 / -1; color: var(--folio-muted, #b9a77b); font-size: var(--ming-font-small, 14px); overflow-wrap: anywhere; }
.household-provision-handling[data-handling-kind="cook-first"] { border-left-color: var(--folio-rule, #a98548); background: var(--folio-card, rgba(48, 38, 19, 0.52)); }
.household-provision-handling[data-handling-kind="eat-soon"] { border-left-color: var(--folio-rule, #8ca46f); }
.household-provision-handling[data-handling-kind="discard"],
.household-provision-handling[data-handling-kind="hold-aside"] { border-left-color: var(--folio-rule, #a45f4f); background: var(--folio-card, rgba(48, 25, 21, 0.56)); }
.household-provision-reminder article > footer { grid-column: 1 / -1; display: flex; justify-content: space-between; gap: 12px; color: var(--folio-ink, #a9b9ad); border-top: 1px solid rgba(110, 144, 125, 0.2); padding-top: 7px; }
.household-provision-reminder article > footer small { color: var(--folio-muted, #d2a56c); font-size: var(--ming-font-small, 14px); }
.family-initiative-board {
  box-sizing: border-box;
  min-width: 0;
  max-width: 100%;
  display: grid;
  grid-template-columns: 96px minmax(0, 1fr) minmax(210px, 0.52fr);
  gap: 14px;
  align-items: stretch;
  padding: 13px;
  overflow: hidden;
  border: 1px solid rgba(202, 165, 84, 0.58);
  border-left: 4px solid #c6a352;
  background:
    radial-gradient(circle at 8% 18%, rgba(192, 151, 67, 0.15), transparent 32%),
    linear-gradient(105deg, #17170e 0%, #0c1510 64%, #09110d 100%);
  box-shadow: inset 0 1px rgba(255, 244, 204, 0.05), 0 9px 22px rgba(0, 0, 0, 0.22);
  font-size: var(--ming-font-small, 14px);
}
.family-initiative-board *,
.family-initiative-board *::before,
.family-initiative-board *::after { box-sizing: border-box; }
.family-initiative-portrait { position: relative; min-width: 0; }
.family-initiative-portrait > .family-portrait { width: 96px; height: 132px; border: 1px solid rgba(217, 187, 117, 0.35); }
.family-initiative-portrait > i {
  position: absolute;
  right: -7px;
  bottom: 8px;
  width: 34px;
  height: 34px;
  display: grid;
  place-items: center;
  color: #e5ca86;
  border: 1px solid rgba(222, 187, 108, 0.62);
  border-radius: 50%;
  background: #2b2111;
  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.42);
  font-family: var(--font-brush);
  font-size: 18px;
  font-style: normal;
}
.family-initiative-copy { min-width: 0; display: grid; align-content: center; gap: 5px; }
.family-initiative-copy > span { color: #c9aa62; font-size: var(--ming-font-small, 14px); font-weight: 760; letter-spacing: 0.1em; }
.family-initiative-copy h5 { margin: 0; color: #f0dfb9; font-family: var(--font-brush); font-size: 23px; font-weight: 400; line-height: 1.3; }
.family-initiative-copy blockquote { margin: 2px 0; color: #e0d4bd; font-size: var(--ming-font-body, 16px); line-height: 1.65; }
.family-initiative-copy p { margin: 0; color: #aba694; font-size: var(--ming-font-body, 16px); line-height: 1.55; }
.family-initiative-copy > small { color: #8fb09d; font-size: var(--ming-font-small, 14px); line-height: 1.45; }
.family-initiative-copy :is(span, h5, blockquote, p, small),
.family-initiative-actions :is(b, small) {
  min-width: 0;
  white-space: normal;
  overflow-wrap: anywhere;
}
.family-initiative-actions { min-width: 0; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); align-content: center; gap: 7px; }
.family-initiative-actions:is(.binary, .is-binary, [data-layout="binary"]) {
  grid-template-columns: repeat(2, minmax(0, 1fr));
}
.family-initiative-actions:is(.binary, .is-binary, [data-layout="binary"]) .accept {
  grid-column: auto;
}
.family-initiative-actions button {
  min-height: 48px;
  display: grid;
  align-content: center;
  gap: 2px;
  padding: 8px 10px;
  color: #ddd0b4;
  border: 1px solid rgba(173, 151, 99, 0.36);
  background: rgba(29, 28, 20, 0.92);
  text-align: left;
  cursor: pointer;
}
.family-initiative-actions button b { font-size: var(--ming-font-small, 14px); line-height: 1.3; }
.family-initiative-actions button small { color: #9d9685; font-size: var(--ming-font-small, 14px); line-height: 1.35; }
.family-initiative-actions .accept { grid-column: 1 / -1; min-height: 56px; color: #f2dfad; border-color: rgba(197, 158, 72, 0.7); background: linear-gradient(105deg, #3a2b15, #282112); }
.family-initiative-actions .accept small { color: #c3ae7b; }
.family-initiative-actions .revise { border-color: rgba(100, 156, 129, 0.5); background: #12251a; }
.family-initiative-actions .revise small { color: #9fb8aa; }
.family-initiative-actions button:hover:not(:disabled) { border-color: rgba(229, 194, 112, 0.76); filter: brightness(1.08); }
.family-initiative-actions button:focus-visible { outline: 2px solid #e0bf6d; outline-offset: 2px; }
.family-initiative-actions button:disabled,
.family-initiative-actions button[aria-disabled="true"] {
  opacity: 0.52;
  cursor: not-allowed;
  filter: saturate(0.7);
}
.family-initiative-resolution,
.family-initiative-memory {
  grid-column: 2 / -1;
  min-width: 0;
  max-width: 100%;
  display: grid;
  align-content: center;
  gap: 7px;
  padding: 11px 12px;
  overflow: hidden;
  color: #d8cfb9;
  border: 1px solid rgba(111, 157, 132, 0.38);
  background: rgba(10, 25, 18, 0.82);
  font-size: var(--ming-font-small, 14px);
  line-height: 1.55;
}
.family-initiative-resolution[data-status="accepted"],
.family-initiative-memory[data-status="accepted"],
.family-initiative-board[data-family-initiative-state="accepted"] :is(.family-initiative-resolution, .family-initiative-memory) {
  border-left: 4px solid #80ad91;
}
.family-initiative-resolution[data-status="declined"],
.family-initiative-memory[data-status="declined"],
.family-initiative-board[data-family-initiative-state="declined"] :is(.family-initiative-resolution, .family-initiative-memory) {
  border-left: 4px solid #aa925f;
  background: rgba(30, 27, 18, 0.82);
}
.family-initiative-resolution :is(span, b, p, small),
.family-initiative-memory :is(span, b, p, small),
.family-initiative-blocked {
  min-width: 0;
  margin: 0;
  white-space: normal;
  overflow-wrap: anywhere;
}
.family-initiative-resolution > b,
.family-initiative-memory > b { color: #eedbab; font-size: 14px; }
.family-initiative-resolution h5,
.family-initiative-memory h5 { font-size: var(--ming-font-small, 14px); }
.family-initiative-resolution > p,
.family-initiative-memory > p { color: #c8c0ad; font-size: var(--ming-font-body, 16px); }
.family-initiative-resolution > small,
.family-initiative-memory > small { color: #9fb6a8; font-size: var(--ming-font-small, 14px); }
.family-initiative-resolution :is(button, a),
.family-initiative-memory :is(button, a) {
  min-height: 44px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 8px 12px;
  color: #eed9a3;
  border: 1px solid rgba(183, 151, 78, 0.52);
  background: #292112;
  font-size: var(--ming-font-small, 14px);
  line-height: 1.4;
  text-decoration: none;
  overflow-wrap: anywhere;
}
.family-initiative-blocked {
  grid-column: 1 / -1;
  padding: 8px 10px;
  color: #dfae9b;
  border-left: 3px solid #a85f49;
  background: rgba(50, 23, 17, 0.7);
  font-size: var(--ming-font-small, 14px);
  line-height: 1.5;
}
.household-interaction-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; }
.household-interaction-card {
  min-width: 0;
  display: grid;
  align-content: start;
  gap: 9px;
  overflow: hidden;
  padding: 10px;
  border: 1px solid rgba(105, 156, 130, 0.34);
  background: var(--folio-card, #09120d);
}
.household-family-summary { min-width: 0; display: grid; grid-template-columns: 104px minmax(0, 1fr); gap: 10px; }
.household-family-summary > .family-portrait { width: 104px; height: 150px; }
.household-family-summary > div { min-width: 0; display: grid; align-content: start; gap: 8px; padding: 3px 0; }
.household-interaction-card header { display: grid; gap: 2px; }
.household-interaction-card header span { color: var(--folio-muted, #c3a35c); font-size: var(--ming-font-small, 14px); }
.household-interaction-card header b { color: var(--folio-ink, #eadbb9); font-family: var(--font-brush); font-size: 20px; font-weight: 400; }
.household-interaction-card header small { color: var(--folio-muted, #9fb0a4); font-size: var(--ming-font-small, 14px); }
.household-interaction-card p { margin: 0; color: var(--folio-muted, #b5aa94); font-size: var(--ming-font-body, 16px); line-height: 1.55; }
.household-interaction-card > footer { display: grid; gap: 7px; margin-top: auto; }
.household-interaction-card > footer > span { color: var(--folio-muted, #9fb5a7); font-size: var(--ming-font-small, 14px); line-height: 1.45; }
.household-interaction-card > footer > div { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 6px; }
.household-interaction-card button {
  min-height: 44px;
  display: grid;
  align-content: center;
  gap: 1px;
  padding: 7px;
  color: var(--folio-ink, #ead6a8);
  border: 1px solid rgba(176, 145, 78, 0.42);
  background: var(--folio-card, #211c11);
  text-align: left;
  cursor: pointer;
}
.household-interaction-card button b { font-size: var(--ming-font-small, 14px); }
.household-interaction-card button small { color: var(--folio-muted, #a69d88); font-size: var(--ming-font-small, 14px); line-height: 1.3; }
.household-interaction-card button:last-child { border-color: var(--folio-rule, rgba(105, 158, 132, 0.48)); background: var(--folio-card, #14271d); }
.household-interaction-card button:last-child small { color: var(--folio-muted, #9eb7a8); }
.household-interaction-card button:disabled { opacity: 0.45; cursor: not-allowed; }
.household-interactions > footer { color: var(--folio-ink, #a79d89); font-size: var(--ming-font-small, 14px); line-height: 1.55; }
.home-ledger-empty { margin: 0; padding: 16px; color: #a69b86; border: 1px dashed rgba(184, 149, 76, 0.3); font-size: var(--ming-font-small, 14px); }

/* 三日家计：只把权威核账摆成可读纸账，不把补救路线冒充成已补足。 */
.household-subsistence-ledger {
  box-sizing: border-box;
  display: grid;
  gap: 12px;
  min-width: 0;
  max-width: 100%;
  padding: 14px;
  overflow-x: clip;
  color: var(--folio-ink, #d9d2bc);
  border: 1px solid rgba(186, 150, 75, 0.42);
  background: var(--folio-card, linear-gradient(105deg, rgba(80, 58, 22, 0.25), transparent 45%),
    #0b1510);
  box-shadow: inset 4px 0 0 rgba(100, 154, 124, 0.42);
  font-size: var(--ming-font-small, 14px);
  line-height: 1.55;
}
.household-subsistence-ledger *,
.household-subsistence-ledger *::before,
.household-subsistence-ledger *::after { box-sizing: border-box; }
.household-subsistence-ledger :is(span, small, b, p, li) {
  min-width: 0;
  white-space: normal;
  overflow-wrap: anywhere;
}
.household-subsistence-ledger > header {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 14px;
  min-width: 0;
  padding-bottom: 10px;
  border-bottom: 1px solid rgba(178, 145, 76, 0.26);
}
.household-subsistence-ledger > header > div { min-width: 0; }
.household-subsistence-ledger > header span {
  color: var(--folio-muted, #c9a95f);
  font-size: var(--ming-font-small, 14px);
  font-weight: 780;
  letter-spacing: 0.06em;
}
.household-subsistence-ledger > header h3 {
  margin: 3px 0;
  color: var(--folio-ink, #efdfba);
  font-family: var(--font-brush);
  font-size: clamp(21px, 2vw, 26px);
  font-weight: 400;
  line-height: 1.35;
}
.household-subsistence-ledger > header small {
  display: block;
  color: var(--folio-muted, #abb8ad);
  font-size: var(--ming-font-small, 14px);
  line-height: 1.55;
}
.household-subsistence-ledger > header > b {
  flex: 0 1 230px;
  padding: 7px 9px;
  color: var(--folio-ink, #b9d7c5);
  border: 1px solid rgba(101, 160, 126, 0.48);
  background: var(--folio-card, #10241a);
  font-size: var(--ming-font-small, 14px);
  line-height: 1.45;
  text-align: center;
}
.household-subsistence-ledger > header > b.shortfall {
  color: var(--folio-ink, #e0a38f);
  border-color: var(--folio-rule, rgba(184, 85, 64, 0.58));
  background: var(--folio-card, #2a1712);
}
.household-subsistence-days {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 9px;
  min-width: 0;
}
.household-subsistence-days > article {
  min-width: 0;
  overflow: hidden;
  border: 1px solid rgba(126, 154, 135, 0.3);
  background: var(--folio-card, #101a14);
}
.household-subsistence-days > article > header {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 8px;
  padding: 8px 9px;
  border-bottom: 1px solid rgba(126, 154, 135, 0.22);
}
.household-subsistence-days > article > header span,
.household-subsistence-days > article > header b { font-size: var(--ming-font-small, 14px); }
.household-subsistence-days > article > header span { color: var(--folio-muted, #d5bc7b); font-weight: 760; }
.household-subsistence-days > article > header b { color: var(--folio-ink, #a9cdb9); }
.household-subsistence-days > article > header b:where(:not(:empty)) { text-align: right; }
.household-subsistence-days ul {
  display: grid;
  gap: 1px;
  margin: 0;
  padding: 7px;
  list-style: none;
}
.household-subsistence-days li {
  display: grid;
  grid-template-columns: minmax(44px, auto) minmax(0, 1fr) auto;
  align-items: baseline;
  gap: 6px;
  min-width: 0;
  padding: 6px 7px;
  border-left: 3px solid #5f9875;
  background: var(--folio-card, rgba(8, 20, 15, 0.72));
}
.household-subsistence-days li > span,
.household-subsistence-days li > b,
.household-subsistence-days li > small { font-size: var(--ming-font-small, 14px); line-height: 1.45; }
.household-subsistence-days li > span { color: var(--folio-muted, #a9b8ad); }
.household-subsistence-days li > b { color: var(--folio-ink, #ded4b9); font-weight: 650; }
.household-subsistence-days li > small { color: var(--folio-muted, #a8ccb8); text-align: right; }
.household-subsistence-days li.shortfall {
  border-left-color: var(--folio-rule, #aa5c49);
  background: var(--folio-card, rgba(61, 27, 21, 0.62));
}
.household-subsistence-days li.shortfall > small { color: var(--folio-muted, #df9b87); }
.household-subsistence-ledger > aside {
  display: grid;
  gap: 8px;
  min-width: 0;
  padding: 11px;
  border: 1px solid rgba(174, 137, 66, 0.35);
  background: var(--folio-card, rgba(32, 27, 15, 0.72));
}
.household-subsistence-ledger > aside > header {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 10px;
}
.household-subsistence-ledger > aside > header b { color: var(--folio-ink, #e1c882); font-size: 14px; }
.household-subsistence-ledger > aside > header small { color: var(--folio-muted, #aaa18c); font-size: var(--ming-font-small, 14px); }
.household-subsistence-ledger > aside ul { display: grid; gap: 6px; margin: 0; padding: 0; list-style: none; }
.household-subsistence-ledger > aside li {
  display: grid;
  grid-template-columns: minmax(48px, auto) minmax(0, 1fr) auto;
  gap: 7px;
  align-items: baseline;
  padding: 7px 8px;
  border-left: 3px solid rgba(178, 139, 65, 0.55);
  background: var(--folio-card, #11170f);
}
.household-subsistence-ledger > aside li > b { color: var(--folio-ink, #d7b86f); font-size: var(--ming-font-small, 14px); }
.household-subsistence-ledger > aside li > span { color: var(--folio-muted, #cbd0c0); font-size: var(--ming-font-small, 14px); }
.household-subsistence-ledger > aside li > small { color: var(--folio-muted, #aaa38f); font-size: var(--ming-font-small, 14px); text-align: right; }
.household-subsistence-ledger > footer {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(240px, 0.42fr);
  align-items: center;
  gap: 10px;
  min-width: 0;
}
.household-subsistence-ledger > footer > span {
  grid-column: 1 / -1;
  color: var(--folio-muted, #aeb8ad);
  font-size: var(--ming-font-small, 14px);
  line-height: 1.5;
}
.household-subsistence-ledger > footer button {
  width: 100%;
  min-width: 0;
  min-height: 50px;
  display: grid;
  align-content: center;
  gap: 2px;
  padding: 8px 11px;
  color: var(--folio-ink, #edd9a8);
  border: 1px solid rgba(193, 153, 72, 0.6);
  background: var(--folio-card, #302514);
  text-align: left;
  cursor: pointer;
}
.household-subsistence-ledger > footer button b,
.household-subsistence-ledger > footer button small { display: block; font-size: var(--ming-font-small, 14px); line-height: 1.4; }
.household-subsistence-ledger > footer button small { color: var(--folio-muted, #bcb397); }
.household-subsistence-ledger > footer button:disabled { opacity: 0.58; cursor: not-allowed; }

@media (max-width: 1180px) {
  .dwelling-furniture-grid { grid-template-columns: 1fr; }
  .dwelling-furniture-card { grid-template-columns: 112px minmax(0, 1fr); }
  .family-initiative-board { grid-template-columns: 88px minmax(0, 1fr); }
  .family-initiative-portrait > .family-portrait { width: 88px; height: 124px; }
  .family-initiative-actions { grid-column: 1 / -1; grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .family-initiative-actions .accept { grid-column: auto; }
  .pending-furnishing-ledger > div { grid-template-columns: 1fr; }
  .cooking-recipe-flow.with-tools-water { grid-template-columns: 1fr; }
  .cooking-recipe-flow.with-tools-water > strong { justify-self: center; transform: rotate(90deg); }
}

@media (max-width: 760px) {
  .home-interior-nav { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .dwelling-furniture-card { grid-template-columns: 88px minmax(0, 1fr); }
  .dwelling-furniture-card > figure { min-height: 188px; }
  .pending-furnishing-ledger > header { align-items: start; flex-direction: column; }
  .pending-furnishing-card { grid-template-columns: 72px minmax(0, 1fr); }
  .pending-furnishing-card > button { grid-column: 1 / -1; border-left: 0; border-top: 1px solid rgba(105, 158, 132, 0.38); }
  .hearth-cooking-ledger { padding: 11px; }
  .hearth-cooking-ledger > header { grid-template-columns: 72px minmax(0, 1fr); align-items: start; }
  .hearth-cooking-ledger > header figure { width: 72px; height: 72px; }
  .hearth-cooking-ledger > header > b { grid-column: 1 / -1; justify-self: stretch; text-align: center; }
  .hearth-cooking-ledger > header h3 { font-size: 18px; }
  .hearth-cooking-ledger > header span,
  .hearth-cooking-ledger > header p,
  .hearth-cooking-ledger > header > b { font-size: var(--ming-font-body, 16px); }
  .hearth-live-fire small,
  .hearth-live-fire b,
  .hearth-live-fire em { font-size: var(--ming-font-small, 14px); }
  .cooking-recipe-card > header { grid-template-columns: 58px minmax(0, 1fr); align-items: start; }
  .cooking-recipe-card > header figure { width: 58px; height: 58px; }
  .cooking-recipe-card > header > b { grid-column: 1 / -1; }
  .cooking-recipe-card > header span,
  .cooking-recipe-card > header p,
  .cooking-resource b,
  .cooking-resource small,
  .cooking-recipe-flow > section > em,
  .cooking-recipe-card > footer > span b,
  .cooking-recipe-card > footer > span small,
  .cooking-recipe-card > footer button small { font-size: var(--ming-font-small, 14px); }
  .cooking-recipe-flow { grid-template-columns: 1fr; }
  .cooking-recipe-flow > strong { justify-self: center; transform: rotate(90deg); }
  .cooking-recipe-card > footer { grid-template-columns: 1fr; }
  .cooking-recipe-card > footer button { width: 100%; min-height: 52px; }
  .dwelling-furniture-card header span,
  .dwelling-furniture-card p,
  .furniture-condition small,
  .dwelling-furniture-card button b,
  .dwelling-furniture-card button small,
  .furniture-view-only,
  .household-interactions > header span,
  .household-interactions > header > b,
  .household-interaction-card header span,
  .household-interaction-card header small,
  .household-interaction-card p,
  .household-interaction-card button b,
  .household-interaction-card button small,
  .household-interaction-card footer > span,
  .household-interactions > footer { font-size: var(--ming-font-small, 14px); }
  .household-interactions > header { flex-direction: column; }
  .household-provision-reminder > header,
  .household-provision-reminder article > footer { align-items: flex-start; flex-direction: column; }
  .household-provision-reminder > article { grid-template-columns: 1fr; }
  .household-provision-handling { grid-column: 1; grid-template-columns: 1fr; }
  .household-provision-handling > small { grid-column: 1; }
  .household-provision-reminder article > footer { grid-column: 1; }
  .household-interaction-grid { grid-template-columns: 1fr; }
  .household-family-summary { grid-template-columns: 88px minmax(0, 1fr); }
  .household-family-summary > .family-portrait { width: 88px; height: 136px; min-height: 0; }
  .household-interaction-card > footer > div { grid-template-columns: 1fr 1fr; }
  .household-interaction-card button { min-height: 46px; font-size: var(--ming-font-small, 14px); }
  .family-initiative-board { grid-template-columns: 72px minmax(0, 1fr); gap: 10px; padding: 11px; }
  .family-initiative-portrait > .family-portrait { width: 72px; height: 104px; }
  .family-initiative-copy h5 { font-size: 20px; }
  .family-initiative-copy blockquote { font-size: var(--ming-font-body, 16px); }
  .family-initiative-actions { grid-template-columns: 1fr; }
  .family-initiative-actions:is(.binary, .is-binary, [data-layout="binary"]) { grid-template-columns: 1fr; }
  .family-initiative-actions .accept { grid-column: auto; }
  .family-initiative-actions button { min-height: 50px; }
  .family-initiative-resolution,
  .family-initiative-memory { grid-column: 1 / -1; }
  .household-subsistence-ledger { gap: 10px; padding: 11px; }
  .household-subsistence-ledger > header { display: grid; gap: 8px; }
  .household-subsistence-ledger > header > b { width: 100%; max-width: none; text-align: left; }
  .household-subsistence-days { grid-template-columns: 1fr; }
  .household-subsistence-ledger > aside > header { align-items: flex-start; flex-direction: column; }
  .household-subsistence-ledger > aside li { grid-template-columns: minmax(48px, auto) minmax(0, 1fr); }
  .household-subsistence-ledger > aside li > small { grid-column: 1 / -1; text-align: left; }
  .household-subsistence-ledger > footer { grid-template-columns: 1fr; }
  .household-subsistence-ledger > footer button { min-height: 52px; }
}

@media (max-width: 420px) {
  .household-subsistence-ledger { padding: 9px; }
  .household-subsistence-days li {
    grid-template-columns: minmax(44px, auto) minmax(0, 1fr);
  }
  .household-subsistence-days li > small { grid-column: 1 / -1; text-align: left; }
}

/* 饮水账：高频状态常显，容具与同地水源在完整物品卷中展开。 */
.water-ledger {
  margin: 12px 0;
  border: 1px solid rgba(89, 157, 137, 0.46);
  background: var(--folio-card, radial-gradient(circle at 9% 0, rgba(66, 143, 126, 0.14), transparent 34%),
    linear-gradient(135deg, rgba(5, 19, 16, 0.98), rgba(10, 15, 13, 0.98)));
  box-shadow: inset 3px 0 0 rgba(124, 190, 166, 0.58);
}
.water-ledger > header {
  min-width: 0;
  display: grid;
  grid-template-columns: 46px minmax(0, 1fr) auto minmax(110px, 0.6fr) auto;
  align-items: center;
  gap: 11px;
  padding: 12px 14px;
}
.water-ledger.compact > header {
  grid-template-columns: 44px minmax(0, 1fr) 40px;
}
.water-ledger.compact > header > div { min-width: 120px; }
.water-ledger.compact > header > div > strong { white-space: nowrap; }
.water-ledger.compact > header > em,
.water-ledger.compact .water-quick-controls {
  grid-column: 1 / -1;
  width: 100%;
}
.water-quick-controls { display: grid; grid-template-columns: minmax(126px, 0.7fr) minmax(0, 1.3fr); gap: 8px; }
.water-ledger > header > i,
.water-container-card > i,
.water-source-card > i {
  display: grid;
  place-items: center;
  border: 1px solid rgba(126, 190, 166, 0.62);
  border-radius: 50%;
  color: var(--folio-ink, #a8d6c2);
  font-family: var(--font-brush);
  font-style: normal;
}
.water-ledger > header > i { width: 44px; height: 44px; font-size: 23px; }
.water-ledger > header > div { min-width: 0; display: grid; gap: 2px; }
.water-ledger > header span { color: var(--folio-muted, #9fc6b4); font-size: var(--ming-font-small, 14px); font-weight: 750; letter-spacing: 0.08em; }
.water-ledger > header strong { color: var(--folio-ink, #e7dbc0); font-size: 18px; }
.water-ledger > header small { color: var(--folio-muted, #8fa497); font-size: var(--ming-font-small, 14px); line-height: 1.45; }
.water-ledger > header > b { min-width: 38px; color: var(--folio-ink, #d8bf78); font-family: var(--font-brush); font-size: 22px; font-weight: 400; text-align: center; }
.water-ledger > header > b small { display: block; color: var(--folio-muted, #9db4a7); font-family: var(--font-body); font-size: var(--ming-font-small, 14px); }
.water-ledger > header > em {
  height: 8px;
  overflow: hidden;
  border: 1px solid rgba(103, 144, 126, 0.32);
  background: var(--folio-card, #17201c);
}
.water-ledger > header > em > i { display: block; height: 100%; background: var(--folio-card, #6f9f91); }
.water-ledger.hydration-steady > header > em > i,
.water-ledger.hydration-well-watered > header > em > i { background: var(--folio-card, #6f9f91); }
.water-ledger.hydration-thirsty > header > em > i { background: var(--folio-card, #b77b45); }
.water-ledger.hydration-danger > header > em > i { background: var(--red-400); }
.water-ledger.unsafe > header > em > i { background: var(--folio-card, linear-gradient(90deg, #8d493d, #b7775f)); }
.water-ledger.questionable > header > em > i { background: var(--folio-card, linear-gradient(90deg, #8b6a32, #c0a15b)); }
.water-quick-drink,
.water-ledger-actions button,
.water-source-card > button {
  min-height: 44px;
  padding: 7px 11px;
  border: 1px solid rgba(102, 177, 146, 0.56);
  background: var(--folio-card, linear-gradient(180deg, #17372a, #10271f));
  color: var(--folio-ink, #e7d9b8);
  cursor: pointer;
}
.water-auto-toggle {
  min-height: 44px;
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 6px 9px;
  border: 1px solid rgba(118, 151, 137, 0.48);
  background: var(--folio-card, #111b17);
  color: var(--folio-ink, #d8ccb2);
  text-align: left;
  cursor: pointer;
}
.water-auto-toggle > i {
  width: 34px;
  height: 18px;
  flex: 0 0 34px;
  padding: 2px;
  border: 1px solid rgba(139, 157, 147, 0.5);
  border-radius: 10px;
  background: var(--folio-card, #252b28);
  font-style: normal;
}
.water-auto-toggle > i > b {
  display: block;
  width: 12px;
  height: 12px;
  border-radius: 50%;
  background: var(--folio-card, #9a9180);
  transition: transform 140ms ease, background 140ms ease;
}
.water-auto-toggle > span { min-width: 0; display: grid; gap: 1px; }
.water-auto-toggle > span > b { color: var(--folio-muted, #d9cdb3); font-size: var(--ming-font-small, 14px); white-space: nowrap; }
.water-auto-toggle > span > small { color: var(--folio-muted, #8f9c95); font-size: var(--ming-font-small, 14px); line-height: 1.3; }
.water-auto-toggle.active { border-color: var(--folio-rule, rgba(111, 170, 147, 0.68)); background: var(--folio-selected-surface, #14271f); }
.water-auto-toggle.active > i { border-color: var(--folio-rule, #72a994); background: var(--folio-selected-surface, #315d4d); }
.water-auto-toggle.active > i > b { transform: translateX(14px); background: var(--folio-selected-surface, #d8e7dc); }
.water-auto-toggle:disabled { opacity: 0.48; cursor: not-allowed; }
.water-quick-drink span,
.water-ledger-actions button span,
.water-source-card > button span { display: block; color: var(--folio-muted, #e8d9b5); font-size: var(--ming-font-small, 14px); font-weight: 750; }
.water-quick-drink small,
.water-ledger-actions button small,
.water-source-card > button small { display: block; color: var(--folio-muted, #9fb9aa); font-size: var(--ming-font-small, 14px); }
.water-quick-drink:disabled,
.water-ledger-actions button:disabled,
.water-source-card > button:disabled { opacity: 0.47; cursor: not-allowed; }
.water-ledger-explanation {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  padding: 9px 14px;
  border-top: 1px solid rgba(89, 141, 121, 0.25);
  border-bottom: 1px solid rgba(89, 141, 121, 0.25);
  color: var(--folio-ink, #a9cbbb);
  font-size: var(--ming-font-small, 14px);
}
.water-ledger-explanation small { color: var(--folio-muted, #928f7e); font-size: var(--ming-font-small, 14px); text-align: right; }
.water-container-list,
.water-source-list { display: grid; gap: 9px; padding: 12px 14px; }
.water-container-card,
.water-source-card {
  min-width: 0;
  display: grid;
  grid-template-columns: 40px minmax(0, 1fr) auto;
  align-items: center;
  gap: 10px;
  padding: 10px;
  border: 1px solid rgba(102, 153, 132, 0.29);
  background: var(--folio-card, rgba(5, 14, 11, 0.68));
}
.water-container-card > i,
.water-source-card > i { width: 36px; height: 36px; font-size: 17px; }
.water-container-card > div:not(.water-ledger-actions),
.water-source-card > div { min-width: 0; display: grid; gap: 2px; }
.water-container-card span,
.water-source-card span { color: var(--folio-muted, #9fc4b1); font-size: var(--ming-font-small, 14px); }
.water-container-card b,
.water-source-card b { overflow-wrap: anywhere; color: var(--folio-ink, #eadbbc); font-size: 15px; }
.water-container-card small,
.water-source-card small { color: var(--folio-muted, #8f998f); font-size: var(--ming-font-small, 14px); }
.water-ledger-actions { display: flex; flex-wrap: wrap; gap: 7px; }
.water-ledger-actions > button { flex: 1 1 118px; }
.water-source-list { border-top: 1px solid rgba(89, 141, 121, 0.24); }
.water-source-list > header { display: flex; justify-content: space-between; gap: 10px; }
.water-source-list > header span { color: var(--folio-muted, #d2b66d); font-size: var(--ming-font-small, 14px); font-weight: 750; }
.water-source-list > header small { color: var(--folio-muted, #89988f); font-size: var(--ming-font-small, 14px); text-align: right; }
.water-source-list > p,
.water-container-list > p { margin: 0; color: var(--folio-muted, #9c9483); font-size: var(--ming-font-body, 16px); }
.water-exposure-ledger {
  display: grid;
  gap: 9px;
  margin: 0 14px 12px;
  padding: 11px;
  border: 1px solid rgba(184, 112, 82, 0.42);
  background: var(--folio-card, linear-gradient(135deg, rgba(55, 24, 17, 0.48), rgba(18, 18, 14, 0.76)));
}
.water-exposure-ledger > header { display: flex; align-items: flex-start; justify-content: space-between; gap: 14px; }
.water-exposure-ledger > header > div { display: grid; gap: 2px; }
.water-exposure-ledger > header span { color: var(--folio-muted, #d79b77); font-size: var(--ming-font-small, 14px); font-weight: 750; letter-spacing: 0.08em; }
.water-exposure-ledger > header b { color: var(--folio-ink, #ead2ad); font-size: 14px; }
.water-exposure-ledger > header small { max-width: 440px; color: var(--folio-muted, #b7a693); font-size: var(--ming-font-small, 14px); line-height: 1.55; text-align: right; }
.water-exposure-ledger > div { display: grid; gap: 7px; }
.water-exposure-ledger article { display: grid; grid-template-columns: 34px minmax(0, 1fr); align-items: center; gap: 9px; padding: 8px; border: 1px solid rgba(166, 111, 85, 0.25); background: var(--folio-card, rgba(10, 12, 10, 0.5)); }
.water-exposure-ledger article > i { display: grid; width: 30px; height: 30px; place-items: center; border: 1px solid rgba(202, 129, 93, 0.55); border-radius: 50%; color: var(--folio-ink, #d79a77); font-family: var(--font-brush); font-style: normal; }
.water-exposure-ledger article > div { min-width: 0; display: grid; gap: 2px; }
.water-exposure-ledger article span,
.water-exposure-ledger article small { color: var(--folio-muted, #ad9e8c); font-size: var(--ming-font-small, 14px); line-height: 1.45; }
.water-exposure-ledger article b { color: var(--folio-ink, #e4cfaa); font-size: var(--ming-font-small, 14px); }

@media (max-width: 760px) {
  .water-ledger > header { grid-template-columns: 44px minmax(0, 1fr) auto; }
  .water-ledger > header > em,
  .water-quick-drink { grid-column: 1 / -1; width: 100%; }
  .water-ledger > header span,
  .water-ledger > header small,
  .water-ledger > header > b small,
  .water-ledger-explanation,
  .water-ledger-explanation small,
  .water-container-card span,
  .water-container-card small,
  .water-source-card span,
  .water-source-card small,
  .water-source-list > header small,
  .water-quick-drink small,
  .water-auto-toggle > span > b,
  .water-auto-toggle > span > small,
  .water-ledger-actions button small,
  .water-source-card > button small { font-size: var(--ming-font-small, 14px); }
  .water-ledger-explanation,
  .water-source-list > header { align-items: flex-start; flex-direction: column; }
  .water-ledger-explanation small,
  .water-source-list > header small { text-align: left; }
  .water-container-card,
  .water-source-card { grid-template-columns: 38px minmax(0, 1fr); }
  .water-ledger-actions,
  .water-source-card > button { grid-column: 1 / -1; width: 100%; }
  .water-ledger-actions button { flex: 1; }
  .water-quick-controls { grid-template-columns: 1fr; }
  .water-exposure-ledger > header { flex-direction: column; gap: 5px; }
  .water-exposure-ledger > header span,
  .water-exposure-ledger > header small { font-size: var(--ming-font-small, 14px); text-align: left; }
  .water-exposure-ledger article span,
  .water-exposure-ledger article small { font-size: var(--ming-font-small, 14px); }
}

/* V0.56 · 人物身体状况：常看结论外露，暴露、病候与短期状态按需展开 */
.disease-ledger-disclosure {
  min-width: 0;
  min-height: 66px;
  overflow: hidden;
  border: 1px solid rgba(91, 139, 119, 0.3);
  border-left: 3px solid #5d8b77;
  background: var(--folio-card, radial-gradient(circle at 7% 50%, rgba(93, 139, 119, 0.13), transparent 25%),
    linear-gradient(135deg, rgba(13, 29, 23, 0.92), rgba(10, 13, 12, 0.97)));
  box-shadow: inset 0 1px rgba(175, 204, 190, 0.035);
}
.disease-ledger-disclosure.status-suspected { border-left-color: var(--folio-rule, #b7924c); }
.disease-ledger-disclosure.status-active { border-left-color: var(--folio-rule, #a95847); }
.disease-ledger-disclosure > summary {
  min-width: 0;
  min-height: 66px;
  display: grid;
  grid-template-columns: 42px minmax(0, 1fr) auto;
  align-items: center;
  gap: 11px;
  padding: 9px 12px;
  list-style: none;
  cursor: pointer;
}
.disease-ledger-disclosure > summary::-webkit-details-marker { display: none; }
.disease-ledger-disclosure > summary:hover,
.disease-ledger-disclosure > summary:focus-visible { background: var(--folio-hover, rgba(100, 137, 116, 0.12)); outline: none; }
.disease-ledger-summary-icon {
  width: 40px;
  height: 40px;
  display: grid;
  overflow: hidden;
  place-items: center;
  border: 1px solid rgba(143, 178, 163, 0.42);
  border-radius: 50%;
  background: var(--folio-card, #0c1411);
}
.disease-ledger-summary-icon img { width: 100%; height: 100%; object-fit: cover; }
.disease-ledger-summary-icon i { color: var(--folio-ink, #a9c7b9); font-family: var(--font-brush); font-size: 24px; font-style: normal; }
.disease-ledger-disclosure > summary > span:nth-child(2) { min-width: 0; display: grid; align-content: center; gap: 3px; }
.disease-ledger-disclosure > summary b { color: var(--folio-ink, #eadab7); font-size: 15px; line-height: 1.25; letter-spacing: 0.08em; }
.disease-ledger-disclosure > summary small { min-width: 0; overflow: visible; color: var(--folio-muted, #9db6a9); font-size: var(--ming-font-small, 14px); line-height: 1.4; overflow-wrap: anywhere; white-space: normal; }
.disease-ledger-disclosure > summary em { display: inline-flex; align-items: center; gap: 5px; color: var(--folio-muted, #d0b46d); font-size: var(--ming-font-small, 14px); line-height: 1.3; font-style: normal; font-weight: 700; white-space: nowrap; }
.disease-ledger-disclosure > summary em::after { content: '⌄'; display: inline-block; color: #8fb3a1; font-size: 15px; transition: transform 150ms ease; }
.disease-ledger-disclosure[open] > summary em::after { transform: rotate(180deg); }
.disease-ledger-disclosure:not([open]) > .disease-ledger { display: none; }
.disease-ledger {
  min-width: 0;
  display: grid;
  gap: 9px;
  padding: 10px;
  border-top: 1px solid rgba(105, 153, 132, 0.25);
  background: var(--folio-card, radial-gradient(circle at 80% 0, rgba(122, 87, 42, 0.12), transparent 42%));
}
.disease-ledger > header { min-width: 0; display: grid; gap: 2px; }
.disease-ledger > header span { color: var(--folio-muted, #83aa97); font-size: var(--ming-font-small, 14px); letter-spacing: 0.08em; }
.disease-ledger > header b { color: var(--folio-ink, #ddcda9); font-size: var(--ming-font-small, 14px); }
.disease-stage-rail { min-width: 0; display: grid; grid-template-columns: auto 1fr auto 1fr auto 1fr auto; align-items: center; gap: 5px; }
.disease-stage-rail span { color: var(--folio-muted, #817d6e); font-size: var(--ming-font-small, 14px); }
.disease-stage-rail span.current { color: var(--folio-muted, #dfc67e); font-weight: 750; }
.disease-stage-rail i { height: 1px; background: var(--folio-card, linear-gradient(90deg, rgba(111, 159, 138, 0.65), rgba(111, 159, 138, 0.08))); }
.disease-ledger-list { min-width: 0; display: grid; gap: 8px; }
.disease-ledger-card {
  min-width: 0;
  overflow: hidden;
  border: 1px solid rgba(112, 156, 137, 0.28);
  background: var(--folio-card, rgba(5, 12, 10, 0.86));
}
.disease-ledger-card.status-active { border-color: var(--folio-rule, rgba(165, 82, 65, 0.54)); }
.disease-ledger-key-art { height: 90px; margin: 0; overflow: hidden; border-bottom: 1px solid rgba(193, 159, 90, 0.22); }
.disease-ledger-key-art img { width: 100%; height: 100%; display: block; object-fit: cover; object-position: center 45%; filter: saturate(0.78) brightness(0.76); }
.disease-ledger-card-body { min-width: 0; display: grid; grid-template-columns: 56px minmax(0, 1fr); align-items: center; gap: 10px; padding: 9px; }
.disease-condition-icon {
  width: 56px;
  height: 56px;
  display: block;
  object-fit: cover;
  border: 1px solid rgba(202, 168, 94, 0.44);
  border-radius: 50%;
  background: #151811;
  box-shadow: inset 0 0 0 3px rgba(7, 11, 9, 0.52);
}
.disease-ledger-card-body > div { min-width: 0; display: grid; gap: 2px; }
.disease-ledger-card-body span { color: var(--folio-muted, #85aa98); font-size: var(--ming-font-small, 14px); }
.disease-ledger-card-body h4 { margin: 0; color: var(--folio-ink, #ead9b6); font-size: 15px; line-height: 1.25; }
.disease-ledger-card-body p { margin: 0; color: var(--folio-muted, #a69b87); font-size: var(--ming-font-body, 16px); line-height: 1.45; overflow-wrap: anywhere; }
.disease-ledger-card footer { display: grid; gap: 3px; padding: 7px 9px; border-top: 1px solid rgba(101, 143, 126, 0.18); }
.disease-ledger-card footer span { color: var(--folio-muted, #8e968b); font-size: var(--ming-font-small, 14px); line-height: 1.45; }
.disease-transient-card,
.disease-ledger-clear { min-width: 0; display: grid; grid-template-columns: 56px minmax(0, 1fr); align-items: center; gap: 10px; padding: 9px; border: 1px solid rgba(105, 149, 130, 0.24); background: var(--folio-card, rgba(5, 12, 10, 0.72)); }
.disease-transient-card > div,
.disease-ledger-clear > div { min-width: 0; display: grid; gap: 2px; }
.disease-transient-card span { color: var(--folio-muted, #8bac9d); font-size: var(--ming-font-small, 14px); }
.disease-transient-card b,
.disease-ledger-clear b { color: var(--folio-ink, #e2d2af); font-size: var(--ming-font-small, 14px); }
.disease-transient-card small,
.disease-ledger-clear small { color: var(--folio-muted, #999383); font-size: var(--ming-font-small, 14px); line-height: 1.45; }
.disease-ledger-clear > i { width: 44px; height: 44px; display: grid; place-items: center; justify-self: center; color: var(--folio-ink, #94baa8); border: 1px solid rgba(104, 158, 135, 0.5); border-radius: 50%; font-family: var(--font-brush); font-size: 25px; font-style: normal; }
.disease-ledger-boundary { margin: 0; padding: 7px 8px; color: var(--folio-ink, #a9bbae); border-left: 2px solid #638f7b; background: var(--folio-card, rgba(71, 104, 89, 0.09)); font-size: var(--ming-font-small, 14px); line-height: 1.55; }

@media (max-width: 760px) {
  .disease-ledger-disclosure { min-height: 74px; }
  .disease-ledger-disclosure > summary { min-height: 74px; grid-template-columns: 42px minmax(0, 1fr); padding: 10px 12px; }
  .disease-ledger-disclosure > summary em { grid-column: 2; padding-left: 0; font-size: var(--ming-font-small, 14px); }
  .disease-ledger-disclosure > summary b,
  .disease-ledger > header b,
  .disease-ledger-card-body h4,
  .disease-transient-card b,
  .disease-ledger-clear b { font-size: 15px; }
  .disease-ledger-disclosure > summary small,
  .disease-ledger > header span,
  .disease-stage-rail span,
  .disease-ledger-card-body span,
  .disease-ledger-card-body p,
  .disease-ledger-card footer span,
  .disease-transient-card span,
  .disease-transient-card small,
  .disease-ledger-clear small,
  .disease-ledger-boundary { font-size: var(--ming-font-small, 14px); white-space: normal; }
  .disease-ledger-key-art { height: 118px; }
  .disease-ledger-card-body,
  .disease-transient-card,
  .disease-ledger-clear { grid-template-columns: 56px minmax(0, 1fr); }
}

/* 最终操作样式：不使用渐变，长结果账可完整换行。 */
.building-lifecycle-action,
.industrial-facility-card > div > button { background: var(--folio-card, #183428); }
.vehicle-transaction-card > button { background: var(--folio-card, #302613); }
.technology-blueprint-local-action { background: var(--folio-card, #183428); }
.building-lifecycle-action .deterministic-action-preview,
.industrial-facility-card > div > button .deterministic-action-preview,
.technology-blueprint-local-action .deterministic-action-preview,
.vehicle-transaction-card > button .deterministic-action-preview {
  overflow: visible;
  color: var(--folio-ink, #a9c5b7);
  font-size: var(--ming-font-small, 14px);
  line-height: 1.45;
  overflow-wrap: anywhere;
  text-overflow: clip;
  white-space: normal;
}
.vehicle-transaction-card > button .deterministic-action-preview { color: var(--folio-ink, #c7b584); }

@media (max-width: 760px) {
  .building-lifecycle-action .deterministic-action-preview,
  .industrial-facility-card > div > button .deterministic-action-preview,
  .technology-blueprint-local-action .deterministic-action-preview,
  .vehicle-transaction-card > button .deterministic-action-preview { font-size: var(--ming-font-small, 14px); }
}

/* P1 单店闭环：街面、铺内、报价与钱货回执分层呈现。 */
.market-summary-card,
.market-landing,
.market-shop-page {
  min-width: 0;
  color: var(--folio-ink, #d9ccb0);
  border: 1px solid rgba(190, 153, 78, 0.4);
  background: var(--folio-card, #08100c);
}
.market-summary-card,
.market-landing {
  position: relative;
  isolation: isolate;
  overflow: hidden;
}
.market-summary-card::before,
.market-landing::before {
  content: '';
  position: absolute;
  z-index: -2;
  inset: 0;
  background: var(--market-art) 80% center / cover no-repeat;
  opacity: 0.32;
}
.market-summary-card::after,
.market-landing::after {
  content: '';
  position: absolute;
  z-index: -1;
  inset: 0;
  background: rgba(5, 11, 8, 0.78);
}
.market-summary-card {
  min-height: 0;
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  align-items: start;
  gap: 11px;
  padding: 140px 14px 14px;
}
.market-summary-card::before {
  inset: 0 0 auto;
  height: 128px;
  background-position: 54% 42%;
  background-size: cover;
  opacity: 0.68;
}
.market-summary-card::after {
  background: linear-gradient(180deg, rgba(4, 9, 7, 0.08) 0, rgba(4, 9, 7, 0.5) 92px, #08100c 128px, #08100c 100%);
}
.market-summary-card > div { width: 100%; min-width: 0; align-self: start; }
.market-summary-card span,
.market-landing > header span,
.market-shop-hero span,
.market-quote-card > span,
.market-sell-panel > header span,
.market-stock-ledger > header span,
.market-goods-group > header span,
.market-goods-card > div > span {
  color: #caa75e;
  font-size: var(--ming-font-small, 14px);
  font-weight: 780;
  letter-spacing: 0.08em;
}
.market-summary-card h3,
.market-landing h3,
.market-shop-hero h3 {
  margin: 5px 0 4px;
  color: #efe0bb;
  font-family: var(--font-brush);
  font-size: clamp(25px, 2.4vw, 34px);
  font-weight: 400;
}
.market-summary-card h3 {
  font-size: 30px;
  line-height: 1.12;
  overflow-wrap: normal;
  word-break: keep-all;
}
.market-summary-card p,
.market-landing p,
.market-shop-hero p,
.market-quote-card p,
.market-sell-panel p,
.market-goods-card p { margin: 0; color: #b8ad96; font-size: var(--ming-font-body, 16px); line-height: 1.65; }
.market-summary-card dl,
.market-shop-hero dl {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 1px;
  margin: 0;
  background: rgba(190, 153, 78, 0.22);
}
.market-summary-card dl > div,
.market-shop-hero dl > div { padding: 9px; background: #0b130e; }
.market-summary-card dt,
.market-shop-hero dt { color: #8fa598; font-size: var(--ming-font-small, 14px); }
.market-summary-card dd,
.market-shop-hero dd { margin: 2px 0 0; color: #e3d1a7; font-size: 14px; }
.market-summary-card > button,
.market-landing button,
.market-shop-page button {
  min-height: 44px;
  padding: 8px 11px;
  color: var(--folio-ink, #ead8aa);
  border: 1px solid rgba(103, 164, 133, 0.5);
  background: var(--folio-card, #14271d);
  cursor: pointer;
}
.market-summary-card > button { grid-column: 1; width: 100%; display: grid; text-align: left; }
.market-summary-card button b,
.market-landing button b,
.market-shop-page button b { font-size: 14px; }
.market-summary-card button small,
.market-landing button small,
.market-shop-page button small { display: block; color: var(--folio-muted, #9fb3a6); font-size: var(--ming-font-small, 14px); }
.market-summary-card span,
.market-summary-card p,
.market-summary-card dt,
.market-summary-card button small { font-size: var(--ming-font-small, 14px); }
.market-summary-card button b { font-size: 15px; }
.market-summary-card button:disabled,
.market-landing button:disabled,
.market-shop-page button:disabled { opacity: 0.46; cursor: not-allowed; }

.market-landing { min-height: 320px; display: grid; gap: 16px; align-content: end; padding: 20px; }
.market-landing > header { max-width: 680px; }
.market-landing-facts { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 8px; }
.market-landing-facts > span { display: grid; gap: 2px; padding: 10px; border: 1px solid rgba(190, 153, 78, 0.3); background: var(--folio-card, #0b130e); }
.market-landing-facts small { color: var(--folio-muted, #91a598); font-size: var(--ming-font-small, 14px); }
.market-landing-facts b { color: var(--folio-ink, #e3d3ad); font-size: 14px; }
.market-landing > footer { display: grid; grid-template-columns: minmax(0, 1fr) minmax(210px, auto); align-items: center; gap: 12px; }
.market-landing > footer button { display: grid; text-align: left; }

.market-district-directory {
  display: grid;
  gap: 12px;
  min-width: 0;
  padding: 14px;
  color: var(--folio-ink, #d9ccb0);
  border: 1px solid rgba(190, 153, 78, 0.4);
  background: var(--folio-card, linear-gradient(90deg, rgba(173, 119, 51, 0.1), transparent 22%),
    #080e0b);
}
.market-district-directory small,
.market-district-directory button small { font-size: var(--ming-font-small, 14px); }
.market-directory-intro {
  min-width: 0;
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  align-items: center;
  gap: 18px;
  padding: 16px 18px;
  border: 1px solid rgba(190, 153, 78, 0.26);
  border-left: 4px solid rgba(188, 139, 66, 0.82);
  background: var(--folio-card, radial-gradient(circle at 90% 20%, rgba(96, 144, 116, 0.13), transparent 34%),
    #0b130f);
}
.market-directory-intro > div:first-child { min-width: 0; }
.market-directory-intro > div:first-child > span {
  color: var(--folio-muted, #bca15e);
  font-size: var(--ming-font-small, 14px);
  font-weight: 760;
  letter-spacing: 0.09em;
}
.market-directory-intro h3 {
  margin: 3px 0 5px;
  color: var(--folio-ink, #eee0be);
  font-family: var(--font-brush);
  font-size: 30px;
  font-weight: 400;
}
.market-directory-intro p {
  max-width: 760px;
  margin: 0;
  color: var(--folio-muted, #b9b09c);
  font-size: var(--ming-font-body, 16px);
  line-height: 1.62;
}
.market-directory-status { display: flex; flex-wrap: wrap; justify-content: flex-end; gap: 8px; }
.market-directory-status > span {
  min-height: 48px;
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 8px 11px;
  border: 1px solid rgba(102, 163, 132, 0.34);
  background: var(--folio-card, rgba(11, 28, 20, 0.86));
}
.market-directory-status i,
.market-directory-rule > i {
  width: 29px;
  height: 29px;
  display: inline-grid;
  flex: 0 0 auto;
  place-items: center;
  color: var(--folio-ink, #d9bd72);
  border: 1px solid rgba(190, 153, 78, 0.48);
  border-radius: 50%;
  font-family: var(--font-brush);
  font-size: 17px;
  font-style: normal;
}
.market-directory-status b { color: var(--folio-ink, #cbd9cf); font-size: var(--ming-font-small, 14px); white-space: nowrap; }
.market-directory-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 10px;
}
.market-directory-grid.is-single { grid-template-columns: minmax(0, 1fr); }
.market-directory-card {
  min-width: 0;
  display: grid;
  grid-template-columns: 150px minmax(0, 1fr);
  grid-template-rows: minmax(176px, auto) auto;
  overflow: hidden;
  border: 1px solid rgba(190, 153, 78, 0.3);
  background: var(--folio-card, #0a120e);
}
.market-directory-card.is-open {
  border-color: var(--folio-rule, rgba(117, 169, 141, 0.48));
  box-shadow: inset 3px 0 rgba(95, 151, 122, 0.76);
}
.market-district-directory.is-periodic-market {
  border-color: var(--folio-rule, rgba(185, 139, 70, 0.58));
  background: var(--folio-card, #0e120d);
}
.market-district-directory.is-periodic-market .market-directory-intro {
  border-left-color: var(--folio-rule, #b48545);
  background: var(--folio-card, #11170f);
}
.market-directory-card.is-periodic-stall {
  border-color: var(--folio-rule, rgba(188, 142, 75, 0.5));
  background: var(--folio-card, #10140e);
}
.market-directory-card.is-periodic-stall.is-open {
  border-color: var(--folio-rule, rgba(137, 174, 119, 0.64));
  box-shadow: inset 3px 0 #789d6d;
}
.market-directory-card.is-periodic-stall > div > span { color: var(--folio-muted, #c9b06f); }
.market-directory-card.is-periodic-stall > button:not(:disabled) {
  border-color: var(--folio-rule, rgba(168, 142, 78, 0.72));
  background: var(--folio-card, #26311d);
  box-shadow: inset 3px 0 #a78245;
}
.market-directory-card.is-periodic-stall > button:not(:disabled):hover { background: var(--folio-hover, #303d24); }
.market-directory-card > figure {
  position: relative;
  min-height: 176px;
  margin: 0;
  overflow: hidden;
  border-right: 1px solid rgba(190, 153, 78, 0.22);
  background: linear-gradient(rgba(5, 10, 8, 0.12), rgba(5, 10, 8, 0.28)), var(--shop-art) center / cover no-repeat;
}
.market-directory-card > div { min-width: 0; display: grid; align-content: start; gap: 5px; padding: 13px; }
.market-directory-card > div > span { color: var(--folio-muted, #9fc1ad); font-size: var(--ming-font-small, 14px); font-weight: 760; letter-spacing: 0.08em; }
.market-directory-card.is-closed > div > span { color: var(--folio-muted, #b98676); }
.market-directory-card h4 { margin: 0; color: var(--folio-ink, #ead9b4); font-family: var(--font-brush); font-size: 25px; font-weight: 400; }
.market-directory-card p { margin: 0; color: var(--folio-muted, #b7ad98); font-size: var(--ming-font-body, 16px); line-height: 1.58; }
.market-directory-card dl { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1px; margin: 5px 0 0; background: var(--folio-card, rgba(190, 153, 78, 0.2)); }
.market-directory-card dl > div { min-width: 0; padding: 7px; background: var(--folio-card, #0d1711); }
.market-directory-card dt { color: var(--folio-muted, #8fa598); font-size: var(--ming-font-small, 14px); }
.market-directory-card dd {
  margin: 2px 0 0;
  overflow: visible;
  color: var(--folio-ink, #decba2);
  font-size: var(--ming-font-small, 14px);
  line-height: 1.4;
  overflow-wrap: anywhere;
  text-overflow: clip;
  white-space: normal;
}
.market-directory-card > button {
  grid-column: 1 / -1;
  width: 100%;
  min-height: 48px;
  display: grid;
  padding: 9px 13px;
  text-align: left;
}
.market-directory-card > button:not(:disabled) {
  border-color: var(--folio-rule, rgba(118, 176, 146, 0.64));
  background: var(--folio-card, #173326);
  box-shadow: inset 3px 0 rgba(112, 174, 142, 0.72);
}
.market-directory-card > button:not(:disabled):hover { background: var(--folio-hover, #1d4030); }
.market-directory-card > button:disabled { color: var(--folio-ink, #a7977e); border-color: var(--folio-rule, rgba(137, 102, 75, 0.36)); background: var(--folio-card, #17120f); }
.market-directory-grid.is-single .market-directory-card {
  grid-template-columns: minmax(210px, 0.32fr) minmax(0, 1fr) minmax(200px, 0.27fr);
  grid-template-rows: minmax(190px, auto);
}
.market-directory-grid.is-single .market-directory-card > figure { min-height: 190px; }
.market-directory-grid.is-single .market-directory-card > div { align-content: center; padding: 18px 20px; }
.market-directory-grid.is-single .market-directory-card > button {
  grid-column: 3;
  grid-row: 1;
  width: calc(100% - 28px);
  min-height: 72px;
  align-self: center;
  margin: 14px;
  padding: 12px 14px;
}
.market-directory-rule {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr) minmax(210px, auto);
  align-items: center;
  gap: 11px;
  padding: 11px 14px;
  border: 1px solid rgba(102, 163, 132, 0.25);
  background: var(--folio-card, #0c1912);
}
.market-directory-rule b { color: var(--folio-ink, #d8c99f); font-size: 14px; }
.market-directory-rule p { margin: 2px 0 0; color: var(--folio-muted, #aebdb1); font-size: var(--ming-font-body, 16px); line-height: 1.55; }
.market-directory-rule button { min-height: 48px; display: grid; text-align: left; }

.market-shop-page { display: grid; gap: 13px; padding: 14px; }
.ironwork-repair-catalog {
  display: grid;
  gap: 12px;
  padding: 14px;
  border: 1px solid rgba(184, 139, 70, 0.34);
  background: var(--folio-card, linear-gradient(145deg, rgba(75, 51, 21, 0.18), transparent 44%), #08100c);
}
.ironwork-repair-catalog > header { display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: start; gap: 5px 14px; }
.ironwork-repair-catalog > header span { color: var(--folio-muted, #c8a35a); font-size: var(--ming-font-small, 14px); font-weight: 780; letter-spacing: 0.08em; }
.ironwork-repair-catalog > header h4 { margin: 3px 0 0; color: var(--folio-ink, #efdeb7); font-family: var(--font-brush); font-size: 25px; font-weight: 400; }
.ironwork-repair-catalog > header > em { padding: 6px 10px; color: var(--folio-muted, #d9c28a); border: 1px solid rgba(188, 147, 73, 0.38); background: var(--folio-card, rgba(44, 31, 13, 0.62)); font-size: var(--ming-font-small, 14px); font-style: normal; }
.ironwork-repair-catalog > header > p { grid-column: 1 / -1; margin: 0; color: var(--folio-muted, #b7b6a8); font-size: var(--ming-font-body, 16px); line-height: 1.65; }
.ironwork-repair-list { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 500px), 1fr)); gap: 12px; align-items: start; }
.ironwork-repair-list .ironwork-repair-panel { grid-template-columns: minmax(155px, 0.32fr) minmax(0, 1fr); height: 100%; }
.ironwork-repair-list .ironwork-repair-panel > figure { min-height: 246px; }
.ironwork-repair-list .ironwork-repair-panel > figure img { width: min(78%, 170px); }
.ironwork-repair-list .ironwork-repair-copy > dl { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.ironwork-repair-catalog > footer { color: var(--folio-ink, #a8b3a8); font-size: var(--ming-font-small, 14px); line-height: 1.65; }
.ironwork-repair-panel {
  min-width: 0;
  display: grid;
  grid-template-columns: minmax(210px, 0.38fr) minmax(0, 1fr);
  overflow: hidden;
  border: 1px solid rgba(184, 139, 70, 0.48);
  background: var(--folio-card, #0a110d);
  box-shadow: inset 4px 0 #8f6332;
}
.ironwork-repair-panel > figure {
  position: relative;
  min-height: 292px;
  margin: 0;
  display: grid;
  place-items: center;
  overflow: hidden;
  border-right: 1px solid rgba(184, 139, 70, 0.34);
  background:
    radial-gradient(circle at 48% 45%, rgba(187, 134, 63, 0.2), transparent 44%),
    #080d0a;
}
.ironwork-repair-panel > figure::before {
  content: '';
  position: absolute;
  inset: 14px;
  border: 1px solid rgba(209, 172, 99, 0.2);
  box-shadow: inset 0 0 0 6px rgba(7, 13, 10, 0.72);
}
.ironwork-repair-panel > figure img {
  position: relative;
  z-index: 1;
  width: min(76%, 210px);
  aspect-ratio: 1;
  object-fit: contain;
  filter: drop-shadow(0 18px 22px rgba(0, 0, 0, 0.5));
}
.ironwork-repair-panel figcaption {
  position: absolute;
  z-index: 2;
  inset: auto 14px 14px;
  display: grid;
  gap: 3px;
  padding: 9px 11px;
  border-left: 3px solid #b98a46;
  background: rgba(6, 12, 9, 0.92);
}
.ironwork-repair-panel figcaption span,
.ironwork-repair-copy header span { color: #caa75e; font-size: var(--ming-font-small, 14px); font-weight: 780; letter-spacing: 0.08em; }
.ironwork-repair-panel figcaption b { color: #e3d3ad; font-size: 14px; }
.ironwork-repair-copy { min-width: 0; display: grid; gap: 12px; align-content: start; padding: 16px; }
.ironwork-repair-copy > header { display: flex; align-items: start; justify-content: space-between; gap: 12px; }
.ironwork-repair-copy h4 { margin: 4px 0 0; color: var(--folio-ink, #f0dfb8); font-family: var(--font-brush); font-size: 27px; font-weight: 400; }
.ironwork-repair-copy header em {
  min-width: max-content;
  padding: 6px 9px;
  color: var(--folio-muted, #d8c18a);
  border: 1px solid rgba(186, 145, 74, 0.42);
  background: var(--folio-card, #17150e);
  font-size: var(--ming-font-small, 14px);
  font-style: normal;
  font-weight: 750;
}
.ironwork-repair-panel.is-ready .ironwork-repair-copy header em,
.ironwork-repair-panel.is-open .ironwork-repair-copy header em { color: var(--folio-success, #bcd9c4); border-color: var(--folio-rule, rgba(91, 156, 122, 0.52)); background: var(--folio-success-surface, #0e1d16); }
.ironwork-repair-copy > p { margin: 0; color: var(--folio-muted, #bac0b4); font-size: var(--ming-font-body, 16px); line-height: 1.72; }
.ironwork-repair-copy > dl { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 1px; margin: 0; background: var(--folio-card, rgba(181, 143, 74, 0.22)); }
.ironwork-repair-copy > dl > div { min-width: 0; padding: 9px; background: var(--folio-card, #0d1510); }
.ironwork-repair-copy dt { color: var(--folio-muted, #91a397); font-size: var(--ming-font-small, 14px); }
.ironwork-repair-copy dd { margin: 3px 0 0; color: var(--folio-ink, #e0d0ac); font-size: 14px; font-weight: 760; overflow-wrap: anywhere; }
.ironwork-repair-materials { display: flex; flex-wrap: wrap; gap: 7px; }
.ironwork-repair-materials > span { min-width: 0; flex: 1 1 180px; display: grid; grid-template-columns: 38px minmax(0, 1fr); align-items: center; gap: 8px; padding: 7px 9px; border: 1px solid rgba(117, 159, 133, 0.3); background: var(--folio-card, #0c1812); }
.ironwork-repair-materials > span.missing { border-color: var(--folio-rule, rgba(166, 91, 69, 0.46)); background: var(--folio-danger-surface, #1a100d); }
.ironwork-repair-materials > span.text-only { grid-template-columns: 1fr; }
.ironwork-repair-materials img { width: 36px; height: 36px; object-fit: contain; filter: drop-shadow(0 4px 5px rgba(0, 0, 0, 0.38)); }
.ironwork-repair-materials i { min-width: 0; display: grid; gap: 2px; font-style: normal; }
.ironwork-repair-materials b { color: var(--folio-ink, #dacdac); font-size: 14px; }
.ironwork-repair-materials small { color: var(--folio-muted, #a9b3a9); font-size: var(--ming-font-small, 14px); line-height: 1.45; }
.ironwork-repair-status { display: grid; grid-template-columns: 38px minmax(0, 1fr); align-items: center; gap: 10px; padding: 10px; border: 1px solid rgba(100, 155, 126, 0.3); background: var(--folio-card, #0d1a13); }
.ironwork-repair-panel.is-blocked .ironwork-repair-status { border-color: var(--folio-rule, rgba(165, 91, 68, 0.38)); background: var(--folio-danger-surface, #1b100d); }
.ironwork-repair-status > i { width: 36px; height: 36px; display: grid; place-items: center; color: var(--folio-ink, #dfc888); border: 1px solid rgba(199, 155, 72, 0.5); border-radius: 50%; font-size: 17px; font-style: normal; font-weight: 800; }
.ironwork-repair-status b { color: var(--folio-ink, #e2d4b4); font-size: 14px; }
.ironwork-repair-status p { margin: 2px 0 0; color: var(--folio-muted, #aeb9ae); font-size: var(--ming-font-body, 16px); line-height: 1.55; }
.ironwork-order-progress { display: grid; gap: 7px; padding: 10px; border: 1px solid rgba(190, 153, 78, 0.28); background: #0b120e; }
.ironwork-order-progress header { display: flex; justify-content: space-between; gap: 10px; }
.ironwork-order-progress header span,
.ironwork-order-progress header b,
.ironwork-order-progress small { font-size: var(--ming-font-small, 14px); }
.ironwork-order-progress header span { color: var(--folio-muted, #bda464); }
.ironwork-order-progress header b { color: var(--folio-ink, #d9c9a3); }
.ironwork-order-progress > div { height: 7px; overflow: hidden; border: 1px solid rgba(177, 143, 70, 0.34); background: #070b09; }
.ironwork-order-progress > div i { display: block; height: 100%; background: #8f6d33; transition: width 180ms ease; }
.ironwork-order-progress small { color: var(--folio-muted, #9eaca1); }
.ironwork-last-receipt { display: grid; gap: 3px; padding: 9px 11px; border-left: 3px solid #6f997d; background: var(--folio-card, #0c1812); }
.ironwork-last-receipt span,
.ironwork-last-receipt small { color: var(--folio-muted, #a6b6aa); font-size: var(--ming-font-small, 14px); }
.ironwork-last-receipt b { color: var(--folio-ink, #d9cba9); font-size: 14px; }
.ironwork-repair-action { width: 100%; min-height: 52px; display: grid; text-align: left; background: var(--folio-card, #253a27) !important; border-color: var(--folio-rule, rgba(190, 153, 78, 0.58)) !important; }
.ironwork-repair-action b { font-size: 16px; }
.ironwork-repair-action small { font-size: var(--ming-font-small, 14px); }
.ironwork-repair-copy > footer { color: var(--folio-ink, #91a196); font-size: var(--ming-font-small, 14px); line-height: 1.6; }
.market-shop-hero {
  position: relative;
  isolation: isolate;
  min-height: 174px;
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(220px, 0.42fr) auto;
  align-items: end;
  gap: 13px;
  overflow: hidden;
  padding: 16px;
  border: 1px solid rgba(191, 155, 80, 0.3);
  background: #0a120e;
}
.market-shop-hero::before { content: ''; position: absolute; z-index: -2; inset: 0; background: var(--market-art) 82% center / cover no-repeat; opacity: 0.28; }
.market-shop-hero::after { content: ''; position: absolute; z-index: -1; inset: 0; background: rgba(5, 11, 8, 0.8); }
.market-shop-hero dl { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.market-shop-hero > button { display: grid; text-align: left; }
.market-quote-card {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto minmax(190px, auto);
  align-items: center;
  gap: 12px;
  padding: 14px;
  border: 1px solid rgba(104, 164, 133, 0.48);
  background: var(--folio-card, #102219);
}
.market-quote-card.stale { border-color: var(--folio-rule, rgba(170, 91, 68, 0.56)); background: var(--folio-card, #241511); }
.market-quote-card h4 { margin: 3px 0; color: var(--folio-ink, #edddb7); font-size: 18px; }
.market-quote-card strong { color: var(--folio-ink, #e2c26f); font-size: 28px; }
.market-quote-card strong small { margin-left: 3px; font-size: var(--ming-font-small, 14px); }
.market-quote-card > button { display: grid; text-align: left; }
.market-trade-receipt { padding: 11px 13px; color: var(--folio-ink, #b8cabb); border-left: 4px solid #689a7f; background: var(--folio-card, #0d1b14); font-size: var(--ming-font-small, 14px); }
.market-sell-panel,
.market-stock-ledger { display: grid; gap: 10px; padding: 13px; border: 1px solid rgba(190, 153, 78, 0.28); background: var(--folio-card, #0a120e); }
.market-sell-panel > header,
.market-stock-ledger > header,
.market-goods-group > header { display: flex; justify-content: space-between; gap: 10px; }
.market-sell-panel > header small,
.market-stock-ledger > header small,
.market-goods-group > header small { color: var(--folio-muted, #99a99e); font-size: var(--ming-font-small, 14px); }
.market-sell-panel > div { display: grid; gap: 7px; }
.market-sell-panel article { display: grid; grid-template-columns: 46px minmax(0, 1fr) auto; align-items: center; gap: 9px; padding: 8px; border: 1px solid rgba(107, 155, 130, 0.28); background: var(--folio-card, #07100c); }
.market-sell-panel img { width: 46px; height: 46px; object-fit: cover; }
.market-sell-panel article > div { min-width: 0; display: grid; gap: 2px; }
.market-sell-panel article > div b { color: var(--folio-ink, #e3d3ae); font-size: 14px; }
.market-sell-panel article > div small { color: var(--folio-muted, #9fae9f); font-size: var(--ming-font-small, 14px); }
.market-sell-panel article > button { display: grid; text-align: left; }
.market-stock-ledger > header h4 { margin: 3px 0 0; color: var(--folio-ink, #ead9b4); font-size: 18px; }
.market-goods-group { display: grid; gap: 7px; }
.market-goods-group > div { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; }
.market-goods-card { min-width: 0; display: grid; grid-template-columns: 68px minmax(0, 1fr); gap: 10px; padding: 10px; border: 1px solid rgba(177, 145, 78, 0.3); background: var(--folio-card, #07100c); }
.market-goods-card figure { position: relative; width: 68px; height: 68px; margin: 0; overflow: hidden; border: 1px solid rgba(180, 147, 78, 0.32); background: #10150f; }
.market-goods-card figure img { width: 100%; height: 100%; object-fit: cover; }
.market-goods-card.is-new-arrival {
  border-color: var(--folio-rule, rgba(218, 174, 80, 0.62));
  box-shadow: inset 3px 0 rgba(204, 153, 60, 0.78);
}
.market-goods-new-badge {
  position: absolute;
  z-index: 1;
  inset: 5px auto auto 5px;
  min-width: 0;
  padding: 4px 6px;
  color: var(--folio-ink, #241706);
  border: 1px solid rgba(255, 228, 155, 0.68);
  border-radius: 2px;
  background: var(--folio-card, #d1a84f);
  box-shadow: 0 3px 9px rgba(0, 0, 0, 0.42);
  font-size: var(--ming-font-small, 14px);
  font-style: normal;
  font-weight: 800;
  line-height: 1.1;
  white-space: nowrap;
}
.market-goods-card figcaption { position: absolute; inset: auto 0 0; padding: 2px 3px; color: #ead59f; background: rgba(31, 22, 12, 0.9); font-size: var(--ming-font-small, 14px); text-align: center; }
.market-goods-card > div { min-width: 0; }
.market-goods-card h5 { margin: 3px 0; color: var(--folio-ink, #eadbb8); font-size: 16px; }
.market-goods-card p { display: block; overflow: visible; }
.market-goods-card > div > small { color: var(--folio-muted, #a8b7a9); font-size: var(--ming-font-small, 14px); }
.market-goods-tags { display: flex; flex-wrap: wrap; gap: 4px; margin: 6px 0; }
.market-goods-tags em { padding: 2px 5px; color: var(--folio-muted, #c7ad6c); border: 1px solid rgba(180, 145, 74, 0.3); font-size: var(--ming-font-small, 14px); font-style: normal; }
.market-goods-card > button { grid-column: 1 / -1; display: grid; width: 100%; text-align: left; }

@media (max-width: 760px) {
  .market-landing,
  .market-shop-page { padding: 12px; }
  .market-summary-card { min-height: 0; grid-template-columns: 1fr; padding: 132px 12px 12px; }
  .market-summary-card::before { height: 120px; }
  .market-summary-card::after { background: linear-gradient(180deg, rgba(4, 9, 7, 0.08) 0, rgba(4, 9, 7, 0.5) 86px, #08100c 120px, #08100c 100%); }
  .market-summary-card > button { grid-column: 1; width: 100%; }
  .market-landing-facts { grid-template-columns: 1fr; }
  .market-landing { min-height: 0; }
  .market-landing > footer,
  .market-directory-rule,
  .market-shop-hero,
  .market-quote-card { grid-template-columns: 1fr; }
  .market-directory-intro { grid-template-columns: 1fr; gap: 10px; padding: 13px; }
  .market-directory-intro h3 { font-size: 27px; }
  .market-directory-intro p { font-size: var(--ming-font-body, 16px); }
  .market-directory-status { justify-content: flex-start; }
  .market-directory-status > span { min-height: 44px; flex: 1 1 132px; }
  .market-directory-grid { grid-template-columns: 1fr; }
  .market-directory-card { grid-template-columns: 104px minmax(0, 1fr); grid-template-rows: minmax(148px, auto) auto; }
  .market-directory-card > figure { min-height: 148px; }
  .market-directory-card dl { grid-template-columns: 1fr; }
  .market-directory-grid.is-single .market-directory-card {
    grid-template-columns: 112px minmax(0, 1fr);
    grid-template-rows: minmax(158px, auto) auto;
  }
  .market-directory-grid.is-single .market-directory-card > figure { min-height: 158px; }
  .market-directory-grid.is-single .market-directory-card > div { align-content: start; padding: 12px; }
  .market-directory-grid.is-single .market-directory-card dl { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .market-directory-grid.is-single .market-directory-card dd {
    overflow: visible;
    text-overflow: clip;
    white-space: normal;
  }
  .market-directory-grid.is-single .market-directory-card > button {
    grid-column: 1 / -1;
    grid-row: 2;
    width: 100%;
    min-height: 52px;
    margin: 0;
  }
  .market-directory-rule > i { display: none; }
  .market-shop-hero { min-height: 0; }
  .market-shop-hero > button,
  .market-quote-card > button { width: 100%; }
  .market-goods-group > div { grid-template-columns: 1fr; }
  .ironwork-repair-catalog { padding: 12px; }
  .ironwork-repair-catalog > header { grid-template-columns: 1fr; }
  .ironwork-repair-catalog > header > em { justify-self: start; }
  .ironwork-repair-list { grid-template-columns: 1fr; }
  .ironwork-repair-list .ironwork-repair-panel { grid-template-columns: 1fr; }
  .ironwork-repair-list .ironwork-repair-panel > figure { min-height: 188px; }
  .ironwork-repair-panel { grid-template-columns: 1fr; }
  .ironwork-repair-panel > figure { min-height: 188px; border-right: 0; border-bottom: 1px solid rgba(184, 139, 70, 0.34); }
  .ironwork-repair-panel > figure img { width: min(48%, 150px); }
  .ironwork-repair-copy { padding: 13px; }
  .ironwork-repair-copy > header { align-items: start; }
  .ironwork-repair-copy > dl { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .market-sell-panel article { grid-template-columns: 48px minmax(0, 1fr); }
  .market-sell-panel article > button { grid-column: 1 / -1; width: 100%; }
  .market-summary-card span,
  .market-landing > header span,
  .market-shop-hero span,
  .market-quote-card > span,
  .market-sell-panel > header span,
  .market-stock-ledger > header span,
  .market-goods-group > header span,
  .market-goods-card > div > span,
  .market-summary-card p,
  .market-landing p,
  .market-shop-hero p,
  .market-quote-card p,
  .market-sell-panel p,
  .market-goods-card p,
  .market-summary-card dt,
  .market-landing-facts small,
  .market-shop-page button small,
  .market-sell-panel article > div small,
  .market-goods-card > div > small,
  .market-sell-panel > header small,
  .market-stock-ledger > header small,
  .market-goods-group > header small { font-size: var(--ming-font-small, 14px); }
  .market-goods-card figcaption,
  .market-goods-tags em { font-size: var(--ming-font-small, 14px); }
}

/* 店中没有需要眯眼辨认的注脚；桌面与手机都守住正文阅读线。 */
.market-goods-card figcaption,
.market-goods-tags em { font-size: var(--ming-font-small, 14px); }

/* 铺面视觉二稿：收紧重复横幅，以木柜陈列和价格牌替代后台清单感。 */
.market-shop-page {
  gap: 11px;
  padding: 12px;
  border-color: var(--folio-rule, rgba(193, 151, 72, 0.34));
  background: var(--folio-card, #0c0d09);
}
.market-shop-hero {
  min-height: 142px;
  grid-template-columns: minmax(280px, 1fr) minmax(330px, 0.72fr) 156px;
  align-items: end;
  gap: 14px;
  padding: 17px 18px;
  border-color: rgba(202, 159, 76, 0.48);
  background: #151008;
  box-shadow: inset 0 -1px rgba(237, 203, 126, 0.08), 0 9px 28px rgba(0, 0, 0, 0.24);
}
.market-shop-hero::before {
  background-position: 72% center;
  opacity: 0.54;
}
.market-shop-hero::after {
  background: linear-gradient(90deg, rgba(8, 8, 5, 0.98) 0 36%, rgba(8, 8, 5, 0.72) 60%, rgba(8, 8, 5, 0.28));
}
.market-shop-hero > div { max-width: 570px; }
.market-shop-hero h3 { font-size: clamp(27px, 2.4vw, 36px); }
.market-shop-hero p { max-width: 520px; color: #d0c2a4; }
.market-shop-hero dl {
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 1px;
  align-self: stretch;
  align-content: end;
  background: rgba(207, 164, 82, 0.28);
}
.market-shop-hero dl > div {
  min-height: 62px;
  display: grid;
  align-content: center;
  padding: 9px 10px;
  background: rgba(13, 14, 9, 0.9);
}
.market-shop-hero dd { line-height: 1.25; }
.market-shop-hero > button {
  min-height: 62px;
  align-content: center;
  padding-inline: 15px;
  border-color: rgba(191, 150, 72, 0.5);
  background: rgba(41, 31, 15, 0.92);
}
.market-shop-page button:not(:disabled):hover,
.market-shop-page button:not(:disabled):focus-visible {
  color: var(--folio-ink, #fff0c7);
  border-color: var(--folio-rule, rgba(224, 184, 99, 0.82));
  background: var(--folio-hover, #3b2d16);
}
.market-quote-card {
  position: sticky;
  top: 8px;
  z-index: 4;
  border-color: var(--folio-rule, rgba(214, 173, 89, 0.72));
  background: var(--folio-card, #211b0e);
  box-shadow: 0 11px 24px rgba(0, 0, 0, 0.34);
}
.market-quote-card.current::before {
  width: 3px;
  align-self: stretch;
  content: '';
  background: #d2aa58;
}
.market-quote-card.current { grid-template-columns: 3px minmax(0, 1fr) auto minmax(190px, auto); }
.market-quote-card.current > span,
.market-quote-card.current h4 { grid-column: 2; }
.market-quote-card.current strong { grid-column: 3; }
.market-quote-card.current p { grid-column: 2 / 4; }
.market-quote-card.current button { grid-column: 4; }
.market-last-receipt {
  border: 1px solid rgba(104, 149, 126, 0.24);
  border-left: 3px solid #6f9a82;
  background: var(--folio-card, #101b14);
}
.market-arrival-note {
  min-width: 0;
  display: grid;
  grid-template-columns: 42px minmax(0, 1fr);
  align-items: center;
  gap: 11px;
  padding: 10px 12px;
  border: 1px solid rgba(183, 148, 72, 0.38);
  border-left: 3px solid #c49b49;
  background: var(--folio-card, #1a170d);
}
.market-arrival-note > i {
  width: 38px;
  height: 38px;
  display: grid;
  place-items: center;
  color: var(--folio-ink, #f0d590);
  border: 1px solid rgba(211, 171, 83, 0.52);
  border-radius: 50%;
  font-family: var(--font-brush);
  font-size: 23px;
  font-style: normal;
}
.market-arrival-note > div { min-width: 0; display: grid; gap: 2px; }
.market-arrival-note span { color: var(--folio-muted, #c6a35a); font-size: var(--ming-font-small, 14px); }
.market-arrival-note b { color: var(--folio-ink, #ead9b2); font-size: 15px; overflow-wrap: anywhere; }
.market-arrival-note small { color: var(--folio-muted, #a9a08d); font-size: var(--ming-font-small, 14px); }

.market-supply-incident {
  display: grid;
  grid-template-columns: 44px minmax(0, 1fr);
  gap: 12px;
  align-items: center;
  min-height: 76px;
  padding: 13px 15px;
  border: 1px solid rgba(176, 137, 65, 0.42);
  background: var(--folio-card, linear-gradient(110deg, rgba(47, 28, 16, 0.94), rgba(11, 17, 13, 0.96)));
}

.market-supply-incident > i {
  display: grid;
  place-items: center;
  width: 44px;
  height: 44px;
  border: 1px solid rgba(208, 163, 77, 0.62);
  color: var(--folio-ink, #ead6a3);
  background: var(--folio-card, rgba(92, 42, 25, 0.78));
  font-family: var(--font-brush);
  font-size: 22px;
  font-style: normal;
}

.market-supply-incident > div { min-width: 0; display: grid; gap: 3px; }
.market-supply-incident span { color: var(--folio-muted, #cfad69); font-size: var(--ming-font-small, 14px); letter-spacing: 0.12em; }
.market-supply-incident b { color: var(--folio-ink, #f0dfb8); font-size: 16px; }
.market-supply-incident p { margin: 0; color: var(--folio-muted, #c6bca7); font-size: var(--ming-font-body, 16px); line-height: 1.6; }
.market-supply-incident small { color: var(--folio-muted, #a99e88); font-size: var(--ming-font-small, 14px); line-height: 1.5; }
.market-supply-pressure {
  border-color: var(--folio-rule, rgba(181, 126, 58, 0.54));
  background: var(--folio-card, #21170d);
}
.market-supply-pressure > i {
  border-color: var(--folio-rule, rgba(205, 151, 73, 0.68));
  color: var(--folio-ink, #f0d29a);
  background: var(--folio-card, #4a2818);
}
.market-supply-pressure span,
.market-supply-pressure p,
.market-supply-pressure small { font-size: var(--ming-font-small, 14px); }
.market-supply-incident.recovered { border-color: var(--folio-rule, rgba(86, 145, 105, 0.48)); background: var(--folio-card, linear-gradient(110deg, rgba(18, 51, 35, 0.92), rgba(10, 18, 13, 0.96))); }
.market-supply-incident.recovered > i { border-color: var(--folio-rule, rgba(101, 160, 119, 0.62)); background: var(--folio-card, rgba(26, 74, 48, 0.76)); }

.market-shopkeeper-conversation {
  display: grid;
  grid-template-columns: 56px minmax(0, 1fr) minmax(190px, 240px);
  gap: 13px;
  align-items: center;
  padding: 11px 13px;
  border: 1px solid rgba(87, 139, 113, 0.38);
  background: var(--folio-card, #0b1510);
}
.market-shopkeeper-portrait {
  width: 56px;
  height: 56px;
  margin: 0;
  overflow: hidden;
  border: 1px solid rgba(191, 157, 88, 0.5);
  background: #11140f;
}
.market-shopkeeper-portrait img { width: 100%; height: 100%; object-fit: cover; object-position: center 18%; }
.market-shopkeeper-portrait.fallback { display: grid; place-items: center; color: #d7bd7d; font-family: var(--font-brush); font-size: 25px; }
.market-shopkeeper-conversation > div { min-width: 0; display: grid; gap: 3px; }
.market-shopkeeper-conversation > div span { color: var(--folio-muted, #86b29d); font-size: var(--ming-font-small, 14px); letter-spacing: 0.08em; }
.market-shopkeeper-conversation > div b { color: var(--folio-ink, #eadcb8); font-size: 16px; }
.market-shopkeeper-conversation > div small { color: var(--folio-muted, #aeb8ac); font-size: var(--ming-font-small, 14px); line-height: 1.5; }
.market-shopkeeper-conversation > button { min-height: 52px; text-align: left; }

.market-small-service {
  display: grid;
  grid-template-columns: 112px minmax(0, 1fr) minmax(190px, 236px);
  gap: 14px;
  align-items: stretch;
  padding: 13px;
  border: 1px solid rgba(202, 159, 76, 0.4);
  border-left: 3px solid #c79c4e;
  background: var(--folio-card, #17140c);
}
.market-small-service.is-blocked { border-left-color: var(--folio-rule, #7d6d51); background: var(--folio-danger-surface, #13120e); }
.market-small-service > figure {
  position: relative;
  min-height: 112px;
  margin: 0;
  overflow: hidden;
  border: 1px solid rgba(193, 151, 72, 0.34);
  background: #0d0d09;
}
.market-small-service > figure img { width: 100%; height: 100%; object-fit: contain; padding: 8px; }
.market-small-service > figure figcaption {
  position: absolute;
  inset: auto 0 0;
  padding: 4px 7px;
  color: #efd99f;
  background: rgba(17, 14, 8, 0.9);
  font-size: var(--ming-font-small, 14px);
  text-align: center;
}
.market-small-service > div { min-width: 0; display: grid; align-content: center; gap: 8px; }
.market-small-service header { display: grid; gap: 2px; }
.market-small-service header span { color: var(--folio-muted, #c6a35a); font-size: var(--ming-font-small, 14px); letter-spacing: 0.08em; }
.market-small-service h4 { margin: 0; color: var(--folio-muted, #f0dfb8); font-size: 20px; }
.market-small-service p { margin: 0; color: var(--folio-muted, #c2b9a4); font-size: var(--ming-font-small, 14px); line-height: 1.6; }
.market-small-service dl { display: grid; grid-template-columns: 86px 86px minmax(150px, 1fr); gap: 7px; margin: 0; }
.market-small-service dl > div { min-width: 0; padding: 7px 8px; border: 1px solid rgba(188, 146, 70, 0.22); background: var(--folio-card, #10110c); }
.market-small-service dt { color: var(--folio-muted, #908b7c); font-size: var(--ming-font-small, 14px); }
.market-small-service dd { margin: 2px 0 0; color: var(--folio-muted, #e4d4ae); font-size: var(--ming-font-small, 14px); line-height: 1.4; overflow-wrap: anywhere; }
.market-small-service-materials { color: var(--folio-muted, #9fa89b); font-size: var(--ming-font-small, 14px); line-height: 1.45; }
.market-small-service > button { min-height: 56px; align-self: center; text-align: left; }
.market-small-service-receipt { display: grid; gap: 2px; padding: 7px 9px; border-left: 2px solid #6f9a82; background: var(--folio-card, #0f1a13); }
.market-small-service-receipt span,
.market-small-service-receipt small { color: var(--folio-muted, #a8b7ab); font-size: var(--ming-font-small, 14px); line-height: 1.4; }
.market-small-service-receipt b { color: var(--folio-muted, #dce6d8); font-size: var(--ming-font-small, 14px); }

@media (max-width: 540px) {
  .market-supply-incident { grid-template-columns: 40px minmax(0, 1fr); gap: 10px; padding: 12px; }
  .market-supply-incident > i { width: 40px; height: 40px; }
  .market-shopkeeper-conversation { grid-template-columns: 50px minmax(0, 1fr); padding: 10px; }
  .market-shopkeeper-portrait { width: 50px; height: 50px; }
  .market-shopkeeper-conversation > button { grid-column: 1 / -1; width: 100%; min-height: 54px; }
  .market-small-service { grid-template-columns: 78px minmax(0, 1fr); gap: 10px; padding: 10px; }
  .market-small-service > figure { min-height: 92px; }
  .market-small-service dl { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .market-small-service dl > div:last-child { grid-column: 1 / -1; }
  .market-small-service > button { grid-column: 1 / -1; width: 100%; min-height: 54px; }
}
.market-sell-empty {
  min-width: 0;
  display: flex;
  align-items: center;
  gap: 13px;
  padding: 9px 12px;
  border: 1px solid rgba(163, 130, 68, 0.25);
  background: var(--folio-card, #12120c);
}
.market-sell-empty span {
  flex: 0 0 auto;
  color: var(--folio-muted, #c6a45f);
  font-size: var(--ming-font-small, 14px);
  font-weight: 750;
}
.market-sell-empty p {
  margin: 0;
  color: var(--folio-muted, #aaa18c);
  font-size: var(--ming-font-body, 16px);
}
.market-stock-ledger {
  gap: 18px;
  padding: 2px 2px 12px;
  border: 0;
  background: transparent;
}
.market-stock-ledger > header {
  margin: 0;
  padding: 13px 14px;
  align-items: center;
  border: 1px solid rgba(185, 144, 69, 0.26);
  background: var(--folio-card, #12120c);
}
.market-stock-ledger > header h4 {
  margin-top: 1px;
  color: var(--folio-ink, #f0dfb7);
  font-size: 19px;
}
.market-goods-group {
  gap: 10px;
  margin: 0;
  padding: 0 2px;
}
.market-goods-group + .market-goods-group {
  margin-top: 2px;
  padding-top: 16px;
  border-top: 1px solid rgba(183, 141, 67, 0.2);
}
.market-goods-group > header {
  justify-content: flex-start;
  align-items: center;
  gap: 10px;
  margin: 0;
}
.market-goods-group > header i {
  width: 34px;
  height: 34px;
  display: grid;
  place-items: center;
  flex: 0 0 auto;
  color: var(--folio-ink, #e2c57e);
  border: 1px solid rgba(203, 161, 76, 0.5);
  border-radius: 50%;
  background: var(--folio-card, #20190c);
  font-family: var(--font-brush);
  font-size: 20px;
  font-style: normal;
}
.market-goods-group > header > div { display: grid; gap: 1px; }
.market-goods-group > header span { color: var(--folio-muted, #e3cf9c); font-size: 14px; letter-spacing: 0.08em; }
.market-goods-group > header small { color: var(--folio-muted, #8f8d80); font-size: var(--ming-font-small, 14px); }
.market-goods-group > div {
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 10px;
}
.market-goods-card {
  position: relative;
  grid-template-columns: 96px minmax(0, 1fr);
  grid-template-rows: minmax(112px, auto) auto;
  gap: 10px 12px;
  padding: 11px;
  overflow: hidden;
  border-color: var(--folio-rule, rgba(177, 139, 68, 0.3));
  background: var(--folio-card, #11130d);
  box-shadow: inset 0 1px rgba(236, 210, 149, 0.035);
}
.market-goods-card::before {
  position: absolute;
  inset: 0 auto 0 0;
  width: 2px;
  content: '';
  background: rgba(186, 145, 68, 0.44);
}
.market-goods-card figure {
  width: 96px;
  height: 112px;
  min-height: 0;
  grid-row: 1;
  overflow: hidden;
  border: 1px solid rgba(183, 146, 77, 0.2);
  background: #191a12;
}
.market-goods-card figure img {
  width: 94px;
  height: 108px;
  object-fit: contain;
  filter: drop-shadow(0 8px 8px rgba(0, 0, 0, 0.42));
  transition: transform 160ms ease;
}
.market-goods-card:hover figure img { transform: translateY(-2px) scale(1.035); }
.market-goods-card .market-goods-copy {
  min-width: 0;
  display: grid;
  align-content: start;
}
.market-goods-card .market-goods-copy > span { color: var(--folio-muted, #a99875); font-size: var(--ming-font-small, 14px); }
.market-goods-card h5 {
  margin: 1px 0 4px;
  color: var(--folio-ink, #f0dfb9);
  font-size: 17px;
}
.market-goods-card p {
  min-height: 38px;
  margin: 0;
  color: var(--folio-muted, #aaa18e);
  font-size: var(--ming-font-body, 16px);
  line-height: 1.55;
}
.market-goods-tags { gap: 4px; margin: 7px 0 0; }
.market-goods-tags em {
  padding: 1px 5px;
  color: var(--folio-muted, #9eb7a8);
  border-color: var(--folio-rule, rgba(103, 151, 128, 0.28));
  background: var(--folio-card, #111b15);
  font-size: var(--ming-font-small, 14px);
}
.market-goods-card > footer {
  grid-column: 1 / -1;
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(112px, auto);
  align-items: end;
  gap: 9px;
  padding-top: 9px;
  border-top: 1px solid rgba(179, 140, 66, 0.18);
}
.market-goods-card > footer > span { display: grid; gap: 1px; }
.market-goods-card > footer small { color: var(--folio-muted, #959386); font-size: var(--ming-font-small, 14px); }
.market-goods-card > footer strong { color: var(--folio-ink, #e4bf66); font-size: 23px; line-height: 1.05; }
.market-goods-card > footer strong em {
  margin-left: 4px;
  color: var(--folio-muted, #a9966e);
  font-size: var(--ming-font-small, 14px);
  font-style: normal;
  font-weight: 500;
}
.market-goods-card > footer button {
  min-height: 48px;
  display: grid;
  align-content: center;
  padding: 6px 11px;
  text-align: left;
}
.market-goods-card > footer button b { font-size: 14px; }

.market-secondhand-ledger {
  min-width: 0;
  display: grid;
  gap: 12px;
  padding: 13px;
  border: 1px solid rgba(107, 151, 128, 0.34);
  background: var(--folio-card, #0b1510);
}
.market-secondhand-ledger > header {
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  gap: 12px;
  padding-bottom: 10px;
  border-bottom: 1px solid rgba(111, 157, 133, 0.24);
}
.market-secondhand-ledger > header > div { min-width: 0; display: grid; gap: 2px; }
.market-secondhand-ledger > header span { color: var(--folio-muted, #8fb7a1); font-size: var(--ming-font-small, 14px); letter-spacing: 0.08em; }
.market-secondhand-ledger > header h4 { margin: 0; color: var(--folio-ink, #e9dbbb); font-size: 18px; }
.market-secondhand-ledger > header small { color: var(--folio-muted, #c3a966); font-size: var(--ming-font-small, 14px); }
.market-secondhand-ready { min-width: 0; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; }
.market-secondhand-card {
  min-width: 0;
  display: grid;
  grid-template-columns: 86px minmax(0, 1fr);
  gap: 10px 12px;
  padding: 11px;
  border: 1px solid rgba(121, 165, 142, 0.36);
  background: var(--folio-card, #101912);
}
.market-secondhand-card > figure {
  position: relative;
  width: 86px;
  height: 104px;
  display: grid;
  place-items: center;
  margin: 0;
  border: 1px solid rgba(157, 140, 93, 0.32);
  background: #171811;
}
.market-secondhand-card > figure img { width: 82px; height: 98px; object-fit: contain; }
.market-secondhand-card > figure mark {
  position: absolute;
  inset: 5px auto auto 5px;
  padding: 2px 6px;
  color: #dbe8dd;
  border: 1px solid rgba(127, 174, 149, 0.48);
  background: #234333;
  font-size: var(--ming-font-small, 14px);
}
.market-secondhand-card > div { min-width: 0; display: grid; align-content: start; gap: 3px; }
.market-secondhand-card > div > span { color: var(--folio-muted, #91b6a3); font-size: var(--ming-font-small, 14px); }
.market-secondhand-card h5 { margin: 0; color: var(--folio-ink, #f0e0bd); font-size: 17px; }
.market-secondhand-card p { margin: 0; color: var(--folio-muted, #b2a994); font-size: var(--ming-font-body, 16px); line-height: 1.55; }
.market-secondhand-card > div > div { display: flex; flex-wrap: wrap; gap: 5px; margin-top: 4px; }
.market-secondhand-card > div em {
  padding: 2px 6px;
  color: var(--folio-muted, #acc7b8);
  border: 1px solid rgba(111, 157, 133, 0.26);
  background: var(--folio-card, #122219);
  font-size: var(--ming-font-small, 14px);
  font-style: normal;
}
.market-secondhand-card > footer {
  grid-column: 1 / -1;
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(150px, auto);
  align-items: end;
  gap: 9px;
  padding-top: 9px;
  border-top: 1px solid rgba(113, 158, 135, 0.22);
}
.market-secondhand-card > footer > span { display: grid; gap: 1px; }
.market-secondhand-card > footer small { color: var(--folio-muted, #a39b87); font-size: var(--ming-font-small, 14px); }
.market-secondhand-card > footer strong { color: var(--folio-ink, #dfbd6e); font-size: 22px; }
.market-secondhand-card > footer strong em { margin-left: 4px; color: var(--folio-muted, #aa9974); font-size: var(--ming-font-small, 14px); font-style: normal; }
.market-secondhand-card > footer button { min-height: 52px; display: grid; align-content: center; text-align: left; }
.market-secondhand-card > footer button b { font-size: 14px; }
.market-secondhand-pending-list { display: grid; gap: 8px; padding: 10px; border: 1px dashed rgba(167, 137, 76, 0.32); background: var(--folio-card, #11130e); }
.market-secondhand-pending-list > b { color: var(--folio-ink, #c8aa69); font-size: var(--ming-font-small, 14px); }
.market-secondhand-pending-list > div { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 7px; }
.market-secondhand-pending {
  min-width: 0;
  display: grid;
  grid-template-columns: 38px 50px minmax(0, 1fr);
  align-items: center;
  gap: 8px;
  padding: 8px;
  border: 1px solid rgba(153, 126, 73, 0.25);
  background: var(--folio-card, #0c100c);
}
.market-secondhand-pending > i { width: 36px; height: 36px; display: grid; place-items: center; color: var(--folio-ink, #d8bb73); border: 1px solid rgba(190, 153, 79, 0.42); border-radius: 50%; font-family: var(--font-brush); font-size: 20px; font-style: normal; }
.market-secondhand-pending > img { width: 48px; height: 48px; object-fit: contain; }
.market-secondhand-pending > div { min-width: 0; display: grid; gap: 2px; }
.market-secondhand-pending span { color: var(--folio-muted, #a89a76); font-size: var(--ming-font-small, 14px); }
.market-secondhand-pending b { color: var(--folio-ink, #ded0ae); font-size: 14px; }
.market-secondhand-pending small { color: var(--folio-muted, #9da99f); font-size: var(--ming-font-small, 14px); line-height: 1.45; }

.market-workshop-materials {
  min-width: 0;
  display: grid;
  gap: 10px;
  padding: 13px;
  border: 1px solid rgba(157, 126, 73, 0.34);
  background: var(--folio-card, linear-gradient(135deg, #15130d, #0b100d 72%));
}
.market-workshop-materials > header {
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  gap: 12px;
  padding-bottom: 9px;
  border-bottom: 1px solid rgba(168, 137, 77, 0.24);
}
.market-workshop-materials > header > div { min-width: 0; display: grid; gap: 2px; }
.market-workshop-materials > header span { color: var(--folio-muted, #c4a767); font-size: var(--ming-font-small, 14px); letter-spacing: 0.08em; }
.market-workshop-materials > header h4 { margin: 0; color: var(--folio-ink, #eadabb); font-size: 18px; }
.market-workshop-materials > header small { color: var(--folio-muted, #a8a18d); font-size: var(--ming-font-small, 14px); }
.market-workshop-materials > div { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; }
.market-workshop-materials article {
  min-width: 0;
  display: grid;
  grid-template-columns: 72px minmax(0, 1fr);
  align-items: center;
  gap: 10px;
  padding: 9px;
  border: 1px solid rgba(151, 126, 78, 0.28);
  background: var(--folio-card, rgba(8, 12, 9, 0.72));
}
.market-workshop-materials article img {
  width: 70px;
  height: 70px;
  object-fit: contain;
  border: 1px solid rgba(151, 126, 78, 0.2);
  background: #11110d;
}
.market-workshop-materials article > div { min-width: 0; display: grid; gap: 3px; }
.market-workshop-materials article span { color: var(--folio-muted, #ac9770); font-size: var(--ming-font-small, 14px); }
.market-workshop-materials article b { color: var(--folio-ink, #e1d1b0); font-size: 15px; }
.market-workshop-materials article small { color: var(--folio-muted, #aeb8ad); font-size: var(--ming-font-small, 14px); line-height: 1.45; }

.market-shop-page[data-shop-id="cao_woodware_shop_1627"] .market-secondhand-ledger {
  border-color: var(--folio-rule, rgba(166, 126, 72, 0.48));
  background: var(--folio-card, #15120c);
  box-shadow: inset 4px 0 #76532b;
}
.market-shop-page[data-shop-id="cao_woodware_shop_1627"] .market-secondhand-ledger > header {
  border-bottom-color: var(--folio-rule, rgba(176, 137, 80, 0.3));
}
.market-shop-page[data-shop-id="cao_woodware_shop_1627"] .market-secondhand-ledger > header span,
.market-shop-page[data-shop-id="cao_woodware_shop_1627"] .market-secondhand-card > div > span {
  color: var(--folio-muted, #c4a36d);
}
.market-shop-page[data-shop-id="cao_woodware_shop_1627"] .market-secondhand-card {
  border-color: var(--folio-rule, rgba(166, 126, 72, 0.36));
  background: var(--folio-card, #17150f);
}
.market-shop-page[data-shop-id="cao_woodware_shop_1627"] .market-secondhand-card > figure mark {
  color: #ead8ae;
  border-color: rgba(190, 149, 86, 0.54);
  background: #4a3218;
}
.market-shop-page[data-shop-id="cao_woodware_shop_1627"] .market-workshop-materials {
  border-color: var(--folio-rule, rgba(178, 137, 76, 0.5));
  background: var(--folio-card, #17120b);
  box-shadow: inset 4px 0 #8a6030;
}

@media (max-width: 1120px) {
  .market-shop-hero { grid-template-columns: minmax(240px, 1fr) minmax(300px, 0.8fr); }
  .market-shop-hero > button { grid-column: 2; }
  .market-goods-group > div { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (max-width: 760px) {
  .market-shop-page { padding: 9px; }
  .market-shop-hero {
    min-height: 0;
    grid-template-columns: 1fr;
    padding: 14px;
  }
  .market-shop-hero::before { background-position: 70% center; opacity: 0.38; }
  .market-shop-hero::after { background: rgba(8, 8, 5, 0.84); }
  .market-shop-hero dl { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .market-shop-hero dl > div { min-height: 58px; padding: 7px; }
  .market-shop-hero > button { grid-column: 1; width: 100%; }
  .market-quote-card.current { grid-template-columns: 3px minmax(0, 1fr) auto; }
  .market-quote-card.current button { grid-column: 2 / 4; }
  .market-quote-card.current p { grid-column: 2 / 4; }
  .market-sell-empty { align-items: flex-start; flex-direction: column; gap: 3px; }
  .market-stock-ledger > header { align-items: flex-start; }
  .market-goods-group > div { grid-template-columns: 1fr; }
  .market-secondhand-ready,
  .market-secondhand-pending-list > div,
  .market-workshop-materials > div { grid-template-columns: 1fr; }
  .market-goods-card { grid-template-columns: 86px minmax(0, 1fr); }
  .market-goods-card figure { width: 86px; height: 104px; }
  .market-goods-card figure img { width: 84px; height: 100px; }
  .market-goods-card .market-goods-copy > span,
  .market-goods-card p,
  .market-goods-tags em,
  .market-goods-card > footer small,
  .market-goods-card > footer strong em,
  .market-sell-empty span,
  .market-sell-empty p { font-size: var(--ming-font-small, 14px); }
  .market-secondhand-ledger > header { align-items: flex-start; flex-direction: column; gap: 3px; }
  .market-workshop-materials > header { align-items: flex-start; flex-direction: column; gap: 3px; }
}

@media (max-width: 430px) {
  .market-shop-hero dl { grid-template-columns: 1fr 1fr; }
  .market-shop-hero dl > div:last-child { grid-column: 1 / -1; }
  .market-goods-card > footer { grid-template-columns: 1fr; }
  .market-goods-card > footer button { width: 100%; }
  .market-secondhand-card { grid-template-columns: 76px minmax(0, 1fr); }
  .market-secondhand-card > figure { width: 76px; height: 94px; }
  .market-secondhand-card > figure img { width: 72px; height: 88px; }
  .market-secondhand-card > footer { grid-template-columns: 1fr; }
  .market-secondhand-card > footer button { width: 100%; }
  .market-secondhand-pending { grid-template-columns: 36px 46px minmax(0, 1fr); }
}

/* 市集卷只保留一张主场景图；店内改作紧凑柜台栏，避免上下重复。 */
.system-focus-panel-market {
  grid-template-rows: minmax(174px, 21svh) minmax(0, 1fr);
}
.system-focus-panel-market > .system-focus-heading {
  min-height: 174px;
  padding-top: 20px;
  padding-bottom: 18px;
}
.system-focus-panel-market .system-focus-art {
  object-position: 58% center;
  filter: saturate(0.86) contrast(1.03) brightness(0.86);
}
.system-focus-panel-market .system-focus-shade {
  background: var(--folio-card, linear-gradient(90deg, rgba(4, 7, 5, 0.97) 0%, rgba(5, 8, 6, 0.88) 34%, rgba(5, 8, 6, 0.45) 64%, rgba(5, 8, 6, 0.08) 100%));
}
.system-focus-panel-market .system-focus-copy h2 { font-size: clamp(37px, 3.8vw, 52px); }
.system-focus-panel-market > .system-focus-body { padding: 13px 16px 28px; }
.system-focus-panel-market .market-shop-hero {
  min-height: 0;
  grid-template-columns: minmax(250px, 1fr) minmax(390px, 0.9fr) 154px;
  padding: 13px 14px;
  border-color: rgba(192, 148, 69, 0.32);
  background: #15130c;
  box-shadow: inset 3px 0 #9e7235;
}
.system-focus-panel-market .market-shop-hero::before,
.system-focus-panel-market .market-shop-hero::after { display: none; }
.system-focus-panel-market .market-shop-hero > div { align-self: center; }
.system-focus-panel-market .market-shop-hero h3 {
  margin-block: 2px;
  font-size: 28px;
}
.system-focus-panel-market .market-shop-hero p { font-size: var(--ming-font-body, 16px); line-height: 1.5; }
.system-focus-panel-market .market-shop-hero dl {
  align-self: center;
}
.system-focus-panel-market .market-shop-hero dl > div { min-height: 58px; }
.system-focus-panel-market .market-shop-hero > button {
  grid-column: 3;
  min-height: 58px;
  align-self: center;
}
.system-focus-panel-market .market-shop-page :where(p, small, span, dt, dd, em) { font-size: var(--ming-font-small, 14px); }
.system-focus-panel-market .system-focus-copy > span,
.system-focus-panel-market .system-focus-copy p,
.system-focus-panel-market .system-focus-authority,
.system-focus-panel-market .system-focus-close b,
.system-focus-panel-market .system-focus-close small { font-size: var(--ming-font-small, 14px); }
.system-focus-panel-market .market-stock-ledger > header {
  border-inline: 0;
  border-top-color: var(--folio-rule, rgba(185, 144, 69, 0.2));
  background: var(--folio-card, #10110c);
}

@media (max-width: 1120px) {
  .system-focus-panel-market .market-shop-hero {
    grid-template-columns: minmax(240px, 1fr) minmax(330px, 0.9fr);
  }
  .system-focus-panel-market .market-shop-hero > button { grid-column: 2; }
}

@media (max-width: 760px) {
  .system-focus-panel-market {
    grid-template-rows: minmax(188px, 27svh) minmax(0, 1fr);
  }
  .system-focus-panel-market > .system-focus-heading { min-height: 188px; }
  .system-focus-panel-market > .system-focus-body { padding: 9px 8px 24px; }
  .system-focus-panel-market .market-shop-hero {
    grid-template-columns: 1fr;
    gap: 10px;
    padding: 13px;
  }
  .system-focus-panel-market .market-shop-hero p { display: none; }
  .system-focus-panel-market .market-shop-hero dl { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .system-focus-panel-market .market-shop-hero dl > div { min-height: 54px; padding: 6px; }
  .system-focus-panel-market .market-shop-hero > button { grid-column: 1; min-height: 50px; }
}

@media (max-width: 430px) {
  .system-focus-panel-market .market-shop-hero dl { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .system-focus-panel-market .market-shop-hero dl > div:last-child { grid-column: auto; }
  .system-focus-panel-market .market-shop-hero dt { font-size: var(--ming-font-small, 14px); }
  .system-focus-panel-market .market-shop-hero dd { font-size: var(--ming-font-small, 14px); }
}
/* V0.58 · 同行办事、小队与大军分层：少点按钮，多看真实进度 */
.assignment-command-summary,
.assignment-command-page {
  --command-jade: #6f9a82;
  --command-gold: #d4b468;
  --command-paper: #eadfc8;
  min-width: 0;
}

.assignment-command-summary {
  display: grid;
  gap: 10px;
  padding: 14px;
  border: 1px solid rgba(122, 158, 138, 0.3);
  border-left: 4px solid var(--command-jade);
  background: var(--folio-card, radial-gradient(circle at 88% 10%, rgba(105, 155, 128, 0.14), transparent 31%),
    linear-gradient(108deg, rgba(48, 75, 59, 0.24), transparent 50%),
    #0b1510);
}
.assignment-command-summary > header { display: flex; align-items: start; justify-content: space-between; gap: 12px; }
.assignment-command-summary > header > div { min-width: 0; }
.assignment-command-summary > header span { color: var(--folio-muted, #8fb29e); font-size: var(--ming-font-small, 14px); font-weight: 760; letter-spacing: 0.11em; }
.assignment-command-summary h3 { margin: 3px 0 0; color: var(--command-paper); font-family: var(--font-brush); font-size: 24px; font-weight: 400; line-height: 1.12; }
.assignment-command-summary > header > b { flex: 0 0 auto; padding: 5px 8px; color: var(--folio-ink, #d8c184); border: 1px solid rgba(189, 153, 78, 0.34); background: var(--folio-card, rgba(67, 50, 25, 0.36)); font-size: var(--ming-font-small, 14px); }
.assignment-command-summary > div { display: grid; gap: 7px; }
.assignment-command-summary > p,
.assignment-command-summary > small { margin: 0; color: var(--folio-muted, #a9aa9e); font-size: var(--ming-font-small, 14px); line-height: 1.55; }

.assignment-command-page { display: grid; gap: 12px; }
.assignment-command-hero {
  min-width: 0;
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(300px, 0.42fr);
  align-items: end;
  gap: 20px;
  min-height: 220px;
  padding: clamp(18px, 3vw, 32px);
  border: 1px solid rgba(130, 161, 143, 0.3);
  border-left: 5px solid #70977f;
  background:
    linear-gradient(90deg, rgba(5, 13, 9, 0.97) 0%, rgba(8, 18, 13, 0.9) 48%, rgba(9, 20, 14, 0.58) 100%),
    url('/assets/art/system-focus/npc-assignment-folio-v2.png') center 48% / cover no-repeat;
  box-shadow: inset 0 1px rgba(229, 218, 184, 0.05), 0 16px 42px rgba(0, 0, 0, 0.2);
}
.assignment-command-hero > div { min-width: 0; max-width: 760px; }
.assignment-command-hero > div > span { color: #92b7a1; font-size: var(--ming-font-small, 14px); font-weight: 780; letter-spacing: 0.14em; }
.assignment-command-hero h3 { margin: 6px 0 0; color: #f0e4cc; font-family: var(--font-brush); font-size: clamp(29px, 3.3vw, 43px); font-weight: 400; line-height: 1.05; }
.assignment-command-hero p { margin: 10px 0 0; color: #beb7a7; font-size: var(--ming-font-body, 16px); line-height: 1.7; }
.assignment-command-hero dl { min-width: 0; display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 7px; margin: 0; }
.assignment-command-hero dl > div { min-width: 0; display: grid; gap: 3px; padding: 11px; border-top: 2px solid rgba(188, 151, 77, 0.52); background: rgba(12, 20, 15, 0.83); }
.assignment-command-hero dt { color: #9da89e; font-size: var(--ming-font-small, 14px); }
.assignment-command-hero dd { margin: 0; color: #e0c37a; font-family: var(--font-brush); font-size: 30px; }

.assignment-command-rule,
.squad-ledger-boundary {
  min-width: 0;
  display: grid;
  grid-template-columns: 48px minmax(0, 1fr);
  align-items: center;
  gap: 12px;
  padding: 12px 14px;
  border: 1px solid rgba(112, 153, 131, 0.28);
  background: var(--folio-card, linear-gradient(90deg, rgba(39, 76, 56, 0.34), rgba(15, 29, 21, 0.55)));
}
.assignment-command-rule > i,
.squad-ledger-boundary > i { width: 44px; height: 44px; display: grid; place-items: center; color: var(--folio-ink, #d9bd75); border: 1px solid rgba(190, 154, 80, 0.43); border-radius: 50%; background: var(--folio-card, rgba(47, 37, 20, 0.56)); font-family: var(--font-brush); font-size: 24px; font-style: normal; }
.assignment-command-rule b,
.squad-ledger-boundary b { color: var(--folio-ink, #d9dece); font-size: 15px; }
.assignment-command-rule p,
.squad-ledger-boundary p { margin: 4px 0 0; color: var(--folio-muted, #a5ada3); font-size: var(--ming-font-body, 16px); line-height: 1.6; }

.assignment-report-inbox {
  min-width: 0;
  display: grid;
  gap: 10px;
  padding: 15px;
  border: 1px solid rgba(202, 165, 87, 0.42);
  border-left: 5px solid #c29a4e;
  background: var(--folio-card, radial-gradient(circle at 92% 0, rgba(178, 128, 45, 0.15), transparent 34%),
    linear-gradient(110deg, rgba(76, 56, 24, 0.28), transparent 52%),
    #11150f);
  box-shadow: inset 0 1px rgba(238, 215, 158, 0.05);
}
.assignment-report-inbox > header { min-width: 0; display: flex; align-items: end; justify-content: space-between; gap: 16px; }
.assignment-report-inbox > header > div { min-width: 0; }
.assignment-report-inbox > header span { color: var(--folio-muted, #d2ae62); font-size: var(--ming-font-small, 14px); font-weight: 780; letter-spacing: 0.13em; }
.assignment-report-inbox > header h4 { margin: 4px 0 0; color: var(--folio-ink, #f0e2c4); font-family: var(--font-brush); font-size: 27px; font-weight: 400; line-height: 1.1; }
.assignment-report-inbox > header > b { flex: 0 0 auto; padding: 6px 9px; color: var(--folio-ink, #e4cf97); border: 1px solid rgba(199, 161, 81, 0.4); background: var(--folio-card, rgba(72, 52, 21, 0.55)); font-size: var(--ming-font-small, 14px); }
.assignment-report-inbox > p { margin: 0; color: var(--folio-muted, #b7b09f); font-size: var(--ming-font-body, 16px); line-height: 1.65; }
.assignment-report-inbox > div { min-width: 0; display: grid; gap: 8px; }
.assignment-report-slip {
  min-width: 0;
  min-height: 116px;
  display: grid;
  grid-template-columns: 46px minmax(0, 1fr) minmax(170px, 0.34fr);
  align-items: stretch;
  gap: 12px;
  padding: 12px;
  color: inherit;
  border: 1px solid rgba(185, 151, 80, 0.3);
  border-left: 3px solid #bf9650;
  background: var(--folio-card, rgba(13, 20, 14, 0.86));
  cursor: pointer;
  text-align: left;
  transition: border-color 150ms ease, background-color 150ms ease, transform 150ms ease;
}
.assignment-report-slip:hover,
.assignment-report-slip:focus-visible { border-color: var(--folio-rule, rgba(224, 190, 114, 0.68)); outline: 0; background: var(--folio-hover, #141d14); transform: translateY(-1px); }
.assignment-report-slip.away { border-left-color: var(--folio-rule, #7b8d7f); background: var(--folio-card, rgba(12, 19, 15, 0.78)); }
.assignment-report-slip > i { width: 42px; height: 42px; display: grid; place-items: center; color: var(--folio-ink, #f0d58d); border: 1px solid rgba(206, 166, 81, 0.52); border-radius: 3px; background: var(--folio-card, linear-gradient(145deg, rgba(116, 77, 28, 0.62), rgba(46, 37, 22, 0.72))); font-family: var(--font-brush); font-size: 23px; font-style: normal; }
.assignment-report-slip > span { min-width: 0; display: grid; align-content: start; gap: 4px; }
.assignment-report-slip > span > small { color: var(--folio-muted, #d0ad67); font-size: var(--ming-font-small, 14px); font-weight: 700; }
.assignment-report-slip > span > b { color: var(--folio-muted, #eadcc0); font-size: 17px; line-height: 1.35; }
.assignment-report-slip > span > p { margin: 0; color: var(--folio-muted, #b7b0a0); font-size: var(--ming-font-body, 16px); line-height: 1.55; }
.assignment-report-slip > strong { min-width: 0; display: grid; align-content: center; gap: 5px; padding-left: 12px; border-left: 1px solid rgba(192, 164, 102, 0.18); }
.assignment-report-slip > strong > b { color: var(--folio-ink, #e4c776); font-size: 15px; }
.assignment-report-slip > strong > small { color: var(--folio-muted, #aaa99d); font-size: var(--ming-font-small, 14px); font-weight: 500; line-height: 1.5; }
.assignment-report-slip > strong > em { color: var(--folio-muted, #8fac99); font-size: var(--ming-font-small, 14px); font-style: normal; }

.assignment-command-grid,
.assignment-command-recent > div { min-width: 0; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 9px; }
.assignment-command-card {
  min-width: 0;
  min-height: 116px;
  display: grid;
  grid-template-columns: 46px minmax(0, 1fr) minmax(120px, 0.3fr);
  align-items: stretch;
  gap: 11px;
  padding: 12px;
  color: inherit;
  border: 1px solid rgba(124, 157, 138, 0.28);
  border-left: 4px solid #728f7d;
  background: var(--folio-card, linear-gradient(105deg, rgba(37, 62, 47, 0.34), transparent 48%), #0b1410);
  cursor: pointer;
  text-align: left;
  transition: border-color 150ms ease, background-color 150ms ease, transform 150ms ease;
}
.assignment-command-card:hover,
.assignment-command-card:focus-visible { border-color: var(--folio-rule, rgba(204, 171, 100, 0.62)); outline: 0; background-color: var(--folio-hover, #101c15); transform: translateY(-1px); }
.assignment-command-card.blocked { border-left-color: var(--folio-rule, #a25d50); background: var(--folio-danger-surface, linear-gradient(105deg, rgba(87, 39, 32, 0.3), transparent 48%), #17110f); }
.assignment-command-card.waiting { border-left-color: var(--folio-rule, #c09a52); }
.assignment-command-card.completed { opacity: 0.78; filter: saturate(0.78); }
.assignment-command-card > i { align-self: start; width: 42px; height: 42px; display: grid; place-items: center; color: var(--folio-ink, #dfc47f); border: 1px solid rgba(187, 151, 78, 0.45); border-radius: 50%; background: var(--folio-card, rgba(52, 42, 24, 0.58)); font-family: var(--font-brush); font-size: 22px; font-style: normal; }
.assignment-command-copy { min-width: 0; display: grid; align-content: start; gap: 3px; }
.assignment-command-copy > small { color: var(--folio-muted, #91aa9b); font-size: var(--ming-font-small, 14px); }
.assignment-command-copy > b { overflow: hidden; color: var(--folio-ink, #e4d7bd); font-size: 17px; text-overflow: ellipsis; white-space: nowrap; }
.assignment-command-copy > em { overflow: hidden; color: var(--folio-muted, #aca492); font-size: var(--ming-font-small, 14px); font-style: normal; text-overflow: ellipsis; white-space: nowrap; }
.assignment-command-copy > u { min-width: 0; display: flex; align-items: center; gap: 7px; margin-top: 5px; color: var(--folio-ink, #879d91); font-size: var(--ming-font-small, 14px); text-decoration: none; }
.assignment-command-copy > u span { min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.assignment-command-copy > u i { flex: 0 0 auto; color: var(--folio-ink, #b69b62); font-style: normal; }
.assignment-command-card > strong { min-width: 0; display: grid; align-content: center; gap: 4px; padding-left: 10px; border-left: 1px solid rgba(151, 165, 147, 0.16); text-align: right; }
.assignment-command-card > strong > b { color: var(--folio-ink, #d8bd78); font-size: 14px; }
.assignment-command-card > strong > small { color: var(--folio-muted, #989f95); font-size: var(--ming-font-small, 14px); font-weight: 500; line-height: 1.45; }
.assignment-command-empty { grid-column: 1 / -1; min-height: 150px; display: flex; align-items: center; justify-content: center; gap: 14px; padding: 22px; border: 1px dashed rgba(135, 158, 143, 0.3); background: var(--folio-card, rgba(9, 18, 13, 0.6)); }
.assignment-command-empty > i { color: var(--folio-ink, #d1b26a); font-family: var(--font-brush); font-size: 42px; font-style: normal; }
.assignment-command-empty b { color: var(--folio-ink, #dfd4bd); font-size: 17px; }
.assignment-command-empty p { max-width: 640px; margin: 5px 0 0; color: var(--folio-muted, #a5a092); font-size: var(--ming-font-body, 16px); line-height: 1.6; }
.assignment-command-recent { display: grid; gap: 8px; padding-top: 4px; }
.assignment-command-recent > header { display: flex; justify-content: space-between; gap: 12px; padding: 0 2px; }
.assignment-command-recent > header span { color: var(--folio-muted, #cbb06e); font-size: 14px; font-weight: 760; }
.assignment-command-recent > header small { color: var(--folio-muted, #90998f); font-size: var(--ming-font-small, 14px); }

.population-squad-compact { grid-template-columns: 52px minmax(0, 1fr); align-items: start; }
.population-squad-compact > i { width: 48px; height: 48px; display: grid; place-items: center; color: var(--folio-ink, #ddc078); border: 1px solid rgba(190, 153, 78, 0.42); border-radius: 50%; font-family: var(--font-brush); font-size: 27px; font-style: normal; }
.population-squad-ledger { display: grid; gap: 12px; }
.population-squad-ledger .population-organization-units { margin-top: 0; }

@media (max-width: 960px) {
  .assignment-command-hero { grid-template-columns: 1fr; min-height: 0; }
  .assignment-command-hero dl { max-width: 660px; }
}

@media (max-width: 720px) {
  .assignment-command-summary { padding: 12px; }
  .assignment-command-summary > header { align-items: stretch; flex-direction: column; }
  .assignment-command-summary > header > b { align-self: flex-start; }
  .assignment-command-hero { gap: 14px; padding: 18px 15px; background-position: 60% center; }
  .assignment-command-hero h3 { font-size: 30px; }
  .assignment-command-hero p { font-size: var(--ming-font-body, 16px); }
  .assignment-command-hero dl { gap: 5px; }
  .assignment-command-hero dl > div { padding: 9px; }
  .assignment-command-hero dd { font-size: 27px; }
  .assignment-command-rule,
  .squad-ledger-boundary { grid-template-columns: 42px minmax(0, 1fr); padding: 11px; }
  .assignment-command-rule > i,
  .squad-ledger-boundary > i { width: 38px; height: 38px; font-size: 21px; }
  .assignment-command-grid,
  .assignment-command-recent > div { grid-template-columns: 1fr; }
  .assignment-command-card { min-height: 0; grid-template-columns: 42px minmax(0, 1fr); gap: 9px; padding: 11px; }
  .assignment-command-card > i { width: 38px; height: 38px; font-size: 20px; }
  .assignment-command-card > strong { grid-column: 2; grid-row: 2; display: flex; align-items: baseline; justify-content: space-between; gap: 8px; min-height: 44px; padding: 8px 0 0; border-top: 1px solid rgba(151, 165, 147, 0.16); border-left: 0; text-align: left; }
  .assignment-command-card > strong > small { text-align: right; }
  .assignment-command-copy > b,
  .assignment-command-copy > em { white-space: normal; }
  .assignment-report-inbox { padding: 12px; }
  .assignment-report-inbox > header { align-items: flex-start; flex-direction: column; gap: 8px; }
  .assignment-report-inbox > header h4 { font-size: 24px; }
  .assignment-report-inbox > header > b { align-self: flex-start; }
  .assignment-report-slip { grid-template-columns: 42px minmax(0, 1fr); gap: 9px; padding: 11px; }
  .assignment-report-slip > i { width: 38px; height: 38px; font-size: 21px; }
  .assignment-report-slip > strong { grid-column: 2; grid-row: 2; min-height: 44px; padding: 8px 0 0; border-top: 1px solid rgba(192, 164, 102, 0.18); border-left: 0; }
  .assignment-command-recent > header { align-items: flex-start; flex-direction: column; gap: 3px; }
}

@media (max-width: 430px) {
  .assignment-command-hero dl { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .assignment-report-slip > span > b { font-size: 16px; }
}

/* 地点交接：离开旧场景后，展示当前所在地而不是旧四选项 */
.location-context-card {
  background:
    linear-gradient(90deg, rgba(6, 10, 8, 0.98) 0%, rgba(7, 13, 10, 0.92) 50%, rgba(6, 10, 8, 0.42) 100%),
    linear-gradient(180deg, transparent 50%, rgba(4, 7, 6, 0.94) 100%),
    var(--event-image, url('/assets/art/events/event-common-road-v2.png')) var(--event-focal, center center) / cover no-repeat;
  border-left-color: rgba(100, 164, 132, 0.72);
}

.location-context-card.has-showcase-image {
  background: #07100c;
}

.location-scene-showcase {
  height: clamp(190px, 24vw, 270px);
  margin: 0 0 16px;
  overflow: hidden;
  border: 1px solid rgba(128, 166, 142, 0.34);
  background: #050b08;
}

.location-scene-showcase img {
  width: 100%;
  height: 100%;
  display: block;
  object-fit: cover;
  filter: brightness(0.78) saturate(0.82);
}

.location-scene-seal {
  min-width: 190px;
  display: grid;
  grid-template-columns: 48px minmax(0, 1fr);
  align-items: center;
  gap: 10px;
  margin-top: 10px;
  padding: 9px 11px;
  border: 1px solid rgba(114, 164, 138, 0.36);
  background: rgba(7, 18, 13, 0.82);
}

.location-scene-seal > i {
  width: 44px;
  height: 44px;
  display: grid;
  place-items: center;
  color: #d9bd75;
  border: 1px solid rgba(189, 153, 79, 0.46);
  border-radius: 50%;
  font-family: var(--font-brush);
  font-size: 25px;
  font-style: normal;
}

.location-scene-seal > span { min-width: 0; display: grid; gap: 2px; }
.location-scene-seal small { color: #91aa9b; font-size: var(--ming-font-small, 14px); line-height: 1.4; }
.location-scene-seal strong { overflow-wrap: anywhere; color: #e7d7b4; font-size: 16px; line-height: 1.35; }

.location-scene-notice {
  display: grid;
  grid-template-columns: minmax(160px, auto) minmax(0, 1fr);
  align-items: center;
  gap: 12px;
  margin: 12px 0;
  padding: 10px 12px;
  border-left: 3px solid #72a58b;
  background: rgba(16, 39, 28, 0.72);
}

.location-scene-notice b { color: #d8c17f; font-size: 14px; }
.location-scene-notice span { color: #b8c5ba; font-size: var(--ming-font-small, 14px); line-height: 1.55; }

.location-route-shortcuts {
  min-width: 0;
  display: flex;
  flex-wrap: wrap;
  align-items: stretch;
  gap: 7px;
  margin-top: 9px;
}

.location-route-shortcuts > span {
  display: grid;
  flex: 0 0 auto;
  place-items: center;
  padding: 0 10px;
  color: #cfb66f;
  border: 1px solid rgba(190, 153, 78, 0.38);
  background: #182219;
  font-size: var(--ming-font-small, 14px);
  font-weight: 760;
  letter-spacing: 0.08em;
}

.location-route-shortcuts > button {
  min-width: 0;
  min-height: 48px;
  display: grid;
  flex: 1 1 210px;
  align-content: center;
  gap: 2px;
  padding: 7px 10px;
  color: #e5d8b8;
  border: 1px solid rgba(104, 156, 130, 0.5);
  border-radius: 0;
  background: #173127;
  font: inherit;
  text-align: left;
  cursor: pointer;
}

.location-route-shortcuts > button b { overflow-wrap: anywhere; font-size: 14px; }
.location-route-shortcuts > button small { overflow: visible; color: #a9b9ad; font-size: var(--ming-font-small, 14px); line-height: 1.35; text-overflow: clip; white-space: normal; }
.location-route-shortcuts > button:hover,
.location-route-shortcuts > button:focus-visible { border-color: #a9cfba; outline: 1px solid rgba(169, 207, 186, 0.28); background: #204536; }

.location-next-actions {
  min-width: 0;
  display: grid;
  gap: 9px;
  margin-top: 12px;
  padding: 10px;
  border: 1px solid rgba(196, 158, 80, 0.4);
  border-top: 2px solid rgba(216, 182, 108, 0.72);
  background: rgba(7, 14, 10, 0.9);
}

.location-next-actions > header {
  min-height: 30px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  padding: 0 3px 7px;
  border-bottom: 1px solid rgba(187, 151, 78, 0.24);
}

.location-next-actions > header span {
  color: #e6d3a4;
  font-size: 15px;
  font-weight: 780;
  letter-spacing: 0.08em;
}

.location-next-actions > header b {
  color: #9fc4b0;
  font-size: var(--ming-font-small, 14px);
  font-weight: 720;
}

.location-next-actions .choice-list,
.campaign-shell .location-next-actions .choice-list.choice-count-4 {
  width: 100%;
  max-width: none;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 8px;
  margin: 0;
}

.location-next-actions .choice-list > button,
.campaign-shell .location-next-actions .choice-list.choice-count-4 > button {
  min-height: 76px;
  height: auto;
  padding: 9px 10px;
  overflow: visible;
}

.location-special-mechanism {
  min-width: 0;
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(220px, 0.34fr);
  align-items: stretch;
  gap: 10px;
  margin: 12px 0;
  padding: 9px;
  border: 1px solid rgba(195, 157, 80, 0.48);
  border-left: 4px solid #c09a54;
  background:
    radial-gradient(circle at 76% 20%, rgba(184, 139, 64, 0.13), transparent 35%),
    linear-gradient(105deg, rgba(43, 67, 50, 0.48), rgba(14, 23, 17, 0.86));
  box-shadow: inset 0 1px rgba(238, 217, 169, 0.05);
}

.location-special-mechanism-copy {
  min-width: 0;
  display: grid;
  grid-template-columns: 48px minmax(0, 1fr);
  align-items: center;
  gap: 11px;
  padding: 4px 7px;
}

.location-special-mechanism-copy > i {
  width: 44px;
  height: 44px;
  display: grid;
  place-items: center;
  color: #e0c47d;
  border: 1px solid rgba(204, 169, 94, 0.52);
  border-radius: 50%;
  background: rgba(55, 43, 24, 0.62);
  font-family: var(--font-brush);
  font-size: 25px;
  font-style: normal;
}

.location-special-mechanism-copy > span { min-width: 0; display: grid; gap: 3px; }
.location-special-mechanism-copy small { color: #d3b86f; font-size: var(--ming-font-small, 14px); font-weight: 760; letter-spacing: 0.08em; }
.location-special-mechanism-copy b { color: #d8ddcf; font-size: 14px; line-height: 1.5; }
.location-special-mechanism-copy em { color: #8fa195; font-size: var(--ming-font-small, 14px); font-style: normal; }

.location-special-mechanism > button {
  min-width: 0;
  min-height: 58px;
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  align-items: center;
  gap: 10px;
  padding: 10px 13px;
  color: #e9dfc7;
  border: 1px solid rgba(198, 162, 84, 0.55);
  background: #1b3024;
  text-align: left;
  cursor: pointer;
}

.location-special-mechanism > button:hover,
.location-special-mechanism > button:focus-visible { border-color: #e2bd69; outline: 1px solid rgba(226, 189, 105, 0.45); background: #234533; }
.location-special-mechanism > button:disabled { color: #948b78; border-color: rgba(139, 113, 71, 0.36); background: #171b17; cursor: not-allowed; }
.location-special-mechanism > button span { min-width: 0; display: grid; gap: 3px; }
.location-special-mechanism > button small { color: #a9b5a8; font-size: var(--ming-font-small, 14px); }
.location-special-mechanism > button b { color: #f0d694; font-family: var(--font-brush); font-size: 22px; font-weight: 400; }
.location-special-mechanism > button > i { color: #dabb70; font-size: 28px; font-style: normal; }

.venue-interior-ledger {
  display: grid;
  gap: 12px;
  color: var(--folio-ink, #d8dbcf);
}
.system-focus-panel-venue > .system-focus-body { background: var(--folio-card, #15211b); }
.system-focus-panel-venue .system-focus-copy > span { font-size: 14px; }
.system-focus-panel-venue .system-focus-copy p { color: var(--folio-muted, #d2c9b5); font-size: var(--ming-font-body, 16px); }
.system-focus-panel-venue .system-focus-close b { font-size: 14px; }
.system-focus-panel-venue .system-focus-close small { font-size: var(--ming-font-small, 14px); }
.venue-interior-ledger p { margin: 0; color: var(--folio-muted, #b8b5a8); font-size: var(--ming-font-body, 16px); line-height: 1.65; }
.venue-interior-ledger > dl { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1px; margin: 0; background: var(--folio-card, rgba(205, 173, 101, 0.34)); }
.venue-interior-ledger > dl > div { min-width: 0; padding: 9px 11px; background: var(--folio-card, #203229); }
.venue-interior-ledger dt { color: var(--folio-muted, #b5c9bc); font-size: var(--ming-font-small, 14px); }
.venue-interior-ledger dd { margin: 2px 0 0; overflow-wrap: anywhere; color: var(--folio-ink, #f0ddb0); font-size: 14px; line-height: 1.4; }
.venue-interior-ledger ol { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; margin: 0; padding: 0; list-style: none; }
.venue-interior-ledger li { min-width: 0; min-height: 58px; display: grid; grid-template-columns: 38px minmax(0, 1fr); align-items: center; gap: 9px; padding: 9px 10px; border: 1px solid rgba(100, 143, 120, 0.28); background: var(--folio-card, #101c15); }
.venue-interior-ledger li.is-entry { border-color: var(--folio-rule, rgba(194, 157, 78, 0.48)); background: var(--folio-card, #192218); }
.venue-interior-ledger li > i { color: var(--folio-ink, #c5a65f); font-family: var(--font-brush); font-size: 21px; font-style: normal; }
.venue-interior-ledger li > span { min-width: 0; display: grid; gap: 2px; }
.venue-interior-ledger li b { color: var(--folio-ink, #d5d8ca); font-size: 14px; }
.venue-interior-ledger li small { color: var(--folio-muted, #8fa195); font-size: var(--ming-font-small, 14px); }
.venue-interior-ledger > .venue-service-panel {
  display: grid;
  gap: 11px;
  padding: 15px;
  border-color: var(--folio-rule, rgba(112, 169, 139, 0.42));
  background: var(--folio-card, #172b21);
  box-shadow: inset 3px 0 #557f68;
}
.venue-service-panel > header {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 12px;
  margin: 0;
  padding-bottom: 9px;
  border-bottom: 1px solid rgba(187, 151, 78, 0.22);
}
.venue-service-panel > header span { color: var(--folio-muted, #e0c680); font-size: 16px; font-weight: 780; }
.venue-service-panel > header small { color: var(--folio-muted, #99ad9f); font-size: var(--ming-font-small, 14px); }
.venue-service-facts { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 7px; }
.venue-service-facts > span { min-width: 0; display: grid; gap: 2px; padding: 8px 9px; border: 1px solid rgba(203, 168, 91, 0.34); background: var(--folio-card, #12241b); }
.venue-service-facts small { color: var(--folio-muted, #b4c5b9); font-size: var(--ming-font-small, 14px); }
.venue-service-facts b { color: var(--folio-ink, #f2dfad); font-size: 18px; }
.overnight-comparison-note { padding: 10px 11px; border-left: 3px solid #a98d53; background: #121f18; color: #c9c7b9; }
.overnight-option-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; }
.overnight-option-card {
  min-width: 0;
  display: grid;
  align-content: start;
  gap: 10px;
  padding: 12px;
  border: 1px solid rgba(188, 155, 84, 0.38);
  background: #14241b;
}
.overnight-option-card.outdoor { border-color: rgba(112, 156, 129, 0.46); background: #112219; }
.overnight-option-card.mount-boarding { border-color: rgba(170, 136, 74, 0.58); background: #1b2619; box-shadow: inset 3px 0 #6f7542; }
.overnight-option-card.mount-boarding > header > i { border-color: rgba(190, 158, 83, 0.62); background: #242d19; color: #e0c277; }
.overnight-option-card.unavailable { opacity: 0.72; }
.overnight-option-card > header { display: flex; align-items: center; justify-content: space-between; gap: 10px; }
.overnight-option-card > header > div { min-width: 0; display: grid; gap: 2px; }
.overnight-option-card > header span { color: #aebdaf; font-size: var(--ming-font-small, 14px); }
.overnight-option-card > header h4 { margin: 0; color: #efdba8; font-size: 17px; line-height: 1.35; }
.overnight-option-card > header > i { width: 36px; height: 36px; display: grid; flex: 0 0 auto; place-items: center; border: 1px solid rgba(194, 158, 80, 0.46); color: #d8b968; font-family: var(--font-brush); font-size: 20px; font-style: normal; }
.overnight-option-card > p { min-height: 46px; color: #bcc3b9; font-size: var(--ming-font-body, 16px); line-height: 1.65; }
.overnight-option-card > dl { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 6px; margin: 0; }
.overnight-option-card > dl > div { min-width: 0; display: grid; gap: 2px; padding: 7px 8px; border: 1px solid rgba(97, 137, 113, 0.28); background: #0e1c15; }
.overnight-option-card dt { color: #9eb1a4; font-size: var(--ming-font-small, 14px); }
.overnight-option-card dd { margin: 0; overflow-wrap: anywhere; color: #e0d4b3; font-size: 14px; line-height: 1.4; }
.overnight-last-record { color: #9eb1a4; font-size: var(--ming-font-small, 14px); line-height: 1.45; }
.outdoor-rest-submit { background: #253621; border-color: rgba(185, 151, 77, 0.52); }
.outdoor-rest-submit:not(:disabled):hover,
.outdoor-rest-submit:not(:disabled):focus-visible { background: #30452a; border-color: #c4ad74; }
.mount-boarding-submit { background: #384329; border-color: rgba(206, 170, 92, 0.64); }
.mount-boarding-submit:not(:disabled):hover,
.mount-boarding-submit:not(:disabled):focus-visible { background: #485432; border-color: #dbc482; }
.venue-service-submit {
  width: 100%;
  min-height: 52px;
  display: grid;
  grid-template-columns: auto minmax(0, 1fr);
  align-items: center;
  gap: 12px;
  padding: 9px 12px;
  border: 1px solid rgba(110, 171, 140, 0.58);
  border-radius: 0;
  background: var(--folio-card, #173326);
  color: var(--folio-ink, #efddb0);
  font: inherit;
  text-align: left;
  cursor: pointer;
}
.venue-service-submit b { font-size: 15px; }
.venue-service-submit small { color: var(--folio-muted, #a9baad); font-size: var(--ming-font-small, 14px); text-align: right; }
.venue-service-submit:not(:disabled):hover,
.venue-service-submit:not(:disabled):focus-visible { border-color: var(--folio-rule, #a5ccb5); outline: 1px solid rgba(165, 204, 181, 0.32); background: var(--folio-hover, #1d3b2d); }
.venue-service-submit:disabled { border-color: var(--folio-rule, rgba(112, 128, 116, 0.3)); background: var(--folio-card, #101b15); color: var(--folio-ink, #78867d); cursor: not-allowed; }
.venue-service-submit:disabled small { color: var(--folio-muted, #78867d); }
.venue-service-receipt { display: grid; grid-template-columns: 38px minmax(0, 1fr); align-items: center; gap: 9px; padding: 9px 10px; border-left: 3px solid #b6934c; background: var(--folio-card, #17180f); }
.venue-service-receipt > i { width: 34px; height: 34px; display: grid; place-items: center; color: var(--folio-ink, #e0c27b); border: 1px solid rgba(194, 157, 78, 0.42); font-family: var(--font-brush); font-size: 20px; font-style: normal; }
.venue-service-receipt > span { min-width: 0; display: grid; gap: 2px; }
.venue-service-receipt b { color: var(--folio-ink, #e2d3b1); font-size: 14px; }
.venue-service-receipt small { color: var(--folio-muted, #aebdb2); font-size: var(--ming-font-small, 14px); line-height: 1.45; }
.venue-water-service-panel {
  display: grid;
  gap: 10px;
  padding: 14px;
  border: 1px solid rgba(91, 151, 129, 0.48);
  background: var(--folio-card, #14271e);
  box-shadow: inset 3px 0 #416f5d;
}
.venue-water-service-panel > header { display: flex; align-items: end; justify-content: space-between; gap: 12px; padding-bottom: 9px; border-bottom: 1px solid rgba(185, 151, 78, 0.24); }
.venue-water-service-panel > header > div { min-width: 0; display: grid; gap: 2px; }
.venue-water-service-panel > header span { color: var(--folio-muted, #a9c8b8); font-size: var(--ming-font-small, 14px); }
.venue-water-service-panel > header h3 { margin: 0; color: var(--folio-ink, #ecd9a8); font-size: 17px; }
.venue-water-service-panel > header > small { color: var(--folio-muted, #9db3a7); font-size: var(--ming-font-small, 14px); }
.venue-water-source-card { display: grid; gap: 10px; padding: 11px; border: 1px solid rgba(114, 164, 142, 0.34); background: var(--folio-card, #0d1d16); }
.venue-water-source-card > header { display: flex; align-items: center; justify-content: space-between; gap: 10px; }
.venue-water-source-card > header > div { min-width: 0; display: grid; gap: 2px; }
.venue-water-source-card > header span { color: var(--folio-muted, #91b4a3); font-size: var(--ming-font-small, 14px); }
.venue-water-source-card > header h4 { margin: 0; color: var(--folio-ink, #e6d6ae); font-size: 16px; }
.venue-water-source-card > header > i { width: 34px; height: 34px; display: grid; place-items: center; border: 1px solid rgba(187, 151, 77, 0.5); color: var(--folio-ink, #d9bb70); font-family: var(--font-brush); font-size: 20px; font-style: normal; }
.venue-water-facts { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 7px; }
.venue-water-facts > span { min-width: 0; display: grid; gap: 2px; padding: 8px; border: 1px solid rgba(79, 132, 110, 0.35); background: var(--folio-card, #13251d); }
.venue-water-facts small { color: var(--folio-muted, #9db8aa); font-size: var(--ming-font-small, 14px); }
.venue-water-facts b { color: var(--folio-ink, #e6d7b2); font-size: 15px; overflow-wrap: anywhere; }
.venue-water-actions { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 7px; }
.venue-water-action { min-height: 52px; display: grid; gap: 3px; align-content: center; padding: 8px 10px; border: 1px solid rgba(96, 161, 132, 0.58); border-radius: 0; background: var(--folio-card, #1a3a2c); color: var(--folio-ink, #efdfb7); text-align: left; cursor: pointer; }
.venue-water-action.inspect { background: var(--folio-card, #26351e); border-color: var(--folio-rule, rgba(184, 148, 73, 0.56)); }
.venue-water-action b { font-size: 14px; }
.venue-water-action small { color: var(--folio-muted, #b2c7bb); font-size: var(--ming-font-small, 14px); line-height: 1.35; }
.venue-water-action:not(:disabled):not(.is-note):hover,
.venue-water-action:not(:disabled):not(.is-note):focus-visible { border-color: var(--folio-rule, #b6d2bf); outline: 1px solid rgba(182, 210, 191, 0.35); background: var(--folio-hover, #244936); }
.venue-water-action:disabled { border-color: var(--folio-rule, rgba(91, 111, 99, 0.34)); background: var(--folio-card, #101a15); color: var(--folio-ink, #7f9187); cursor: not-allowed; }
.venue-water-action:disabled small { color: var(--folio-muted, #788b81); }
.venue-water-action.is-note { border-color: var(--folio-rule, rgba(91, 111, 99, 0.34)); background: var(--folio-card, #101a15); color: var(--folio-ink, #8fa197); cursor: default; }
.venue-water-action.is-note small { color: var(--folio-muted, #82958a); }
.venue-water-observation { display: grid; grid-template-columns: 34px minmax(0, 1fr); align-items: center; gap: 8px; padding: 8px 9px; border-left: 3px solid #a88948; background: var(--folio-card, #181d13); }
.venue-water-observation > i { color: var(--folio-ink, #d5b766); font-family: var(--font-brush); font-size: 20px; font-style: normal; }
.venue-water-observation > span { min-width: 0; display: grid; gap: 2px; }
.venue-water-observation b { color: var(--folio-ink, #decda4); font-size: 14px; }
.venue-water-observation small { color: var(--folio-muted, #a9b9ae); font-size: var(--ming-font-small, 14px); line-height: 1.4; }
.venue-water-service-panel > footer { color: var(--folio-ink, #a8b9af); font-size: var(--ming-font-small, 14px); line-height: 1.55; }
.yamen-service-panel > label { min-width: 0; display: grid; grid-template-columns: auto 1fr auto; align-items: baseline; gap: 8px; }
.yamen-service-panel > label > span { color: #dfca91; font-size: 14px; font-weight: 780; }
.yamen-service-panel > label > small { grid-column: 3; color: #aebfb3; font-size: var(--ming-font-small, 14px); }
.yamen-service-panel input,
.yamen-service-panel textarea {
  grid-column: 1 / -1;
  min-width: 0;
  width: 100%;
  padding: 10px 11px;
  border: 1px solid rgba(175, 145, 82, 0.38);
  border-radius: 0;
  outline: 0;
  background: #102219;
  color: #e9ddc2;
  font: 500 16px/1.55 var(--font-body);
  resize: vertical;
}
.yamen-service-panel input { min-height: 46px; }
.yamen-service-panel textarea { min-height: 88px; }
.yamen-service-panel input:focus-visible,
.yamen-service-panel textarea:focus-visible { border-color: #c3a662; box-shadow: inset 0 0 0 1px rgba(195, 166, 98, 0.45); }
.yamen-service-panel input::placeholder,
.yamen-service-panel textarea::placeholder { color: #91a59a; }
.yamen-receipt-ledger { display: grid; gap: 8px; padding: 10px; border: 1px solid rgba(167, 137, 75, 0.26); background: #08110d; }
.yamen-receipt-ledger > header { display: flex; justify-content: space-between; gap: 10px; }
.yamen-receipt-ledger > header b { color: #dfca91; font-size: 14px; }
.yamen-receipt-ledger > header small { color: #8fa195; font-size: var(--ming-font-small, 14px); }
.venue-interior-ledger .yamen-receipt-ledger > ol { grid-template-columns: 1fr; }
.venue-interior-ledger .yamen-receipt-ledger li { min-height: 52px; }
.venue-node-disclosure,
.venue-boundary-disclosure { border: 1px solid rgba(203, 168, 91, 0.34); background: var(--folio-card, #18271f); }
.venue-node-disclosure > summary,
.venue-boundary-disclosure > summary {
  min-height: 46px;
  display: grid;
  grid-template-columns: auto minmax(0, 1fr) auto;
  align-items: center;
  gap: 10px;
  padding: 9px 12px;
  color: var(--folio-ink, #d6c28e);
  cursor: pointer;
  list-style: none;
}
.venue-node-disclosure > summary::-webkit-details-marker,
.venue-boundary-disclosure > summary::-webkit-details-marker { display: none; }
.venue-node-disclosure > summary span,
.venue-boundary-disclosure > summary span { color: var(--folio-muted, #a9c2b4); font-size: var(--ming-font-small, 14px); }
.venue-node-disclosure > summary b { overflow: hidden; color: var(--folio-ink, #e2d2ad); font-size: 14px; text-overflow: ellipsis; white-space: nowrap; }
.venue-node-disclosure > summary small,
.venue-boundary-disclosure > summary small { color: var(--folio-muted, #adbbb1); font-size: var(--ming-font-small, 14px); }
.venue-node-disclosure[open] > summary,
.venue-boundary-disclosure[open] > summary { border-bottom: 1px solid rgba(186, 151, 80, 0.22); }
.venue-node-disclosure > ol { margin: 10px; }
.venue-boundary-disclosure > p { padding: 10px 12px; }
.venue-boundary-disclosure > summary { grid-template-columns: minmax(0, 1fr) auto; }
.venue-operator-dialogue {
  min-width: 0;
  display: grid;
  grid-template-columns: 52px minmax(0, 1fr) minmax(190px, 260px);
  align-items: center;
  gap: 12px;
  padding: 10px 12px;
  border: 1px solid rgba(111, 175, 143, 0.52);
  background: var(--folio-card, #1a3025);
}
.venue-operator-portrait { width: 52px; height: 52px; margin: 0; overflow: hidden; border: 1px solid rgba(205, 171, 97, 0.55); background: #26372e; }
.venue-operator-portrait img { width: 100%; height: 100%; object-fit: cover; object-position: center 18%; }
.venue-operator-portrait.fallback { display: grid; place-items: center; color: #ead29b; font-family: var(--font-brush); font-size: 24px; }
.venue-operator-dialogue > span { min-width: 0; display: grid; gap: 2px; }
.venue-operator-dialogue > span small { color: var(--folio-muted, #abc5b6); font-size: var(--ming-font-small, 14px); }
.venue-operator-dialogue > span b { color: var(--folio-muted, #f0dfb8); font-size: 16px; }
.venue-operator-dialogue > button {
  min-height: 52px;
  display: grid;
  gap: 2px;
  align-content: center;
  padding: 8px 11px;
  color: var(--folio-ink, #f1dfb2);
  border: 1px solid rgba(129, 190, 158, 0.62);
  border-radius: 0;
  background: var(--folio-card, #244a38);
  text-align: left;
  cursor: pointer;
}
.venue-operator-dialogue > button b { font-size: 15px; }
.venue-operator-dialogue > button small { color: var(--folio-muted, #c2d4c9); font-size: var(--ming-font-small, 14px); }
.venue-operator-dialogue > button:not(:disabled):hover,
.venue-operator-dialogue > button:not(:disabled):focus-visible { border-color: var(--folio-rule, #c0dcbf); outline: 1px solid rgba(192, 220, 191, 0.35); background: var(--folio-hover, #2d5743); }
.venue-operator-dialogue > button:disabled { color: var(--folio-ink, #87988e); background: var(--folio-card, #1c2b24); cursor: not-allowed; }
.campaign-shell .location-context-card .event-heading > div > span,
.campaign-shell .location-context-card .event-origin > b,
.campaign-shell .location-context-card .location-scene-seal span,
.campaign-shell .location-context-card .location-scene-seal small,
.campaign-shell .location-context-card .event-state-read > span,
.campaign-shell .location-context-card .event-state-read > b,
.campaign-shell .location-context-card .choice-list.choice-count-4 .choice-copy > small,
.campaign-shell .location-context-card .choice-list.choice-count-4 .choice-cost,
.campaign-shell .location-context-card .choice-list.choice-count-4 .choice-cost > span,
.campaign-shell .location-context-card .choice-list.choice-count-4 .choice-cost > em { font-size: var(--ming-font-small, 14px); }
.location-context-card .choice-list > button { min-height: 88px; }

@media (min-width: 1080px) and (min-height: 680px) {
  .campaign-shell .location-context-card .location-next-actions {
    gap: 6px;
    margin-top: 4px;
    padding: 7px;
  }
  .campaign-shell .location-context-card .location-next-actions > header {
    min-height: 26px;
    padding-bottom: 4px;
  }
  .campaign-shell .location-context-card .location-next-actions .choice-list {
    gap: 6px;
  }
  .campaign-shell .location-context-card .location-next-actions .choice-list > button,
  .campaign-shell .location-context-card .location-next-actions .choice-list.choice-count-4 > button {
    min-height: 72px;
    padding: 6px 9px;
  }
}

@media (max-width: 720px) {
  .location-context-card { background-position: 60% center; }
  .location-scene-showcase { height: 176px; margin-bottom: 12px; }
  .location-context-card .event-side { width: 100%; }
  .location-scene-seal { width: 100%; min-width: 0; }
  .location-scene-notice { grid-template-columns: 1fr; gap: 4px; }
  .location-route-shortcuts { display: grid; grid-template-columns: 1fr; }
  .location-route-shortcuts > span { min-height: 34px; }
  .location-route-shortcuts > button { min-height: 54px; }
  .location-next-actions { padding: 9px; scroll-margin-top: 12px; }
  .location-next-actions > header { align-items: flex-start; }
  .location-next-actions .choice-list,
  .campaign-shell .location-next-actions .choice-list.choice-count-4 { grid-template-columns: 1fr; }
  .location-next-actions .choice-list > button,
  .campaign-shell .location-next-actions .choice-list.choice-count-4 > button { min-height: 88px; }
  .location-special-mechanism { grid-template-columns: 1fr; }
  .venue-interior-ledger > dl { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .venue-interior-ledger > dl > div { padding: 8px; }
  .system-focus-panel-venue .system-focus-copy p { font-size: var(--ming-font-body, 16px); }
  .venue-interior-ledger dt { font-size: var(--ming-font-small, 14px); }
  .venue-interior-ledger dd { font-size: 14px; }
  .venue-interior-ledger ol { grid-template-columns: 1fr; }
  .venue-service-panel > header { display: grid; }
  .overnight-option-grid { grid-template-columns: 1fr; }
  .overnight-option-card > p { min-height: 0; }
  .venue-service-facts { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .venue-service-facts > span { padding: 8px 6px; }
  .venue-service-submit { grid-template-columns: 1fr; gap: 3px; }
  .venue-service-submit small { text-align: left; }
  .venue-water-service-panel > header { display: grid; }
  .venue-water-actions { grid-template-columns: 1fr; }
  .venue-operator-dialogue { grid-template-columns: 48px minmax(0, 1fr); gap: 10px; }
  .venue-operator-portrait { width: 48px; height: 48px; }
  .venue-operator-dialogue > button { grid-column: 1 / -1; min-height: 56px; }
  .yamen-receipt-ledger > header { display: grid; }
  .location-special-mechanism > button { min-height: 56px; }
  .location-context-card .choice-list > button { min-height: 96px; }
}

/* 营阵交战：先在六格阵图下令，再交由同版军伍账与天机收束战果 */
.field-battle-planner-backdrop {
  position: fixed;
  z-index: 1810;
  inset: 0;
  display: grid;
  place-items: center;
  padding: clamp(14px, 3vw, 38px);
  overflow: auto;
  background:
    radial-gradient(circle at 50% 16%, rgba(157, 112, 52, 0.16), transparent 42%),
    rgba(3, 7, 5, 0.94);
  backdrop-filter: blur(12px);
}

.field-battle-planner-panel {
  width: min(1280px, 100%);
  max-height: min(900px, calc(100dvh - 28px));
  overflow: auto;
  color: var(--folio-ink, #d8d1bd);
  border: 1px solid rgba(196, 157, 79, 0.48);
  border-top: 3px solid #b98b43;
  background: var(--folio-card, linear-gradient(135deg, rgba(32, 29, 17, 0.82), transparent 32%),
    #07100b);
  box-shadow: 0 28px 90px rgba(0, 0, 0, 0.72), inset 0 0 0 5px rgba(224, 192, 119, 0.025);
  outline: none;
}

.field-battle-planner-heading {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  align-items: center;
  gap: 24px;
  padding: clamp(20px, 3vw, 34px);
  border-bottom: 1px solid rgba(188, 151, 76, 0.28);
  background: var(--folio-card, linear-gradient(90deg, rgba(113, 78, 31, 0.2), transparent 62%));
}

.field-battle-planner-heading > div > span,
.field-battle-ledger > header span {
  color: var(--folio-muted, #c7a55f);
  font-size: 14px;
  font-weight: 700;
  letter-spacing: 0.16em;
}

.field-battle-planner-heading h2 {
  margin: 5px 0 7px;
  color: var(--folio-ink, #f1e3c2);
  font-family: var(--font-brush);
  font-size: clamp(34px, 4vw, 54px);
  font-weight: 500;
  letter-spacing: 0.09em;
}

.field-battle-planner-heading p {
  max-width: 720px;
  margin: 0;
  color: var(--folio-muted, #bdb6a4);
  font-size: 16px;
  line-height: 1.7;
}

.field-battle-planner-heading > aside {
  display: grid;
  grid-template-columns: 58px minmax(130px, 1fr);
  align-items: center;
  gap: 12px;
  padding: 12px 15px;
  border: 1px solid rgba(184, 144, 69, 0.34);
  background: var(--folio-card, rgba(7, 13, 9, 0.78));
}

.field-battle-planner-heading > aside > i,
.field-battle-ledger > header > i {
  width: 54px;
  height: 54px;
  display: grid;
  place-items: center;
  color: var(--folio-ink, #ead292);
  border: 1px solid rgba(209, 168, 81, 0.58);
  border-radius: 50%;
  background: var(--folio-card, rgba(112, 37, 23, 0.44));
  font-family: var(--font-brush);
  font-size: 30px;
  font-style: normal;
}

.field-battle-planner-heading > aside > span { display: grid; gap: 2px; }
.field-battle-planner-heading > aside small { color: var(--folio-muted, #aeb1a3); font-size: 14px; }
.field-battle-planner-heading > aside strong { color: var(--folio-ink, #eee0bf); font-size: 18px; }
.field-battle-planner-heading > aside em { color: var(--folio-muted, #9bc2aa); font-size: 14px; font-style: normal; }

.field-battle-planner-body {
  display: grid;
  grid-template-columns: minmax(430px, 1fr) minmax(460px, 0.95fr);
  gap: clamp(18px, 3vw, 32px);
  padding: clamp(18px, 3vw, 32px);
}

.field-battle-field-column {
  min-width: 0;
  display: grid;
  align-content: start;
  gap: 12px;
}

.field-battle-situation {
  overflow: hidden;
  border: 1px solid rgba(116, 156, 127, 0.34);
  background: var(--folio-card, linear-gradient(110deg, rgba(27, 65, 42, 0.31), rgba(7, 17, 11, 0.88)),
    #08120c);
  box-shadow: inset 3px 0 #6d9c78;
}

.field-battle-situation > header {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr);
  align-items: baseline;
  gap: 12px;
  padding: 11px 13px 9px 16px;
  border-bottom: 1px solid rgba(110, 151, 122, 0.23);
}

.field-battle-situation > header span {
  color: var(--folio-muted, #91b89d);
  font-size: 14px;
  font-weight: 800;
  letter-spacing: 0.14em;
}

.field-battle-situation > header b {
  overflow: hidden;
  color: var(--folio-ink, #e6d9b8);
  font-size: 15px;
  font-weight: 650;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.field-battle-situation > div {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 1px;
  background: var(--folio-card, rgba(114, 151, 121, 0.15));
}

.field-battle-situation article,
.field-battle-ledger-situation > div {
  min-width: 0;
  min-height: 59px;
  display: grid;
  grid-template-columns: 31px minmax(0, 1fr);
  align-items: center;
  gap: 9px;
  padding: 9px 11px;
  background: var(--folio-card, rgba(6, 17, 10, 0.86));
}

.field-battle-situation article > i,
.field-battle-ledger-situation > div > i {
  width: 29px;
  height: 29px;
  display: grid;
  place-items: center;
  color: var(--folio-ink, #d5bf80);
  border: 1px solid rgba(191, 158, 83, 0.42);
  border-radius: 50%;
  font-family: var(--font-brush);
  font-size: 17px;
  font-style: normal;
}

.field-battle-situation article > span,
.field-battle-ledger-situation > div > span { min-width: 0; display: grid; gap: 2px; font-size: 14px; }
.field-battle-situation article small,
.field-battle-ledger-situation small { color: var(--folio-muted, #aebbad); font-size: 14px; }
.field-battle-situation article strong,
.field-battle-ledger-situation strong { overflow-wrap: anywhere; color: var(--folio-ink, #e8dbba); font-size: 14px; line-height: 1.35; }
.field-battle-situation > p { margin: 0; padding: 10px 15px 12px; color: var(--folio-muted, #bac5ba); font-size: var(--ming-font-body, 16px); line-height: 1.6; }

.field-battle-command-scope,
.field-battle-phase-plan {
  overflow: hidden;
  border: 1px solid rgba(181, 143, 68, 0.38);
  background: var(--folio-card, rgba(7, 16, 10, 0.88));
}
.field-battle-command-scope > header,
.field-battle-phase-plan > header,
.field-battle-ledger-phases > header { display: flex; align-items: baseline; justify-content: space-between; gap: 10px; padding: 10px 13px; border-bottom: 1px solid rgba(181, 143, 68, 0.22); }
.field-battle-command-scope > header span,
.field-battle-phase-plan > header span,
.field-battle-ledger-phases > header span { color: var(--folio-muted, #d7bc78); font-size: 15px; font-weight: 800; letter-spacing: 0.08em; }
.field-battle-command-scope > header small,
.field-battle-phase-plan > header small,
.field-battle-ledger-phases > header small { color: var(--folio-muted, #aeb9ad); font-size: 14px; line-height: 1.45; text-align: right; }
.field-battle-command-scope > div { display: grid; grid-template-columns: minmax(120px, 0.52fr) minmax(190px, 1fr); gap: 10px; padding: 12px 13px 8px; }
.field-battle-command-scope label { display: grid; gap: 5px; }
.field-battle-command-scope label > span { color: var(--folio-muted, #c7c0aa); font-size: 14px; font-weight: 700; }
.field-battle-command-scope select,
.field-battle-phase-plan select { width: 100%; min-height: 46px; padding: 0 10px; color: var(--folio-ink, #eee0bd); border: 1px solid rgba(179, 145, 75, 0.46); border-radius: 0; background: var(--folio-card, #0b1510); font: inherit; font-size: 15px; }
.field-battle-command-scope > p { display: grid; gap: 2px; margin: 0; padding: 7px 13px 12px; }
.field-battle-command-scope > p b { color: var(--folio-muted, #e7d8b7); font-size: var(--ming-font-body, 16px); }
.field-battle-command-scope > p span { color: var(--folio-muted, #b7c3b8); font-size: var(--ming-font-body, 16px); line-height: 1.5; }

.field-battle-phase-plan > div { display: grid; gap: 1px; background: var(--folio-card, rgba(133, 151, 126, 0.16)); }
.field-battle-phase-plan article { min-width: 0; display: grid; grid-template-columns: 38px minmax(0, 1fr); gap: 10px; padding: 11px 12px; background: var(--folio-card, rgba(6, 17, 10, 0.91)); }
.field-battle-phase-plan article > i { width: 36px; height: 36px; display: grid; place-items: center; color: var(--folio-ink, #e4ca82); border: 1px solid rgba(204, 165, 78, 0.48); border-radius: 50%; font-family: var(--font-brush); font-size: 20px; font-style: normal; }
.field-battle-phase-plan article > div { min-width: 0; display: grid; grid-template-columns: 1fr 1fr; gap: 7px 9px; }
.field-battle-phase-plan article > div > span { grid-column: 1 / -1; color: var(--folio-muted, #e7d9b8); font-size: 16px; font-weight: 800; }
.field-battle-phase-plan article p { grid-column: 1 / -1; margin: -3px 0 1px; color: var(--folio-muted, #afbbae); font-size: var(--ming-font-body, 16px); line-height: 1.45; }
.field-battle-phase-plan label { display: grid; gap: 4px; }
.field-battle-phase-plan label small { color: var(--folio-muted, #bcb9a9); font-size: 14px; font-weight: 700; }
.field-battle-phase-plan article em { grid-column: 1 / -1; color: var(--folio-muted, #a9b9ac); font-size: 14px; font-style: normal; line-height: 1.5; }

.field-battle-board {
  position: relative;
  isolation: isolate;
  overflow: hidden;
  align-self: start;
  padding: 18px 18px 20px;
  border: 1px solid rgba(181, 143, 68, 0.48);
  background:
    linear-gradient(180deg, rgba(5, 11, 8, 0.38), rgba(5, 12, 8, 0.64)),
    url('/assets/art/combat/review/field-battle-sandtable-v1-candidate.png') center / cover no-repeat,
    #08130d;
  box-shadow:
    0 18px 45px rgba(0, 0, 0, 0.3),
    inset 0 0 0 4px rgba(16, 29, 19, 0.58),
    inset 0 0 52px rgba(0, 0, 0, 0.48);
}

.field-battle-board::before {
  position: absolute;
  z-index: -1;
  inset: 0;
  content: '';
  background:
    linear-gradient(rgba(196, 174, 119, 0.055) 1px, transparent 1px),
    linear-gradient(90deg, rgba(196, 174, 119, 0.055) 1px, transparent 1px),
    radial-gradient(circle at 50% 46%, transparent 24%, rgba(0, 0, 0, 0.32) 100%);
  background-size: 31px 31px, 31px 31px, auto;
  pointer-events: none;
}

.field-battle-board::after {
  position: absolute;
  z-index: 4;
  inset: 7px;
  content: '';
  border: 1px solid rgba(219, 186, 111, 0.19);
  box-shadow: inset 0 0 0 1px rgba(3, 8, 5, 0.54);
  pointer-events: none;
}

.field-battle-board > header,
.field-battle-board > footer {
  position: relative;
  z-index: 2;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  color: var(--folio-ink, #c4c7b8);
  font-size: 14px;
}

.field-battle-board > header { margin: -3px 0 13px; }
.field-battle-board > header span,
.field-battle-board > footer span { display: inline-flex; align-items: center; gap: 8px; }
.field-battle-board > header span i,
.field-battle-board > footer span i { width: 27px; height: 27px; display: grid; place-items: center; border: 1px solid currentColor; border-radius: 50%; font-family: var(--font-brush); font-size: 17px; font-style: normal; }
.field-battle-board > header span { color: var(--folio-muted, #d59b83); }
.field-battle-board > header span b,
.field-battle-board > footer span b { font-size: 14px; letter-spacing: 0.18em; }
.field-battle-board > header em { color: var(--folio-muted, #ead8ac); font-size: 14px; font-style: normal; font-weight: 700; }
.field-battle-board > footer { margin-top: 13px; }
.field-battle-board > footer span { color: var(--folio-muted, #91b89e); }
.field-battle-board > footer small { color: var(--folio-muted, #aeb8ad); font-size: 14px; }

.field-battle-board-grid {
  position: relative;
  z-index: 2;
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 8px;
  padding: 7px;
  border: 1px solid rgba(223, 202, 150, 0.12);
  background: var(--folio-card, rgba(4, 10, 7, 0.28));
  box-shadow: inset 0 0 28px rgba(0, 0, 0, 0.32);
}

.field-battle-cell {
  min-height: 116px;
  display: grid;
  align-content: center;
  justify-items: center;
  gap: 6px;
  padding: 12px 8px;
  border: 1px dashed rgba(209, 192, 146, 0.25);
  background: var(--folio-card, linear-gradient(180deg, rgba(13, 24, 17, 0.72), rgba(5, 12, 8, 0.78)));
  box-shadow: inset 0 0 22px rgba(0, 0, 0, 0.24);
  text-align: center;
  transition: border-color 160ms ease, background 160ms ease, transform 160ms ease;
}

.field-battle-cell.reserve { min-height: 102px; background: var(--folio-card, linear-gradient(180deg, rgba(7, 17, 11, 0.57), rgba(3, 9, 6, 0.72))); }
.field-battle-cell.occupied { border-style: solid; border-color: var(--folio-rule, rgba(219, 177, 91, 0.68)); background: var(--folio-card, linear-gradient(180deg, rgba(106, 73, 30, 0.76), rgba(11, 24, 16, 0.88))); box-shadow: 0 8px 20px rgba(0, 0, 0, 0.3), inset 0 0 0 1px rgba(245, 219, 156, 0.08); }
.field-battle-cell.conflict { border-color: var(--folio-rule, rgba(198, 78, 55, 0.84)); box-shadow: inset 0 0 0 1px rgba(198, 78, 55, 0.34); }
.field-battle-cell-position { display: inline-flex; align-items: center; gap: 6px; color: var(--folio-ink, #c3c6b5); font-size: 14px; }
.field-battle-cell-position i { width: 23px; height: 23px; display: grid; place-items: center; color: var(--folio-ink, #e1c676); border: 1px solid rgba(212, 179, 91, 0.42); border-radius: 50%; font-family: var(--font-brush); font-size: 16px; font-style: normal; }
.field-battle-cell-position b { font-size: 14px; font-weight: 600; }
.field-battle-cell-order { display: grid; grid-template-columns: 31px minmax(0, 1fr); grid-template-areas: 'seal name' 'seal detail'; align-items: center; column-gap: 8px; max-width: 100%; padding: 7px 9px; border: 1px solid rgba(235, 210, 145, 0.18); background: var(--folio-card, rgba(8, 13, 9, 0.52)); text-align: left; }
.field-battle-cell-order > i { grid-area: seal; width: 29px; height: 35px; display: grid; place-items: center; color: var(--folio-ink, #f0d58c); border: 1px solid rgba(224, 182, 91, 0.58); background: var(--folio-card, linear-gradient(180deg, #783b28, #4e271e)); font-family: var(--font-brush); font-size: 18px; font-style: normal; box-shadow: 0 4px 10px rgba(0, 0, 0, 0.32); }
.field-battle-cell-order strong { grid-area: name; overflow-wrap: anywhere; color: var(--folio-ink, #f4e6c4); font-size: 16px; line-height: 1.3; }
.field-battle-cell-order small { grid-area: detail; color: var(--folio-muted, #d2cebd); font-size: 14px; }
.field-battle-cell em { color: var(--folio-muted, #9ba49b); font-size: 14px; font-style: normal; }

.field-battle-orders {
  position: relative;
  min-width: 0;
  display: grid;
  align-content: start;
  gap: 12px;
  overflow: hidden;
  padding: 14px;
  border: 1px solid rgba(171, 145, 84, 0.32);
  background: var(--folio-card, linear-gradient(150deg, rgba(80, 60, 27, 0.14), transparent 38%),
    rgba(5, 14, 9, 0.78));
  box-shadow: inset 0 0 36px rgba(0, 0, 0, 0.22);
}
.field-battle-orders::after {
  position: absolute;
  top: 13px;
  right: 15px;
  content: '令';
  color: rgba(213, 183, 112, 0.06);
  font-family: var(--font-brush);
  font-size: 112px;
  line-height: 1;
  pointer-events: none;
}
.field-battle-orders-heading {
  position: relative;
  z-index: 1;
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  align-items: end;
  gap: 16px;
  margin: -14px -14px 2px;
  padding: 17px 18px 15px;
  border-bottom: 1px solid rgba(187, 151, 78, 0.28);
  background: var(--folio-card, linear-gradient(100deg, rgba(109, 75, 30, 0.24), rgba(7, 17, 11, 0.3)));
}
.field-battle-orders-heading > div { min-width: 0; }
.field-battle-orders-heading span {
  color: var(--folio-muted, #c8a862);
  font-size: 14px;
  font-weight: 800;
  letter-spacing: 0.16em;
}
.field-battle-orders-heading h3 {
  margin: 4px 0 0;
  color: var(--folio-ink, #eee0bd);
  font-family: var(--font-brush);
  font-size: 25px;
  font-weight: 500;
  letter-spacing: 0.06em;
}
.field-battle-orders-heading ol {
  display: flex;
  align-items: center;
  gap: 7px;
  margin: 0;
  padding: 0;
  list-style: none;
}
.field-battle-orders-heading li {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  color: var(--folio-ink, #aeb8ac);
  font-size: 14px;
  white-space: nowrap;
}
.field-battle-orders-heading li + li::before {
  margin-right: 3px;
  color: rgba(194, 162, 94, 0.48);
  content: '›';
}
.field-battle-orders-heading li i {
  width: 23px;
  height: 23px;
  display: grid;
  place-items: center;
  color: var(--folio-ink, #d8be7b);
  border: 1px solid rgba(193, 156, 76, 0.42);
  border-radius: 50%;
  font-family: var(--font-brush);
  font-size: 15px;
  font-style: normal;
}
.field-battle-orders-heading li b { font-size: 14px; font-weight: 650; }
.field-battle-command { display: grid; grid-template-columns: minmax(190px, 0.72fr) minmax(0, 1.28fr); gap: 12px; align-items: stretch; }
.field-battle-command label { display: grid; gap: 6px; }
.field-battle-command label > span { color: var(--folio-muted, #c9bb9d); font-size: 14px; font-weight: 700; }
.field-battle-command select {
  width: 100%;
  min-height: 48px;
  padding: 0 12px;
  color: var(--folio-ink, #eee0bd);
  border: 1px solid rgba(179, 145, 75, 0.46);
  border-radius: 0;
  background: var(--folio-card, #0b1510);
  font: inherit;
  font-size: 15px;
}
.field-battle-command p { min-height: 48px; display: grid; align-content: center; gap: 3px; margin: 0; padding: 9px 12px; border-left: 3px solid #6b9c7d; background: var(--folio-card, rgba(29, 74, 48, 0.2)); color: var(--folio-muted, #b9c8bd); font-size: var(--ming-font-body, 16px); line-height: 1.5; }
.field-battle-command p strong { color: var(--folio-muted, #cfe2d2); font-size: var(--ming-font-body, 16px); }
.field-battle-objective { display: grid; grid-template-columns: minmax(190px, 0.72fr) minmax(0, 1.28fr); gap: 12px; align-items: end; }
.field-battle-objective label,
.field-battle-order-card label { display: grid; gap: 6px; }
.field-battle-objective label > span,
.field-battle-order-card label > span { color: var(--folio-muted, #c9bb9d); font-size: 14px; font-weight: 700; }
.field-battle-objective select,
.field-battle-order-card select {
  width: 100%;
  min-height: 46px;
  padding: 0 12px;
  color: var(--folio-ink, #eee0bd);
  border: 1px solid rgba(179, 145, 75, 0.42);
  border-radius: 0;
  background: var(--folio-card, #0b1510);
  font: inherit;
  font-size: 15px;
}

.field-battle-objective p { min-height: 46px; display: grid; align-content: center; gap: 2px; margin: 0; padding: 6px 12px; border-left: 3px solid #9f7b3d; background: var(--folio-card, rgba(105, 78, 33, 0.16)); color: var(--folio-muted, #c1bcaa); font-size: var(--ming-font-body, 16px); line-height: 1.45; }
.field-battle-objective p strong { color: var(--folio-muted, #d8c18d); font-size: var(--ming-font-body, 16px); }
.field-battle-order-list { display: grid; gap: 9px; }
.field-battle-order-list > header {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 12px;
  padding: 3px 1px 1px;
}
.field-battle-order-list > header span { color: var(--folio-muted, #d6bd7b); font-size: 15px; font-weight: 800; letter-spacing: 0.08em; }
.field-battle-order-list > header small { color: var(--folio-muted, #aeb7ac); font-size: 14px; }
.field-battle-order-card { display: grid; grid-template-columns: minmax(180px, 0.78fr) minmax(300px, 1.22fr); gap: 13px; align-items: center; padding: 12px; border: 1px solid rgba(120, 139, 116, 0.28); background: var(--folio-card, rgba(10, 21, 14, 0.72)); }
.field-battle-order-card > header { min-width: 0; display: grid; grid-template-columns: 42px minmax(0, 1fr); align-items: center; gap: 10px; }
.field-battle-order-card > header > i { width: 40px; height: 40px; display: grid; place-items: center; color: var(--folio-ink, #dec681); border: 1px solid rgba(192, 151, 71, 0.42); border-radius: 50%; font-family: var(--font-brush); font-size: 23px; font-style: normal; }
.field-battle-order-card header span,
.field-battle-order-card header small { color: var(--folio-muted, #abb4a9); font-size: 14px; }
.field-battle-order-card h3 { overflow-wrap: anywhere; margin: 1px 0; color: var(--folio-ink, #e8dabb); font-size: 16px; }
.field-battle-order-card > div { display: grid; grid-template-columns: 1fr 0.82fr; gap: 9px; }
.field-battle-delegation-note { display: grid; grid-template-columns: 42px minmax(0, 1fr); gap: 11px; align-items: center; padding: 11px 13px; border: 1px solid rgba(88, 139, 109, 0.3); background: var(--folio-card, rgba(17, 47, 31, 0.34)); }
.field-battle-delegation-note > i { width: 38px; height: 38px; display: grid; place-items: center; color: var(--folio-ink, #8fbea0); border: 1px solid rgba(101, 157, 126, 0.48); border-radius: 50%; font-style: normal; }
.field-battle-delegation-note p { display: grid; gap: 2px; margin: 0; }
.field-battle-delegation-note strong { color: var(--folio-ink, #cfdfd0); font-size: 14px; }
.field-battle-delegation-note span { color: var(--folio-muted, #b7c4b9); font-size: 14px; line-height: 1.55; }

.field-battle-planner-actions {
  position: sticky;
  bottom: 0;
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  align-items: center;
  gap: 20px;
  padding: 15px clamp(18px, 3vw, 32px) calc(15px + env(safe-area-inset-bottom));
  border-top: 1px solid rgba(190, 153, 77, 0.28);
  background: var(--folio-card, rgba(6, 13, 9, 0.97));
}

.field-battle-planner-actions p { margin: 0; color: var(--folio-muted, #b5beb4); font-size: var(--ming-font-body, 16px); line-height: 1.55; }
.field-battle-planner-actions p.warning { color: var(--folio-muted, #e09a81); }
.field-battle-planner-actions > div { display: flex; gap: 9px; }
.field-battle-planner-actions button { min-width: 128px; min-height: 48px; padding: 7px 15px; color: var(--folio-ink, #c9c6b9); border: 1px solid rgba(148, 139, 108, 0.34); background: var(--folio-card, #101812); font: inherit; font-size: 14px; cursor: pointer; }
.field-battle-planner-actions button.primary { min-width: 210px; display: grid; gap: 1px; color: var(--folio-ink, #17140c); border-color: var(--folio-rule, #d2b260); background: var(--folio-card, linear-gradient(180deg, #e0c77e, #bd974c)); font-weight: 800; }
.field-battle-planner-actions button.primary small { color: var(--folio-muted, #493c20); font-size: 14px; font-weight: 600; }
.field-battle-planner-actions button:disabled,
.field-battle-planner-panel select:disabled { cursor: not-allowed; opacity: 0.48; }

.field-battle-ledger { position: relative; isolation: isolate; overflow: hidden; margin: 14px 0; border: 1px solid rgba(175, 144, 75, 0.42); background: linear-gradient(120deg, rgba(18, 25, 17, 0.82), rgba(5, 13, 9, 0.91)), url('/assets/art/combat/review/field-battle-sandtable-v1-candidate.png') center / cover no-repeat; box-shadow: inset 0 0 48px rgba(0, 0, 0, 0.4); }
.field-battle-ledger > header { display: grid; grid-template-columns: minmax(0, 1fr) 48px; gap: 14px; align-items: center; padding: 15px 17px; border-bottom: 1px solid rgba(160, 137, 79, 0.28); background: var(--folio-card, rgba(7, 14, 9, 0.42)); }
.field-battle-ledger.result-withdrawn > header { box-shadow: inset 4px 0 rgba(184, 151, 83, 0.82); }
.field-battle-ledger.result-routed > header { box-shadow: inset 4px 0 rgba(176, 78, 58, 0.92); }
.field-battle-ledger.result-routed > header h4 { color: var(--folio-ink, #e3aa92); }
.field-battle-ledger > header h4 { margin: 4px 0 2px; color: var(--folio-ink, #e7dab9); font-size: 20px; }
.field-battle-ledger > header p { margin: 0; color: var(--folio-muted, #c2c5b8); font-size: var(--ming-font-body, 16px); }
.field-battle-ledger > header > i { width: 44px; height: 44px; font-size: 24px; }
.field-battle-ledger-situation { display: grid; grid-template-columns: repeat(3, minmax(0, 0.72fr)) minmax(220px, 1.4fr); gap: 1px; padding: 1px 0; background: var(--folio-card, rgba(124, 151, 126, 0.16)); }
.field-battle-ledger-situation > div { min-height: 64px; }
.field-battle-ledger-situation > p { min-width: 0; display: grid; align-content: center; gap: 3px; margin: 0; padding: 10px 14px; background: var(--folio-card, rgba(6, 17, 10, 0.86)); font-size: var(--ming-font-body, 16px); }
.field-battle-ledger-situation > p small { color: var(--folio-muted, #8db098); font-weight: 700; letter-spacing: 0.08em; }
.field-battle-ledger-situation > p span { color: var(--folio-muted, #c3c9bc); font-size: var(--ming-font-body, 16px); line-height: 1.5; }
.field-battle-ledger-phases { border-top: 1px solid rgba(167, 144, 82, 0.23); border-bottom: 1px solid rgba(167, 144, 82, 0.23); background: var(--folio-card, rgba(5, 14, 9, 0.79)); }
.field-battle-ledger-phases > div { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1px; background: var(--folio-card, rgba(154, 139, 98, 0.15)); }
.field-battle-ledger-phases article { min-width: 0; display: grid; grid-template-columns: 34px minmax(0, 1fr); gap: 8px; align-items: center; padding: 10px 12px; background: var(--folio-card, rgba(8, 19, 12, 0.9)); }
.field-battle-ledger-phases article > i { width: 32px; height: 32px; display: grid; place-items: center; color: var(--folio-ink, #e2c77d); border: 1px solid rgba(194, 145, 62, 0.5); border-radius: 50%; font-family: var(--font-brush); font-size: 18px; font-style: normal; }
.field-battle-ledger-phases article > span { min-width: 0; display: grid; gap: 1px; }
.field-battle-ledger-phases article small { color: var(--folio-muted, #91ad98); font-size: 14px; }
.field-battle-ledger-phases article b { overflow-wrap: anywhere; color: var(--folio-ink, #e8d9b8); font-size: 15px; }
.field-battle-ledger-phases article em { color: var(--folio-muted, #c7c3b3); font-size: 14px; font-style: normal; }
.field-battle-command-relay { border-bottom: 1px solid rgba(167, 144, 82, 0.24); background: var(--folio-card, rgba(4, 13, 8, 0.9)); }
.field-battle-command-relay > header { display: flex; align-items: end; justify-content: space-between; gap: 14px; padding: 12px 14px; border-bottom: 1px solid rgba(125, 157, 132, 0.22); background: var(--folio-card, linear-gradient(90deg, rgba(28, 51, 34, 0.68), rgba(8, 19, 12, 0.36))); }
.field-battle-command-relay > header > div { min-width: 0; display: grid; gap: 3px; }
.field-battle-command-relay > header span { color: var(--folio-muted, #93b29d); font-size: 14px; font-weight: 800; letter-spacing: 0.1em; }
.field-battle-command-relay > header h5 { overflow-wrap: anywhere; margin: 0; color: var(--folio-ink, #eadbb9); font-size: 16px; }
.field-battle-command-relay > header > small { max-width: 250px; color: var(--folio-muted, #b9c3b8); font-size: 14px; line-height: 1.45; text-align: right; }
.field-battle-command-relay > div { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1px; background: var(--folio-card, rgba(112, 146, 119, 0.16)); }
.field-battle-command-relay article { min-width: 0; display: grid; grid-template-columns: 36px minmax(0, 1fr); gap: 10px; padding: 12px; background: var(--folio-card, rgba(7, 18, 11, 0.95)); }
.field-battle-command-relay article > i { width: 34px; height: 34px; display: grid; place-items: center; color: var(--folio-ink, #d7bf79); border: 1px solid rgba(191, 151, 70, 0.5); border-radius: 50%; font-family: var(--font-brush); font-size: 19px; font-style: normal; }
.field-battle-command-relay article > div { min-width: 0; display: grid; align-content: start; gap: 4px; }
.field-battle-command-relay article header { display: flex; align-items: baseline; justify-content: space-between; gap: 8px; }
.field-battle-command-relay article header b { color: var(--folio-ink, #e8dbba); font-size: 15px; }
.field-battle-command-relay article header em { color: var(--folio-muted, #aebcaf); font-size: 14px; font-style: normal; white-space: nowrap; }
.field-battle-command-relay article p { margin: 0; color: var(--folio-muted, #c3c9bd); font-size: var(--ming-font-body, 16px); line-height: 1.45; }
.field-battle-command-relay article p strong { color: var(--folio-muted, #dfc476); font-size: var(--ming-font-body, 16px); }
.field-battle-command-relay article p span { color: var(--folio-muted, #8fa096); font-size: var(--ming-font-body, 16px); }
.field-battle-command-relay article small { overflow-wrap: anywhere; color: var(--folio-muted, #aebcaf); font-size: 14px; line-height: 1.45; }
.field-battle-command-relay article .relay-travel-basis { display: block; margin-top: 3px; padding-top: 7px; color: var(--folio-ink, #d8c9a7); font-size: 14px; line-height: 1.5; border-top: 1px solid rgba(191, 151, 70, 0.2); }
.field-battle-command-relay article.relay-reported { box-shadow: inset 3px 0 rgba(94, 153, 112, 0.72); }
.field-battle-command-relay article.relay-reported header em { color: var(--folio-muted, #9cc7a7); }
.field-battle-command-relay article.relay-partial,
.field-battle-command-relay article.relay-lost { box-shadow: inset 3px 0 rgba(184, 92, 67, 0.82); background: var(--folio-card, linear-gradient(110deg, rgba(72, 29, 20, 0.72), rgba(7, 18, 11, 0.95))); }
.field-battle-command-relay article.relay-partial header em,
.field-battle-command-relay article.relay-lost header em,
.field-battle-command-relay article.relay-partial small,
.field-battle-command-relay article.relay-lost small { color: var(--folio-muted, #e0a28e); }
.field-battle-relay-resend { display: grid; gap: 7px; margin-top: 7px; padding: 10px; border: 1px solid rgba(197, 153, 75, 0.32); border-left: 3px solid #b48643; background: var(--folio-card, rgba(26, 22, 13, 0.82)); }
.field-battle-relay-resend > header { align-items: center !important; padding: 0 0 6px !important; border-bottom: 1px solid rgba(190, 151, 73, 0.2) !important; background: transparent !important; }
.field-battle-relay-resend > header span { color: var(--folio-muted, #d2b468) !important; font-size: 14px; letter-spacing: 0.08em !important; }
.field-battle-relay-resend > header b { color: var(--folio-ink, #e7d8b1) !important; font-size: 14px; }
.field-battle-relay-resend > p { color: var(--folio-muted, #cfc4aa) !important; font-size: var(--ming-font-body, 16px); line-height: 1.55 !important; }
.field-battle-relay-resend > p strong { color: var(--folio-muted, #e2c778) !important; }
.field-battle-relay-resend > small { color: var(--folio-muted, #b9ad95) !important; font-size: 14px; }
.field-battle-relay-resend.is-ready { border-color: var(--folio-rule, rgba(102, 165, 126, 0.48)); border-left-color: var(--folio-rule, #67a17d); background: var(--folio-success-surface, linear-gradient(110deg, rgba(28, 65, 43, 0.58), rgba(20, 22, 13, 0.82))); }
.field-battle-relay-resend.is-ready > header span { color: var(--folio-success, #9fc4ad) !important; }
.field-battle-relay-resend.is-sent { border-color: var(--folio-rule, rgba(104, 157, 126, 0.42)); border-left-color: var(--folio-rule, #649a77); background: var(--folio-card, rgba(20, 47, 32, 0.7)); }
.field-battle-relay-resend.is-rerouted { border-color: var(--folio-rule, rgba(103, 159, 144, 0.5)); border-left-color: var(--folio-rule, #6ba797); background: var(--folio-card, linear-gradient(110deg, rgba(19, 59, 52, 0.72), rgba(20, 34, 25, 0.72))); }
.field-battle-relay-resend-control { display: grid; grid-template-columns: 1fr; gap: 9px; align-items: start; }
.field-battle-relay-resend-control label { min-width: 0; display: grid; gap: 4px; }
.field-battle-relay-resend-control label > span { color: var(--folio-muted, #b9c5b8) !important; font-size: 14px; font-weight: 700; letter-spacing: 0.02em !important; }
.field-battle-relay-resend-control select { width: 100%; min-height: 46px; padding: 8px 10px; color: var(--folio-ink, #eadfc5); border: 1px solid rgba(116, 164, 136, 0.46); border-radius: 2px; background: var(--folio-card, #09120d); font: inherit; font-size: 15px; }
.field-battle-relay-route-actions { min-width: 0; display: grid; gap: 7px; }
.field-battle-relay-route-actions .relay-route-choice { padding: 8px; border: 1px solid rgba(103, 159, 144, 0.34); background: var(--folio-card, rgba(5, 20, 15, 0.62)); }
.field-battle-relay-signal-control { min-width: 0; display: grid; gap: 8px; padding: 9px; border: 1px solid rgba(102, 153, 145, 0.48); background: var(--folio-card, linear-gradient(115deg, rgba(10, 39, 35, 0.86), rgba(9, 24, 17, 0.82))); }
.field-battle-relay-signal-control label { min-width: 0; display: grid; gap: 5px; }
.field-battle-relay-signal-control label > span { color: var(--folio-muted, #a9ccc2) !important; font-size: 14px; font-weight: 760; }
.field-battle-relay-signal-control select { width: 100%; min-width: 0; min-height: 48px; padding: 8px 10px; color: var(--folio-ink, #eee2c7); border: 1px solid rgba(107, 169, 156, 0.58); background: var(--folio-card, #071511); font: inherit; font-size: 15px; line-height: 1.45; }
.field-battle-relay-signal-control label > small { display: block; color: var(--folio-muted, #e2d6b8) !important; font-size: 14px; line-height: 1.55 !important; overflow-wrap: anywhere; }
.field-battle-relay-signal-control > p { margin: 0 !important; color: var(--folio-muted, #afc5bd) !important; font-size: var(--ming-font-body, 16px); line-height: 1.5 !important; }
.field-battle-relay-resend.is-signaled { border-color: var(--folio-rule, rgba(101, 163, 150, 0.56)); border-left-color: var(--folio-rule, #69a99b); background: var(--folio-card, linear-gradient(110deg, rgba(13, 53, 46, 0.82), rgba(16, 34, 24, 0.82))); }
.field-battle-relay-resend.is-signaled > header span { color: var(--folio-muted, #a9d0c4) !important; }
.field-battle-relay-resend button { min-height: 48px; display: grid; align-content: center; gap: 2px; padding: 7px 11px; color: var(--folio-ink, #182319); border: 1px solid #d5b767; background: var(--folio-card, linear-gradient(180deg, #dec477, #ba9347)); font: inherit; cursor: pointer; }
.field-battle-relay-resend button b { color: var(--folio-ink, #221d11) !important; font-size: 15px; }
.field-battle-relay-resend button small { color: var(--folio-muted, #56441f) !important; font-size: 14px; }
.field-battle-relay-resend button:disabled { cursor: not-allowed; opacity: 0.5; }
.field-battle-ledger-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1px; background: var(--folio-card, rgba(154, 139, 98, 0.15)); }
.field-battle-ledger-cell { min-height: 98px; display: grid; align-content: center; gap: 4px; padding: 13px; background: var(--folio-card, rgba(6, 18, 11, 0.86)); }
.field-battle-ledger-cell.reserve { background: var(--folio-card, rgba(5, 14, 9, 0.9)); }
.field-battle-ledger-cell.occupied { border-left: 3px solid rgba(194, 145, 62, 0.66); background: var(--folio-card, linear-gradient(110deg, rgba(79, 48, 22, 0.78), rgba(6, 20, 12, 0.9))); }
.field-battle-ledger-cell > span { color: var(--folio-muted, #aeb9ad); font-size: 14px; }
.field-battle-ledger-cell > strong { overflow-wrap: anywhere; color: var(--folio-ink, #eee0bd); font-size: 16px; }
.field-battle-ledger-cell > small { color: var(--folio-muted, #c4c8bc); font-size: 14px; }
.field-battle-ledger-cell > em { color: var(--folio-muted, #e0c679); font-size: 14px; font-style: normal; }
.field-battle-ledger-cell > em.result-routed { color: var(--folio-muted, #d78c74); }
.field-battle-ledger-cell > i { color: var(--folio-ink, #89948b); font-size: 14px; font-style: normal; }
.field-battle-ledger > footer { display: grid; grid-template-columns: auto minmax(0, 1fr); gap: 13px; align-items: center; padding: 13px 17px; background: var(--folio-card, rgba(6, 13, 9, 0.54)); }
.field-battle-ledger.has-report-action > footer { grid-template-columns: auto minmax(0, 1fr) minmax(176px, auto); }
.field-battle-ledger > footer b { color: var(--folio-ink, #d6bd7a); font-size: 14px; }
.field-battle-ledger > footer span { color: var(--folio-muted, #c4c9bd); font-size: 14px; line-height: 1.55; }
.field-battle-report-action { min-height: 48px; display: grid; align-content: center; gap: 2px; padding: 7px 13px; color: var(--folio-ink, #172018); border: 1px solid #d7b969; background: var(--folio-card, linear-gradient(180deg, #e0c87f, #bd984f)); font: inherit; cursor: pointer; }
.field-battle-report-action b { color: var(--folio-ink, #211c10) !important; font-size: 15px; }
.field-battle-report-action small { color: var(--folio-muted, #514322); font-size: 14px; }
.field-battle-report-action.acknowledge { color: var(--folio-ink, #d8e4da); border-color: var(--folio-rule, rgba(105, 160, 126, 0.55)); background: var(--folio-card, #153021); }
.field-battle-report-action.acknowledge b { color: var(--folio-ink, #d8e4da) !important; }
.field-battle-report-action.acknowledge small { color: var(--folio-muted, #a8c2b0); }
.field-battle-report-action:disabled { cursor: not-allowed; opacity: 0.5; }
.field-battle-aftermath { display: grid; gap: 9px; padding: 14px 17px 16px; border-top: 1px solid rgba(172, 137, 70, 0.32); background: var(--folio-card, rgba(9, 17, 12, 0.92)); }
.field-battle-aftermath > header { display: flex; align-items: end; justify-content: space-between; gap: 12px; }
.field-battle-aftermath > header span { color: var(--folio-muted, #8fb19a); font-size: 14px; font-weight: 760; letter-spacing: 0.06em; }
.field-battle-aftermath > header h5 { margin: 3px 0 0; color: var(--folio-ink, #e4d5b2); font-size: 17px; }
.field-battle-aftermath > header > b { color: var(--folio-ink, #d4b66e); font-size: 14px; text-align: right; }
.field-battle-aftermath > p { margin: 0; color: var(--folio-muted, #bfc6ba); font-size: var(--ming-font-body, 16px); line-height: 1.55; }
.field-battle-aftermath > div { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; }
.field-battle-aftermath .system-action-seed { min-height: 48px; padding: 9px 12px; border-color: var(--folio-rule, rgba(120, 165, 134, 0.46)); background: var(--folio-card, #0d2117); }
.field-battle-aftermath .system-action-seed:hover,
.field-battle-aftermath .system-action-seed:focus-visible { background: var(--folio-hover, #173425); }
.field-battle-aftermath .system-action-seed span { font-size: 14px; }
.field-battle-aftermath .system-action-seed small { color: var(--folio-muted, #aebdad); font-size: var(--ming-font-small, 14px); }
.field-battle-search-planner { min-width: 0; border: 1px solid rgba(132, 177, 145, 0.5); background: var(--folio-card, #0a1811); }
.field-battle-search-planner > summary { min-height: 58px; display: grid; grid-template-columns: 36px minmax(0, 1fr) auto; align-items: center; gap: 10px; padding: 9px 12px; color: var(--folio-ink, #e5d8ba); list-style: none; cursor: pointer; }
.field-battle-search-planner > summary::-webkit-details-marker { display: none; }
.field-battle-search-planner > summary:hover,
.field-battle-search-planner > summary:focus-visible { background: var(--folio-hover, #12281c); outline: 1px solid rgba(153, 199, 166, 0.56); outline-offset: -1px; }
.field-battle-search-planner > summary > i { width: 34px; height: 34px; display: grid; place-items: center; color: var(--folio-ink, #b9d2c1); border: 1px solid rgba(142, 190, 157, 0.56); border-radius: 50%; font-family: var(--font-brush); font-size: 20px; font-style: normal; }
.field-battle-search-planner > summary > span { min-width: 0; display: grid; gap: 2px; }
.field-battle-search-planner > summary b { font-size: 15px; line-height: 1.25; }
.field-battle-search-planner > summary small { color: var(--folio-muted, #9fb5a6); font-size: var(--ming-font-small, 14px); line-height: 1.4; }
.field-battle-search-planner > summary em { color: var(--folio-muted, #c7aa68); font-size: var(--ming-font-small, 14px); font-style: normal; white-space: nowrap; }
.field-battle-search-planner > div { display: grid; gap: 10px; padding: 12px; border-top: 1px solid rgba(132, 177, 145, 0.28); background: var(--folio-card, #0d1e15); }
.field-battle-search-planner > div > p { margin: 0; color: var(--folio-muted, #bcc8bf); font-size: var(--ming-font-body, 16px); line-height: 1.58; }
.field-battle-search-planner label { display: grid; grid-template-columns: 88px minmax(0, 1fr); align-items: center; gap: 9px; }
.field-battle-search-planner label > span { color: var(--folio-muted, #d6bd7a); font-size: 14px; font-weight: 720; }
.field-battle-search-planner select { width: 100%; min-width: 0; min-height: 44px; padding: 8px 10px; color: var(--folio-ink, #e1d7bf); border: 1px solid rgba(188, 158, 91, 0.42); background: var(--folio-card, #07100c); font: inherit; font-size: 14px; }
.field-battle-search-planner dl { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 7px; margin: 0; }
.field-battle-search-planner dl > div { min-width: 0; display: grid; gap: 3px; padding: 8px 9px; border: 1px solid rgba(177, 148, 83, 0.25); background: var(--folio-card, #101912); }
.field-battle-search-planner dt { color: var(--folio-muted, #91aa9b); font-size: var(--ming-font-small, 14px); }
.field-battle-search-planner dd { margin: 0; color: var(--folio-ink, #dfcfaa); font-size: 14px; font-weight: 720; }
.field-battle-search-planner button { min-height: 50px; display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: center; gap: 10px; padding: 9px 12px; color: var(--folio-ink, #e6d8b6); border: 1px solid rgba(148, 193, 160, 0.58); background: var(--folio-card, #153324); text-align: left; cursor: pointer; }
.field-battle-search-planner button:hover,
.field-battle-search-planner button:focus-visible { background: var(--folio-hover, #204630); outline: 1px solid rgba(171, 217, 184, 0.52); }
.field-battle-search-planner button span { font-size: 15px; font-weight: 760; }
.field-battle-search-planner button small { color: var(--folio-muted, #afc2b5); font-size: var(--ming-font-small, 14px); text-align: right; }
.field-battle-care-planner { border-color: var(--folio-rule, rgba(186, 151, 83, 0.52)); background: var(--folio-card, #19160d); }
.field-battle-care-planner > summary:hover,
.field-battle-care-planner > summary:focus-visible { background: var(--folio-hover, #292314); }
.field-battle-care-planner > summary > i { color: var(--folio-ink, #dbc17e); border-color: var(--folio-rule, rgba(203, 170, 93, 0.62)); }
.field-battle-care-planner > div { border-top-color: var(--folio-rule, rgba(190, 153, 78, 0.3)); background: var(--folio-card, #1d1a10); }
.field-battle-care-planner button { color: var(--folio-ink, #eadcb9); border-color: var(--folio-rule, rgba(205, 172, 100, 0.62)); background: var(--folio-card, #3a3018); }
.field-battle-care-planner button:hover,
.field-battle-care-planner button:focus-visible { background: var(--folio-hover, #4b3d1d); }
.field-battle-care-rotations { display: grid; gap: 6px; margin: 0; padding: 0; list-style: none; }
.field-battle-care-rotations li { min-width: 0; display: grid; grid-template-columns: minmax(96px, auto) minmax(0, 1fr); gap: 8px; padding: 8px 9px; border: 1px solid rgba(185, 151, 82, 0.28); background: var(--folio-card, #12140f); }
.field-battle-care-rotations b { color: var(--folio-ink, #dec990); font-size: 14px; }
.field-battle-care-rotations span { color: var(--folio-muted, #bfc5b7); font-size: var(--ming-font-small, 14px); line-height: 1.5; }
.field-battle-care-status > i { color: var(--folio-ink, #d9bf7c); border-color: var(--folio-rule, rgba(196, 160, 82, 0.52)); }
.field-battle-care-status > div > small { color: var(--folio-muted, #b8aa87); font-size: var(--ming-font-small, 14px); line-height: 1.45; }
.field-battle-search-status { min-width: 0; display: grid; grid-template-columns: 38px minmax(0, 1fr) auto; align-items: center; gap: 10px; padding: 10px 12px; border: 1px solid rgba(134, 173, 144, 0.4); background: var(--folio-card, #0d1a13); }
.field-battle-search-status > i { width: 36px; height: 36px; display: grid; place-items: center; color: var(--folio-ink, #bbd1c0); border: 1px solid rgba(133, 179, 148, 0.48); border-radius: 50%; font-family: var(--font-brush); font-size: 20px; font-style: normal; }
.field-battle-search-status > div { min-width: 0; display: grid; gap: 2px; }
.field-battle-search-status > div > span { color: var(--folio-muted, #8fb19a); font-size: var(--ming-font-small, 14px); font-weight: 720; }
.field-battle-search-status > div > b { color: var(--folio-ink, #e0d2b3); font-size: 15px; }
.field-battle-search-status p { margin: 0; color: var(--folio-muted, #b9c2ba); font-size: var(--ming-font-body, 16px); line-height: 1.5; }
.field-battle-search-status ul { margin: 5px 0 0; padding-left: 18px; color: var(--folio-ink, #c3b99f); font-size: var(--ming-font-small, 14px); line-height: 1.5; }
.field-battle-search-status > button { min-height: 48px; display: grid; gap: 2px; padding: 8px 11px; color: var(--folio-ink, #d9c792); border: 1px solid rgba(182, 150, 78, 0.44); background: var(--folio-card, #201d12); cursor: pointer; }
.field-battle-search-status > button span { font-size: 14px; font-weight: 760; }
.field-battle-search-status > button small { color: var(--folio-muted, #aaa38f); font-size: var(--ming-font-small, 14px); }
.field-battle-returnees { display: grid; gap: 9px; padding: 12px; border: 1px solid rgba(190, 151, 75, 0.4); background: var(--folio-card, #12150f); }
.field-battle-returnees > header { display: flex; align-items: end; justify-content: space-between; gap: 12px; }
.field-battle-returnees > header span { color: var(--folio-muted, #bca56d); font-size: var(--ming-font-small, 14px); font-weight: 760; letter-spacing: 0.05em; }
.field-battle-returnees > header h5 { margin: 2px 0 0; color: var(--folio-ink, #ead9b5); font-size: 16px; }
.field-battle-returnees > header > b { color: var(--folio-ink, #93b49e); font-size: 14px; }
.field-battle-returnees > div { display: grid; gap: 8px; }
.field-battle-returnees article { min-width: 0; display: grid; grid-template-columns: 38px minmax(0, 1fr) minmax(156px, auto); align-items: center; gap: 10px; padding: 11px; border-left: 3px solid #a98445; background: var(--folio-card, #0b1510); }
.field-battle-returnees article.status-verified { border-left-color: var(--folio-rule, #7ea88d); }
.field-battle-returnees article.status-reenrolled { border-left-color: var(--folio-rule, #6aa98b); background: var(--folio-card, #0c1912); }
.field-battle-returnees article > i { width: 36px; height: 36px; display: grid; place-items: center; color: var(--folio-ink, #d4bd80); border: 1px solid currentColor; border-radius: 50%; font-family: var(--font-brush); font-size: 19px; font-style: normal; }
.field-battle-returnees article > div { min-width: 0; }
.field-battle-returnees article span { color: var(--folio-muted, #9eae9e); font-size: var(--ming-font-small, 14px); font-weight: 720; }
.field-battle-returnees article h6 { margin: 2px 0; color: var(--folio-ink, #eadfc4); font-size: 17px; }
.field-battle-returnees article p { margin: 0; color: var(--folio-muted, #bfc7ba); font-size: var(--ming-font-body, 16px); line-height: 1.5; }
.field-battle-returnees article ul { margin: 5px 0 0; padding-left: 18px; color: var(--folio-ink, #b8ad93); font-size: var(--ming-font-small, 14px); line-height: 1.45; }
.field-battle-returnees article > button,
.field-battle-returnees article > aside { min-height: 48px; min-width: 156px; display: grid; align-content: center; gap: 2px; padding: 8px 11px; text-align: left; }
.field-battle-returnees article > button { color: var(--folio-ink, #ead391); border: 1px solid rgba(194, 158, 77, 0.55); background: var(--folio-card, #231f12); cursor: pointer; }
.field-battle-returnees article > button:hover,
.field-battle-returnees article > button:focus-visible { border-color: var(--folio-rule, #d1b46e); background: var(--folio-hover, #302916); }
.field-battle-returnees article > button span,
.field-battle-returnees article > aside b { color: inherit; font-size: 14px; font-weight: 800; }
.field-battle-returnees article > button small,
.field-battle-returnees article > aside small { color: var(--folio-muted, #aeb5a7); font-size: var(--ming-font-small, 14px); }
.field-battle-returnees article > aside { border: 1px solid rgba(120, 159, 132, 0.35); background: var(--folio-card, #101b14); }
.field-battle-returnees > footer { color: var(--folio-ink, #aeb7aa); font-size: var(--ming-font-small, 14px); line-height: 1.55; }
.field-battle-search-blocked { min-height: 58px; display: grid; grid-template-columns: 36px minmax(0, 1fr); align-items: center; gap: 10px; padding: 10px 12px; border: 1px solid rgba(164, 79, 68, 0.42); background: var(--folio-danger-surface, #201310); }
.field-battle-search-blocked > i { color: var(--folio-danger, #d08371); font-size: 15px; font-style: normal; }
.field-battle-search-blocked b { color: var(--folio-danger, #d9c4a6); font-size: 14px; }
.field-battle-search-blocked p { margin: 2px 0 0; color: var(--folio-danger, #bcaaa0); font-size: var(--ming-font-body, 16px); line-height: 1.5; }

@media (max-width: 900px) {
  .field-battle-planner-body { grid-template-columns: 1fr; }
  .field-battle-board { width: 100%; }
  .field-battle-ledger-situation { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .field-battle-ledger-situation > p { grid-column: 1 / -1; }
}

@media (max-width: 620px) {
  .field-battle-planner-backdrop { align-items: start; padding: 0; }
  .field-battle-planner-panel { width: 100%; min-height: 100dvh; max-height: none; border-width: 0; border-top-width: 3px; }
  .field-battle-planner-heading { grid-template-columns: 1fr; gap: 14px; padding: 19px 16px; }
  .field-battle-planner-heading h2 { font-size: 38px; }
  .field-battle-planner-heading p { font-size: var(--ming-font-body, 16px); }
  .field-battle-planner-heading > aside { grid-template-columns: 48px minmax(0, 1fr); }
  .field-battle-planner-heading > aside > i { width: 44px; height: 44px; font-size: 25px; }
  .field-battle-planner-body { gap: 16px; padding: 15px 12px; }
  .field-battle-orders { gap: 11px; padding: 11px; }
  .field-battle-orders::after { right: 8px; font-size: 86px; }
  .field-battle-orders-heading { grid-template-columns: 1fr; gap: 12px; margin: -11px -11px 1px; padding: 15px 14px 13px; }
  .field-battle-orders-heading h3 { font-size: 23px; }
  .field-battle-orders-heading ol { justify-content: space-between; }
  .field-battle-orders-heading li { gap: 3px; }
  .field-battle-orders-heading li + li::before { margin-right: 1px; }
  .field-battle-situation > header { grid-template-columns: 1fr; gap: 3px; }
  .field-battle-situation > header b { white-space: normal; }
  .field-battle-situation article { min-height: 66px; grid-template-columns: 29px minmax(0, 1fr); padding: 8px; }
  .field-battle-board { padding: 12px 8px 14px; background-position: 54% center; }
  .field-battle-board-grid { gap: 5px; padding: 5px; }
  .field-battle-cell { min-height: 102px; padding: 9px 4px; }
  .field-battle-cell.reserve { min-height: 92px; }
  .field-battle-cell-order { grid-template-columns: 1fr; grid-template-areas: 'seal' 'name' 'detail'; justify-items: center; gap: 3px; width: 100%; padding: 6px 3px; text-align: center; }
  .field-battle-cell-order > i { width: 27px; height: 31px; font-size: 16px; }
  .field-battle-cell-order strong { font-size: 14px; }
  .field-battle-cell-order small { font-size: 14px; }
  .field-battle-command-scope > header,
  .field-battle-phase-plan > header { align-items: flex-start; flex-direction: column; }
  .field-battle-command-scope > header small,
  .field-battle-phase-plan > header small { text-align: left; }
  .field-battle-command-scope > div,
  .field-battle-phase-plan article > div { grid-template-columns: 1fr; }
  .field-battle-phase-plan article > div > span,
  .field-battle-phase-plan article p,
  .field-battle-phase-plan article em { grid-column: 1; }
  .field-battle-objective,
  .field-battle-command,
  .field-battle-order-card { grid-template-columns: 1fr; }
  .field-battle-order-list > header { align-items: flex-start; flex-direction: column; gap: 2px; }
  .field-battle-order-card > div { grid-template-columns: 1fr 1fr; }
  .field-battle-planner-actions { grid-template-columns: 1fr; gap: 10px; padding: 11px 12px calc(11px + env(safe-area-inset-bottom)); }
  .field-battle-planner-actions > div { display: grid; grid-template-columns: 0.8fr 1.2fr; }
  .field-battle-planner-actions button,
  .field-battle-planner-actions button.primary { min-width: 0; min-height: 52px; }
  .field-battle-ledger-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .field-battle-ledger-situation { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .field-battle-ledger-situation > div:nth-child(3) { grid-column: 1 / -1; }
  .field-battle-ledger-situation > p { grid-column: 1 / -1; }
  .field-battle-ledger-phases > div { grid-template-columns: 1fr; }
  .field-battle-command-relay > header { align-items: flex-start; flex-direction: column; }
  .field-battle-command-relay > header > small { max-width: none; text-align: left; }
  .field-battle-command-relay > div { grid-template-columns: 1fr; }
  .field-battle-relay-resend-control { grid-template-columns: 1fr; }
  .field-battle-relay-route-actions { grid-template-columns: 1fr; }
  .field-battle-relay-signal-control { padding: 10px; }
  .field-battle-relay-signal-control select { min-height: 52px; font-size: 16px; }
  .field-battle-relay-resend button { min-height: 52px; }
  .field-battle-ledger > footer { grid-template-columns: 1fr; gap: 3px; }
  .field-battle-ledger.has-report-action > footer { grid-template-columns: 1fr; gap: 8px; }
  .field-battle-report-action { min-height: 52px; margin-top: 3px; }
  .field-battle-aftermath { padding: 13px 14px 15px; }
  .field-battle-aftermath > header { align-items: start; flex-direction: column; gap: 4px; }
  .field-battle-aftermath > header > b { text-align: left; }
  .field-battle-aftermath > div { grid-template-columns: 1fr; }
  .field-battle-aftermath .system-action-seed { min-height: 52px; }
  .field-battle-search-planner > summary { grid-template-columns: 34px minmax(0, 1fr); }
  .field-battle-search-planner > summary em { grid-column: 2; }
  .field-battle-search-planner label { grid-template-columns: 1fr; gap: 5px; }
  .field-battle-search-planner dl { grid-template-columns: 1fr; }
  .field-battle-search-planner button { grid-template-columns: 1fr; }
  .field-battle-search-planner button small { text-align: left; }
  .field-battle-care-rotations li { grid-template-columns: 1fr; }
  .field-battle-search-status { grid-template-columns: 36px minmax(0, 1fr); }
  .field-battle-search-status > button { grid-column: 1 / -1; }
  .field-battle-returnees > header { align-items: start; flex-direction: column; gap: 3px; }
  .field-battle-returnees article { grid-template-columns: 36px minmax(0, 1fr); }
  .field-battle-returnees article > button,
  .field-battle-returnees article > aside { grid-column: 1 / -1; width: 100%; }
}

/* 恒裕钱铺复用市集卷的结构、色阶和交互逻辑；铜色只标示行情，不另造一套“金融大堂”。 */
.money-house-page.market-shop-page {
  gap: 13px;
  padding: 14px;
  color: var(--folio-ink, #d9ccb0);
  border: 1px solid rgba(190, 153, 78, 0.4);
  background: var(--folio-card, #08100c);
  font-size: 14px;
}

.money-house-page .money-house-hero {
  min-height: 174px;
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(330px, 0.72fr) minmax(148px, auto);
  align-items: end;
  gap: 13px;
  padding: 16px;
  border: 1px solid rgba(191, 155, 80, 0.3);
  border-radius: 0;
  background: #0a120e;
  box-shadow: none;
  color: #d9ccb0;
  isolation: isolate;
}

.money-house-page .money-house-hero::before {
  position: absolute;
  z-index: -2;
  inset: 0;
  background: var(--market-art) 82% 54% / cover no-repeat;
  content: '';
  opacity: 0.28;
}

.money-house-page .money-house-hero::after {
  position: absolute;
  z-index: -1;
  inset: 0;
  background: rgba(5, 11, 8, 0.82);
  content: '';
}

.money-house-page .money-house-hero-copy {
  position: static;
  z-index: auto;
  width: auto;
  max-width: 570px;
  padding: 0;
}

.money-house-page .money-house-hero-copy > span,
.money-house-page .money-house-rate-note span,
.money-house-page .money-house-live-quote header span,
.money-house-page .money-house-receipt > span,
.money-house-page .money-house-rate-columns header span {
  color: #caa75e;
  font-size: var(--ming-font-small, 14px);
  font-weight: 780;
  letter-spacing: 0.08em;
}

.money-house-page .money-house-hero h3 {
  margin: 5px 0 4px;
  color: #efe0bb;
  font-family: var(--font-brush);
  font-size: clamp(27px, 2.4vw, 36px);
  font-weight: 400;
}

.money-house-page .money-house-hero p {
  max-width: 520px;
  margin: 0;
  color: #d0c2a4;
  font-size: var(--ming-font-body, 16px);
  line-height: 1.65;
}

.money-house-page .money-house-hero dl {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 1px;
  margin: 0;
  background: rgba(190, 153, 78, 0.22);
}

.money-house-page .money-house-hero dl > div {
  min-width: 0;
  padding: 9px;
  background: #0b130e;
}

.money-house-page .money-house-hero dt { color: #8fa598; font-size: var(--ming-font-small, 14px); }
.money-house-page .money-house-hero dd { margin: 2px 0 0; color: #e3d1a7; font-size: var(--ming-font-small, 14px); line-height: 1.35; }

.money-house-page .money-house-hero > button {
  position: static;
  z-index: auto;
  right: auto;
  bottom: auto;
  display: grid;
  min-height: 48px;
  padding: 8px 11px;
  border: 1px solid rgba(103, 164, 133, 0.5);
  border-radius: 0;
  background: #14271d;
  box-shadow: none;
  color: #ead8aa;
  text-align: left;
}

.money-house-page .money-house-hero > button small,
.money-house-page .money-house-action small {
  margin-top: 3px;
  color: #9fb3a6;
  font-size: var(--ming-font-small, 14px);
  opacity: 1;
}

.money-house-rate-note {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(260px, auto);
  align-items: center;
  gap: 12px;
  padding: 11px 13px;
  border-left: 4px solid #689a7f;
  background: #0d1b14;
}

.money-house-rate-note strong { display: block; margin-top: 3px; color: #e3d3ad; font-size: 14px; }
.money-house-rate-note p { margin: 0; color: #a9baad; font-size: var(--ming-font-body, 16px); line-height: 1.55; }

.money-house-page .money-house-live-quote {
  grid-template-columns: minmax(145px, 0.7fr) auto minmax(220px, 1fr) minmax(190px, auto);
  gap: 12px;
  padding: 14px;
  border: 1px solid rgba(104, 164, 133, 0.48);
  border-left-width: 1px;
  border-radius: 0;
  background: #102219;
  color: #d9ccb0;
}

.money-house-page .money-house-live-quote.is-stale {
  border-color: rgba(170, 91, 68, 0.56);
  background: #241511;
  filter: none;
}

.money-house-page .money-house-live-quote header b { color: #edddb7; }
.money-house-page .money-house-live-quote p { color: #b8ad96; font-size: var(--ming-font-body, 16px); }
.money-house-page .money-house-quote-equation strong { color: #e2c26f; font-size: 22px; }
.money-house-page .money-house-quote-equation i { color: #8eb39d; }

.money-house-page .money-house-receipt {
  padding: 11px 13px;
  border: 0;
  border-left: 4px solid #689a7f;
  border-radius: 0;
  background: #0d1b14;
}

.money-house-page .money-house-receipt b { color: #e3d3ad; }
.money-house-page .money-house-receipt small { color: #a9baad; font-size: var(--ming-font-small, 14px); }

.money-house-exchange-ledger { gap: 11px; }
.money-house-exchange-ledger > header { align-items: end; }
.money-house-exchange-ledger > header small { max-width: 430px; text-align: right; }

.money-house-page .money-house-balances {
  grid-template-columns: minmax(0, 1fr) minmax(0, 1fr) minmax(230px, 1.3fr);
  gap: 8px;
}

.money-house-page .money-house-balances article {
  min-height: 82px;
  padding: 10px;
  border: 1px solid rgba(107, 155, 130, 0.28);
  border-radius: 0;
  background: #07100c;
  box-shadow: none;
}

.money-house-page .money-house-balances span,
.money-house-page .money-house-balances small { color: #9fae9f; font-size: var(--ming-font-small, 14px); }
.money-house-page .money-house-balances strong { color: #e3d3ae; font-size: 18px; }
.money-house-page .money-house-reserve { background: #0b1711 !important; }
.money-house-page .money-house-reserve b { color: #dfc990; font-size: 15px; }

.currency-art {
  flex: 0 0 56px;
  width: 56px;
  height: 56px;
  object-fit: contain;
  filter: drop-shadow(0 4px 6px rgba(0, 0, 0, 0.32));
}

.money-house-page .money-house-rate-columns { gap: 8px; }

.money-house-account-ledger { gap: 11px; }
.money-house-account-ledger > header { align-items: end; }
.money-house-account-ledger > header span,
.money-house-account-columns header span,
.money-house-account-receipt > span {
  color: #caa75e;
  font-size: var(--ming-font-small, 14px);
  font-weight: 780;
  letter-spacing: 0.08em;
}
.money-house-account-ledger > header small { max-width: 390px; color: #9fae9f; font-size: var(--ming-font-small, 14px); text-align: right; }
.money-house-account-summary {
  display: grid;
  grid-template-columns: minmax(250px, 0.8fr) minmax(0, 1.2fr);
  gap: 8px;
}
.money-house-account-summary > article,
.money-house-account-summary > aside {
  min-width: 0;
  min-height: 84px;
  padding: 11px;
  border: 1px solid rgba(107, 155, 130, 0.28);
  background: #07100c;
}
.money-house-account-summary > article { display: flex; align-items: center; gap: 11px; }
.money-house-account-summary > article > div { min-width: 0; display: grid; gap: 2px; }
.money-house-account-summary span,
.money-house-account-summary small,
.money-house-account-summary p { color: #9fae9f; font-size: var(--ming-font-small, 14px); line-height: 1.5; }
.money-house-account-summary strong { color: #e3d3ae; font-size: 20px; }
.money-house-account-summary > aside { display: grid; align-content: center; gap: 3px; background: #0b1711; }
.money-house-account-summary > aside b { color: #dfc990; font-size: 15px; }
.money-house-account-summary > aside p { margin: 0; }
.money-house-account-receipt {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto minmax(260px, 1fr);
  align-items: center;
  gap: 10px;
  padding: 11px 13px;
  border-left: 4px solid #689a7f;
  background: #0d1b14;
}
.money-house-account-receipt b { color: #e3d3ad; }
.money-house-account-receipt small { color: #a9baad; font-size: var(--ming-font-small, 14px); text-align: right; }
.money-house-account-history {
  border: 1px solid rgba(107, 155, 130, 0.28);
  background: #08130e;
}
.money-house-account-history > summary {
  min-height: 48px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  padding: 9px 12px;
  color: #e3d3ad;
  background: #0d1b14;
  cursor: pointer;
  list-style: none;
}
.money-house-account-history > summary::-webkit-details-marker { display: none; }
.money-house-account-history > summary > span { min-width: 0; display: grid; gap: 2px; }
.money-house-account-history > summary b { font-size: 15px; }
.money-house-account-history > summary small { color: #9fae9f; font-size: var(--ming-font-small, 14px); line-height: 1.4; }
.money-house-account-history > summary em {
  flex: 0 0 auto;
  min-width: 82px;
  padding: 6px 9px;
  color: #caa75e;
  border: 1px solid rgba(190, 153, 78, 0.38);
  font-size: var(--ming-font-small, 14px);
  font-style: normal;
  text-align: center;
}
.money-house-account-history > summary i { font-style: normal; }
.money-house-account-history > summary .open-label { display: none; }
.money-house-account-history[open] > summary .closed-label { display: none; }
.money-house-account-history[open] > summary .open-label { display: inline; }
.money-house-account-history ol { display: grid; gap: 1px; margin: 0; padding: 1px 0 0; list-style: none; background: rgba(107, 155, 130, 0.2); }
.money-house-account-history li {
  min-width: 0;
  display: grid;
  grid-template-columns: minmax(260px, 1fr) minmax(135px, auto) minmax(150px, auto);
  align-items: center;
  gap: 12px;
  padding: 11px 12px;
  background: #07100c;
}
.money-house-account-history li > div { min-width: 0; display: grid; gap: 3px; }
.money-house-account-history time { color: #d8c9aa; font-size: var(--ming-font-small, 14px); line-height: 1.5; }
.money-house-account-history li small { color: #91a396; font-size: var(--ming-font-small, 14px); line-height: 1.45; }
.money-house-account-history li > strong {
  padding: 5px 8px;
  color: #e2c26f;
  border-left: 3px solid #b58e42;
  background: rgba(87, 64, 25, 0.26);
  font-size: 14px;
  white-space: nowrap;
}
.money-house-account-history li > strong.is-withdraw {
  color: #bdd8c8;
  border-left-color: #689a7f;
  background: rgba(41, 78, 60, 0.34);
}
.money-house-account-history li > span { display: grid; gap: 2px; text-align: right; }
.money-house-account-history li > span b { color: #dfc990; font-size: 15px; }
.money-house-account-history-empty {
  min-height: 58px;
  display: grid;
  grid-template-columns: auto auto minmax(0, 1fr);
  align-items: center;
  gap: 10px;
  padding: 10px 12px;
  border: 1px dashed rgba(107, 155, 130, 0.3);
  background: #08130e;
}
.money-house-account-history-empty span,
.money-house-account-history-empty small { color: #9fae9f; font-size: var(--ming-font-small, 14px); }
.money-house-account-history-empty b { color: #d8c9aa; font-size: 14px; }
.money-house-account-columns {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 8px;
}
.money-house-account-columns > article {
  min-width: 0;
  padding: 12px;
  border: 1px solid rgba(177, 145, 78, 0.3);
  background: #07100c;
}
.money-house-account-columns > article > header { margin-bottom: 11px; }
.money-house-account-columns h4 { margin: 3px 0; color: #ead9b4; font-size: 18px; }
.money-house-account-columns header small { color: #9fae9f; font-size: var(--ming-font-small, 14px); }

.money-house-custom-editor {
  display: grid;
  grid-template-columns: minmax(0, 0.72fr) minmax(148px, 1fr);
  gap: 8px;
  margin: 0 0 10px;
  padding: 10px;
  border: 1px solid rgba(190, 153, 78, 0.42);
  background: linear-gradient(135deg, rgba(50, 42, 23, 0.7), rgba(9, 21, 15, 0.95));
}

.money-house-custom-editor > label {
  min-width: 0;
  display: grid;
  align-content: center;
  gap: 2px;
}

.money-house-custom-editor > label span { color: #ead9b4; font-size: 14px; font-weight: 780; }
.money-house-custom-editor > label small { color: #9fae9f; font-size: var(--ming-font-small, 14px); line-height: 1.4; }

.money-house-custom-field {
  min-width: 0;
  min-height: 48px;
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  align-items: center;
  border: 1px solid rgba(203, 172, 104, 0.58);
  background: #06100b;
}

.money-house-custom-editor input {
  min-width: 0;
  width: 100%;
  height: 46px;
  padding: 0 10px;
  border: 0;
  outline: 0;
  background: transparent;
  color: #f0dfb2;
  font: 700 16px/1.2 var(--font-body);
  font-size: 16px;
}

.money-house-custom-editor input::placeholder { color: #718078; font-weight: 500; }
.money-house-custom-editor input:focus-visible { box-shadow: inset 0 0 0 2px rgba(193, 159, 84, 0.6); }
.money-house-custom-editor input[aria-invalid="true"] { color: #e7aaa1; }
.money-house-custom-field > span { padding: 0 10px; color: #caa75e; font-size: 14px; font-weight: 780; }

.money-house-custom-editor [data-money-house-custom-preview] {
  grid-column: 1 / -1;
  min-width: 0;
  min-height: 76px;
  display: grid;
  align-content: center;
  gap: 3px;
  padding: 9px 10px;
  border-left: 3px solid #6f806f;
  background: rgba(5, 14, 9, 0.78);
}

.money-house-custom-editor [data-money-house-custom-preview] > span {
  color: #9fae9f;
  font-size: var(--ming-font-small, 14px);
  font-weight: 780;
  letter-spacing: 0.06em;
}
.money-house-custom-editor [data-money-house-custom-preview] > b { color: #d8c9aa; font-size: 14px; line-height: 1.45; }
.money-house-custom-editor [data-money-house-custom-preview] > small { color: #9fae9f; font-size: var(--ming-font-small, 14px); line-height: 1.45; }
.money-house-custom-editor [data-money-house-custom-preview].is-ready { border-left-color: #78a98d; background: rgba(18, 43, 31, 0.82); }
.money-house-custom-editor [data-money-house-custom-preview].is-ready > span,
.money-house-custom-editor [data-money-house-custom-preview].is-ready > b { color: #cce0d2; }
.money-house-custom-editor [data-money-house-custom-preview].is-blocked { border-left-color: #a85f52; background: rgba(58, 24, 20, 0.62); }
.money-house-custom-editor [data-money-house-custom-preview].is-blocked > span,
.money-house-custom-editor [data-money-house-custom-preview].is-blocked > b { color: #e7aaa1; }

.money-house-custom-editor [data-money-house-custom-confirm] {
  grid-column: 1 / -1;
  min-height: 48px;
  display: grid;
  grid-template-columns: auto minmax(0, 1fr);
  align-items: center;
  gap: 10px;
  padding: 8px 11px;
  border: 1px solid rgba(112, 169, 139, 0.58);
  background: #173326;
  color: #f0dfb2;
  text-align: left;
}
.money-house-custom-editor [data-money-house-custom-confirm] b { font-size: 14px; white-space: nowrap; }
.money-house-custom-editor [data-money-house-custom-confirm] small { color: #a9baad; font-size: var(--ming-font-small, 14px); text-align: right; }
.money-house-custom-editor [data-money-house-custom-confirm]:disabled { border-color: rgba(112, 128, 116, 0.28); background: #101b15; color: #77847c; }
.money-house-custom-editor [data-money-house-custom-confirm]:disabled small { color: #77847c; }

.money-house-page .money-house-rate-columns > article {
  padding: 12px;
  border: 1px solid rgba(177, 145, 78, 0.3);
  border-radius: 0;
  background: #07100c;
  box-shadow: none;
}

.money-house-page .money-house-rate-columns > article > header { margin-bottom: 11px; }
.money-house-page .money-house-rate-columns h4 { color: #ead9b4; font-size: 18px; }
.money-house-page .money-house-rate-columns header small { color: #9fae9f; font-size: var(--ming-font-small, 14px); }

.money-house-page .money-house-action {
  min-height: 48px;
  padding: 8px 11px;
  border: 1px solid rgba(103, 164, 133, 0.5);
  border-radius: 0;
  background: #14271d;
  color: #ead8aa;
  box-shadow: none;
}

.money-house-page .money-house-action:not(:disabled):hover,
.money-house-page .money-house-action:not(:disabled):focus-visible {
  border-color: #9fc4ae;
  background: #1a3226;
  box-shadow: none;
  transform: none;
}

.money-house-page .money-house-accept {
  border-color: rgba(190, 153, 78, 0.62);
  background: #29351f;
  color: #f0dfb2;
  text-align: left;
}

.money-house-page .money-house-boundary {
  align-items: baseline;
  gap: 14px;
  padding: 11px 13px;
  border-radius: 0;
  background: #0b1711;
  color: #a9baad;
}

.money-house-page .money-house-boundary b { color: #d9c493; }
.money-house-page .money-house-boundary p { color: #a9baad; font-size: var(--ming-font-body, 16px); }

@media (max-width: 980px) {
  .money-house-page .money-house-hero { grid-template-columns: minmax(0, 1fr) minmax(300px, 0.9fr); }
  .money-house-page .money-house-hero > button { grid-column: 2; }
  .money-house-page .money-house-live-quote { grid-template-columns: minmax(145px, 0.7fr) auto minmax(220px, 1fr); }
  .money-house-page .money-house-live-quote > button { grid-column: 1 / -1; }
}

@media (max-width: 760px) {
  .money-house-page.market-shop-page { gap: 10px; padding: 9px; }
  .money-house-page .money-house-hero { min-height: 0; grid-template-columns: 1fr; padding: 13px; }
  .money-house-page .money-house-hero::before { background-position: 70% center; opacity: 0.38; }
  .money-house-page .money-house-hero::after { background: rgba(8, 8, 5, 0.84); }
  .money-house-page .money-house-hero-copy { width: auto; padding: 0; }
  .money-house-page .money-house-hero p { display: none; }
  .money-house-page .money-house-hero > button { grid-column: 1; width: 100%; }
  .money-house-rate-note { grid-template-columns: 1fr; }
  .money-house-page .money-house-live-quote { grid-template-columns: 1fr; }
  .money-house-page .money-house-live-quote > button { grid-column: 1; }
  .money-house-page .money-house-balances { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .money-house-page .money-house-reserve { grid-column: 1 / -1; }
  .money-house-page .money-house-rate-columns { grid-template-columns: 1fr; }
  .money-house-account-summary,
  .money-house-account-columns { grid-template-columns: 1fr; }
  .money-house-account-receipt { grid-template-columns: 1fr; }
  .money-house-account-receipt small { text-align: left; }
  .money-house-account-history > summary { align-items: stretch; }
  .money-house-account-history li { grid-template-columns: minmax(0, 1fr) auto; gap: 8px 10px; }
  .money-house-account-history li > div { grid-column: 1 / -1; }
  .money-house-account-history li > span { text-align: right; }
  .money-house-account-history-empty { grid-template-columns: auto 1fr; }
  .money-house-account-history-empty small { grid-column: 1 / -1; }
  .money-house-exchange-ledger > header { align-items: start; flex-direction: column; }
  .money-house-exchange-ledger > header small { text-align: left; }
  .money-house-account-ledger > header { align-items: start; flex-direction: column; }
  .money-house-account-ledger > header small { text-align: left; }
  .money-house-custom-editor { grid-template-columns: 1fr; }
  .money-house-custom-editor [data-money-house-custom-preview],
  .money-house-custom-editor [data-money-house-custom-confirm] { grid-column: 1; }
}

@media (max-width: 420px) {
  .money-house-page .money-house-hero dl { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .money-house-page .money-house-hero dl > div:first-child { grid-column: 1 / -1; }
  .money-house-page .money-house-rate-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .money-house-custom-editor [data-money-house-custom-confirm] { grid-template-columns: 1fr; gap: 2px; }
  .money-house-custom-editor [data-money-house-custom-confirm] small { text-align: left; }
  .currency-art { flex-basis: 48px; width: 48px; height: 48px; }
}

/* 炉前锻制：把实料、工钱、工时和取件分成一眼可核的委托笺。 */
.ironwork-forge-catalog {
  min-width: 0;
  display: grid;
  gap: 12px;
  padding: 14px;
  border: 1px solid rgba(177, 137, 69, 0.42);
  background: var(--folio-card, linear-gradient(145deg, rgba(31, 23, 13, 0.96), rgba(8, 14, 10, 0.98)));
}
.ironwork-forge-catalog > header {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  align-items: start;
  gap: 5px 14px;
  padding: 1px 2px 12px;
  border-bottom: 1px solid rgba(183, 142, 71, 0.32);
}
.ironwork-forge-catalog > header span { color: var(--folio-muted, #c7a45c); font-size: var(--ming-font-small, 14px); font-weight: 800; letter-spacing: 0.07em; }
.ironwork-forge-catalog > header h4 { margin: 4px 0 0; color: var(--folio-ink, #edddb6); font-family: var(--font-brush); font-size: 27px; font-weight: 400; }
.ironwork-forge-catalog > header em { padding: 6px 9px; color: var(--folio-muted, #d8c593); border: 1px solid rgba(188, 147, 73, 0.42); background: var(--folio-card, #18130c); font-size: var(--ming-font-small, 14px); font-style: normal; font-weight: 760; }
.ironwork-forge-catalog > header p { grid-column: 1 / -1; margin: 2px 0 0; color: var(--folio-muted, #aeb8ae); font-size: var(--ming-font-body, 16px); line-height: 1.65; }
.ironwork-forge-list { min-width: 0; display: grid; gap: 12px; }
.ironwork-forge-catalog > footer { color: var(--folio-ink, #a7b2a8); font-size: var(--ming-font-small, 14px); line-height: 1.65; }
.ironwork-forge-panel {
  min-width: 0;
  display: grid;
  grid-template-columns: minmax(230px, 0.34fr) minmax(0, 1fr);
  overflow: hidden;
  border: 1px solid rgba(194, 151, 76, 0.54);
  background: var(--folio-card, #0b120e);
  box-shadow: inset 4px 0 #9a6d32, 0 10px 24px rgba(0, 0, 0, 0.22);
}
.ironwork-forge-panel.is-ready,
.ironwork-forge-panel.is-open { border-color: var(--folio-rule, rgba(104, 166, 134, 0.58)); box-shadow: inset 4px 0 #5f9a78, 0 10px 24px rgba(0, 0, 0, 0.22); }
.ironwork-forge-panel.is-blocked { border-color: var(--folio-rule, rgba(160, 91, 67, 0.5)); box-shadow: inset 4px 0 #8d4f40; }
.ironwork-forge-panel > figure {
  position: relative;
  min-height: 300px;
  margin: 0;
  display: grid;
  place-items: center;
  overflow: hidden;
  border-right: 1px solid rgba(194, 151, 76, 0.34);
  background: radial-gradient(circle at 50% 42%, rgba(182, 124, 51, 0.24), transparent 46%), #080c09;
}
.ironwork-forge-panel > figure::before {
  content: '';
  position: absolute;
  inset: 14px;
  border: 1px solid rgba(216, 177, 98, 0.22);
  box-shadow: inset 0 0 0 7px rgba(6, 10, 8, 0.72);
}
.ironwork-forge-panel > figure img {
  position: relative;
  z-index: 1;
  width: min(78%, 230px);
  aspect-ratio: 1;
  object-fit: contain;
  filter: drop-shadow(0 20px 24px rgba(0, 0, 0, 0.54));
}
.ironwork-forge-panel figcaption {
  position: absolute;
  z-index: 2;
  inset: auto 14px 14px;
  display: grid;
  gap: 4px;
  padding: 10px 12px;
  border-left: 4px solid #b6813e;
  background: rgba(7, 13, 10, 0.94);
}
.ironwork-forge-panel figcaption span { color: #d0ad62; font-size: var(--ming-font-small, 14px); font-weight: 800; letter-spacing: 0.06em; }
.ironwork-forge-panel figcaption b { color: #e5d5b1; font-size: 14px; line-height: 1.45; }
.ironwork-forge-copy { min-width: 0; display: grid; align-content: start; gap: 12px; padding: 17px; }
.ironwork-forge-copy > header { display: flex; align-items: flex-start; justify-content: space-between; gap: 12px; }
.ironwork-forge-copy > header span { color: var(--folio-muted, #c8a55b); font-size: var(--ming-font-small, 14px); font-weight: 800; letter-spacing: 0.07em; }
.ironwork-forge-copy h4 { margin: 4px 0 0; color: var(--folio-ink, #f0dfb8); font-family: var(--font-brush); font-size: 28px; font-weight: 400; line-height: 1.2; }
.ironwork-forge-copy > header em {
  flex: 0 0 auto;
  padding: 6px 9px;
  color: var(--folio-muted, #c9dfd0);
  border: 1px solid rgba(100, 161, 130, 0.5);
  background: var(--folio-card, #102117);
  font-size: var(--ming-font-small, 14px);
  font-style: normal;
  font-weight: 760;
}
.ironwork-forge-copy > p { margin: 0; color: var(--folio-muted, #b8c0b5); font-size: var(--ming-font-body, 16px); line-height: 1.72; }
.ironwork-forge-terms {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 1px;
  margin: 0;
  background: var(--folio-card, rgba(187, 148, 76, 0.24));
}
.ironwork-forge-terms > div { min-width: 0; padding: 10px 11px; background: var(--folio-card, #0d1711); }
.ironwork-forge-terms > div.ready { box-shadow: inset 3px 0 rgba(91, 154, 119, 0.72); }
.ironwork-forge-terms > div.missing { box-shadow: inset 3px 0 rgba(164, 82, 65, 0.76); background: var(--folio-danger-surface, #1a100d); }
.ironwork-forge-terms dt { color: var(--folio-muted, #94a79a); font-size: var(--ming-font-small, 14px); }
.ironwork-forge-terms dd { margin: 4px 0 0; color: var(--folio-ink, #e3d2ad); font-size: 14px; font-weight: 760; line-height: 1.45; overflow-wrap: anywhere; }
.ironwork-forge-status {
  display: grid;
  grid-template-columns: 40px minmax(0, 1fr);
  align-items: center;
  gap: 11px;
  padding: 11px;
  border: 1px solid rgba(101, 159, 129, 0.34);
  background: var(--folio-card, #0e1c15);
}
.ironwork-forge-panel.is-blocked .ironwork-forge-status { border-color: var(--folio-rule, rgba(169, 89, 69, 0.42)); background: var(--folio-danger-surface, #1c110e); }
.ironwork-forge-status > i { width: 38px; height: 38px; display: grid; place-items: center; color: var(--folio-ink, #e1c987); border: 1px solid rgba(198, 156, 77, 0.52); border-radius: 50%; font-size: 18px; font-style: normal; font-weight: 800; }
.ironwork-forge-status b { color: var(--folio-ink, #e3d5b5); font-size: 14px; }
.ironwork-forge-status p { margin: 3px 0 0; color: var(--folio-muted, #afbbb0); font-size: var(--ming-font-body, 16px); line-height: 1.55; }
.ironwork-forge-progress { display: grid; gap: 8px; padding: 11px; border: 1px solid rgba(190, 153, 78, 0.3); background: #0a120e; }
.ironwork-forge-progress header { display: flex; justify-content: space-between; gap: 10px; }
.ironwork-forge-progress header span,
.ironwork-forge-progress header b,
.ironwork-forge-progress small { font-size: var(--ming-font-small, 14px); }
.ironwork-forge-progress header span { color: var(--folio-muted, #c5a761); }
.ironwork-forge-progress header b { color: var(--folio-ink, #d8cba8); }
.ironwork-forge-progress > div { height: 8px; overflow: hidden; border: 1px solid rgba(184, 146, 69, 0.38); background: #060b08; }
.ironwork-forge-progress > div i { display: block; height: 100%; background: #8e6b31; transition: width 180ms ease; }
.ironwork-forge-progress small { color: var(--folio-muted, #9eada1); line-height: 1.5; }
.ironwork-forge-receipt { display: grid; gap: 4px; padding: 10px 12px; border-left: 4px solid #6d9b7d; background: var(--folio-card, #0c1912); }
.ironwork-forge-receipt span,
.ironwork-forge-receipt small { color: var(--folio-muted, #a7b8ab); font-size: var(--ming-font-small, 14px); }
.ironwork-forge-receipt b { color: var(--folio-ink, #ddcfae); font-size: 14px; }
.ironwork-forge-action {
  width: 100%;
  min-height: 56px;
  display: grid;
  padding: 9px 12px;
  color: var(--folio-ink, #efdfb7);
  border: 1px solid rgba(108, 170, 138, 0.62) !important;
  background: var(--folio-card, #1a3829) !important;
  text-align: left;
}
.ironwork-forge-action:not(:disabled):hover,
.ironwork-forge-action:not(:disabled):focus-visible { background: var(--folio-hover, #214733) !important; border-color: var(--folio-rule, #9bc6ac) !important; }
.ironwork-forge-action:disabled { color: var(--folio-ink, #958c79); border-color: var(--folio-rule, rgba(145, 105, 80, 0.34)) !important; background: var(--folio-card, #19130f) !important; }
.ironwork-forge-action b { font-size: 16px; }
.ironwork-forge-action small { color: var(--folio-muted, #afbcaf); font-size: var(--ming-font-small, 14px); line-height: 1.45; }
.ironwork-forge-copy > footer { color: var(--folio-ink, #99a99d); font-size: var(--ming-font-small, 14px); line-height: 1.62; }
.action-proposal-plan.kind-ironwork-commission { border-color: var(--folio-rule, rgba(190, 145, 69, 0.58)); box-shadow: inset 4px 0 rgba(162, 111, 47, 0.86); }
.action-proposal-plan.kind-ironwork-commission > header > i { color: var(--folio-ink, #f0d490); border-color: var(--folio-rule, rgba(203, 157, 76, 0.58)); background: var(--folio-card, #251b0d); }

/* 木作委托：来料、三段进程和留铺回执在同一张木契上。 */
.woodwork-commission-catalog {
  min-width: 0;
  display: grid;
  gap: 12px;
  padding: 14px;
  border: 1px solid rgba(152, 123, 75, 0.46);
  background: var(--folio-card, linear-gradient(145deg, #1b1710, #0a130e 58%, #08100c));
}
.woodwork-commission-catalog > header {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 5px 14px;
  padding: 2px 2px 12px;
  border-bottom: 1px solid rgba(168, 137, 82, 0.3);
}
.woodwork-commission-catalog > header span { color: var(--folio-muted, #c9a76a); font-size: var(--ming-font-small, 14px); font-weight: 800; letter-spacing: 0.08em; }
.woodwork-commission-catalog > header h4 { margin: 4px 0 0; color: var(--folio-ink, #efe0bc); font-family: var(--font-brush); font-size: 28px; font-weight: 400; }
.woodwork-commission-catalog > header em { align-self: start; padding: 6px 10px; border: 1px solid rgba(157, 132, 81, 0.46); background: var(--folio-card, #21190e); color: var(--folio-muted, #d9c18d); font-size: var(--ming-font-small, 14px); font-style: normal; font-weight: 800; }
.woodwork-commission-catalog > header p { grid-column: 1 / -1; margin: 2px 0 0; color: var(--folio-muted, #b6beb4); font-size: var(--ming-font-body, 16px); line-height: 1.68; }
.woodwork-commission-list { min-width: 0; display: grid; gap: 12px; }
.woodwork-commission-catalog > footer { color: var(--folio-ink, #aab5ab); font-size: var(--ming-font-small, 14px); line-height: 1.65; }
.woodwork-commission-card {
  min-width: 0;
  display: grid;
  grid-template-columns: minmax(230px, 0.35fr) minmax(0, 1fr);
  overflow: hidden;
  border: 1px solid rgba(163, 131, 76, 0.48);
  background: var(--folio-card, #0d1510);
  box-shadow: inset 4px 0 #8b6938, 0 11px 24px rgba(0, 0, 0, 0.24);
}
.woodwork-commission-card.is-open,
.woodwork-commission-card.is-ready { border-color: var(--folio-rule, rgba(100, 158, 119, 0.58)); box-shadow: inset 4px 0 #578e68, 0 11px 24px rgba(0, 0, 0, 0.24); }
.woodwork-commission-card.is-blocked { border-color: var(--folio-rule, rgba(154, 85, 67, 0.52)); box-shadow: inset 4px 0 #85503f; }
.woodwork-commission-card.is-waiting { border-color: var(--folio-rule, rgba(180, 141, 73, 0.55)); box-shadow: inset 4px 0 #aa7a35; }
.woodwork-commission-card > figure {
  position: relative;
  min-height: 330px;
  margin: 0;
  display: grid;
  place-items: center;
  overflow: hidden;
  border-right: 1px solid rgba(164, 132, 76, 0.32);
  background: radial-gradient(circle at 50% 40%, rgba(132, 101, 53, 0.3), transparent 47%), repeating-linear-gradient(90deg, rgba(146, 114, 65, 0.04) 0 2px, transparent 2px 16px), #0a0f0c;
}
.woodwork-commission-card > figure::before { content: ''; position: absolute; inset: 14px; border: 1px solid rgba(196, 158, 91, 0.2); box-shadow: inset 0 0 0 7px rgba(7, 11, 8, 0.72); }
.woodwork-commission-card > figure img { position: relative; z-index: 1; width: min(82%, 240px); aspect-ratio: 1; object-fit: contain; filter: drop-shadow(0 21px 25px rgba(0, 0, 0, 0.55)); }
.woodwork-commission-card figcaption { position: absolute; z-index: 2; inset: auto 14px 14px; display: grid; gap: 4px; padding: 10px 12px; border-left: 4px solid #9d7641; background: rgba(8, 13, 9, 0.94); }
.woodwork-commission-card figcaption span { color: #caac72; font-size: var(--ming-font-small, 14px); font-weight: 800; letter-spacing: 0.07em; }
.woodwork-commission-card figcaption b { color: #e8d7b1; font-size: 14px; line-height: 1.45; }
.woodwork-commission-copy { min-width: 0; display: grid; align-content: start; gap: 12px; padding: 17px; }
.woodwork-commission-copy > header { display: flex; align-items: flex-start; justify-content: space-between; gap: 12px; }
.woodwork-commission-copy > header span { color: var(--folio-muted, #c8a466); font-size: var(--ming-font-small, 14px); font-weight: 800; letter-spacing: 0.07em; }
.woodwork-commission-copy > header h4 { margin: 4px 0 0; color: var(--folio-ink, #f1e1bd); font-family: var(--font-brush); font-size: 28px; font-weight: 400; line-height: 1.2; }
.woodwork-commission-copy > header em { flex: 0 0 auto; padding: 6px 9px; color: var(--folio-muted, #cbe0ce); border: 1px solid rgba(96, 153, 113, 0.48); background: var(--folio-card, #102017); font-size: var(--ming-font-small, 14px); font-style: normal; font-weight: 800; }
.woodwork-commission-copy > p { margin: 0; color: var(--folio-muted, #b6beb4); font-size: var(--ming-font-body, 16px); line-height: 1.7; }
.woodwork-material-ledger { padding: 11px; border: 1px solid rgba(167, 134, 76, 0.32); background: var(--folio-card, #0a120d); }
.woodwork-material-ledger > header { display: flex; align-items: baseline; justify-content: space-between; gap: 10px; margin-bottom: 9px; }
.woodwork-material-ledger > header span { color: var(--folio-muted, #dfc691); font-size: 14px; font-weight: 800; }
.woodwork-material-ledger > header small { color: var(--folio-muted, #99a79d); font-size: var(--ming-font-small, 14px); line-height: 1.45; text-align: right; }
.woodwork-material-ledger > div { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 7px; }
.woodwork-material-ledger article { min-width: 0; display: grid; grid-template-columns: 42px minmax(0, 1fr) 30px; align-items: center; gap: 9px; padding: 8px; border: 1px solid rgba(100, 151, 113, 0.32); background: var(--folio-card, #101b14); }
.woodwork-material-ledger article.missing { border-color: var(--folio-rule, rgba(162, 84, 66, 0.46)); background: var(--folio-danger-surface, #1b110e); }
.woodwork-material-ledger img { width: 40px; height: 40px; object-fit: contain; }
.woodwork-material-ledger span { color: var(--folio-muted, #9eb1a3); font-size: var(--ming-font-small, 14px); }
.woodwork-material-ledger b { display: block; margin-top: 3px; color: var(--folio-ink, #dfd0aa); font-size: 14px; overflow-wrap: anywhere; }
.woodwork-material-ledger article > i { width: 28px; height: 28px; display: grid; place-items: center; border: 1px solid rgba(105, 160, 120, 0.5); border-radius: 50%; color: var(--folio-ink, #bcd4c2); font-size: var(--ming-font-small, 14px); font-style: normal; font-weight: 800; }
.woodwork-material-ledger article.missing > i { border-color: var(--folio-rule, rgba(175, 91, 70, 0.55)); color: var(--folio-danger, #d6a090); }
.woodwork-payment-rail { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1px; margin: 0; padding: 0; list-style: none; background: var(--folio-card, rgba(171, 137, 77, 0.28)); }
.woodwork-payment-rail li { min-width: 0; display: grid; grid-template-columns: 34px minmax(0, 1fr); align-items: center; gap: 8px; padding: 10px; background: var(--folio-card, #101712); }
.woodwork-payment-rail li.current { background: var(--folio-selected-surface, #20190e); box-shadow: inset 0 -3px #a77c3d; }
.woodwork-payment-rail li.done { background: var(--folio-success-surface, #102018); box-shadow: inset 0 -3px #5f9a73; }
.woodwork-payment-rail i { width: 32px; height: 32px; display: grid; place-items: center; border: 1px solid rgba(175, 140, 77, 0.48); border-radius: 50%; color: var(--folio-ink, #ddc487); font-size: 14px; font-style: normal; }
.woodwork-payment-rail span { color: var(--folio-muted, #9eaaa1); font-size: var(--ming-font-small, 14px); }
.woodwork-payment-rail b { display: block; margin-top: 3px; color: var(--folio-ink, #e3d2a9); font-size: 14px; }
.woodwork-order-progress { display: grid; gap: 8px; padding: 11px; border: 1px solid rgba(171, 137, 77, 0.3); background: #0a120e; }
.woodwork-order-progress header { display: flex; justify-content: space-between; gap: 10px; }
.woodwork-order-progress header span,
.woodwork-order-progress header b,
.woodwork-order-progress small { font-size: var(--ming-font-small, 14px); }
.woodwork-order-progress header span { color: var(--folio-muted, #c7a869); }
.woodwork-order-progress header b { color: var(--folio-ink, #dfcfaa); }
.woodwork-order-progress > div { height: 9px; overflow: hidden; border: 1px solid rgba(170, 136, 74, 0.4); background: #060b08; }
.woodwork-order-progress > div i { display: block; height: 100%; background: linear-gradient(90deg, #73552d, #a37a3c); transition: width 180ms ease; }
.woodwork-order-progress small { color: var(--folio-muted, #9eaba1); line-height: 1.5; }
.woodwork-commission-status { display: grid; grid-template-columns: 40px minmax(0, 1fr); align-items: center; gap: 11px; padding: 11px; border: 1px solid rgba(101, 157, 117, 0.35); background: var(--folio-card, #0f1d15); }
.woodwork-commission-card.is-blocked .woodwork-commission-status { border-color: var(--folio-rule, rgba(168, 86, 67, 0.42)); background: var(--folio-danger-surface, #1c110e); }
.woodwork-commission-status > i { width: 38px; height: 38px; display: grid; place-items: center; color: var(--folio-ink, #e1c88c); border: 1px solid rgba(183, 145, 79, 0.52); border-radius: 50%; font-size: 18px; font-style: normal; font-weight: 800; }
.woodwork-commission-status b { color: var(--folio-ink, #e4d6b7); font-size: 14px; }
.woodwork-commission-status p { margin: 3px 0 0; color: var(--folio-muted, #afb9b0); font-size: var(--ming-font-body, 16px); line-height: 1.55; }
.woodwork-last-receipt { display: grid; gap: 4px; padding: 10px 12px; border-left: 4px solid #669176; background: var(--folio-card, #0d1912); }
.woodwork-last-receipt span,
.woodwork-last-receipt small { color: var(--folio-muted, #a7b7aa); font-size: var(--ming-font-small, 14px); }
.woodwork-last-receipt b { color: var(--folio-ink, #dfd1ae); font-size: 14px; }
.woodwork-commission-action { width: 100%; min-height: 58px; display: grid; padding: 9px 12px; color: var(--folio-ink, #efdfba); border: 1px solid rgba(103, 164, 123, 0.62) !important; background: var(--folio-card, #193426) !important; text-align: left; }
.woodwork-commission-action:not(:disabled):hover,
.woodwork-commission-action:not(:disabled):focus-visible { background: var(--folio-hover, #214431) !important; border-color: var(--folio-rule, #9bc5a8) !important; }
.woodwork-commission-action:disabled { color: var(--folio-ink, #988d79); border-color: var(--folio-rule, rgba(145, 102, 79, 0.36)) !important; background: var(--folio-card, #19130f) !important; }
.woodwork-commission-action b { font-size: 16px; }
.woodwork-commission-action small { color: var(--folio-muted, #afbaaf); font-size: var(--ming-font-small, 14px); line-height: 1.45; }
.action-proposal-plan.kind-woodwork-commission { border-color: var(--folio-rule, rgba(157, 127, 75, 0.6)); box-shadow: inset 4px 0 rgba(123, 91, 45, 0.9); }
.action-proposal-plan.kind-woodwork-commission > header > i { color: var(--folio-ink, #efd59d); border-color: var(--folio-rule, rgba(184, 146, 80, 0.58)); background: var(--folio-card, #21180d); }

/* 确认笺属于玩家要作决定的正文，不再用 10—12px 注脚挤信息。 */
.action-proposal-plan > header span,
.action-proposal-plan > header > em,
.action-proposal-plan dt,
.action-proposal-plan > aside,
.action-proposal-blocker small,
.action-proposal-plan > footer button.confirm small,
.action-proposal-plan > footer button.edit small,
.action-proposal-plan > footer > small { font-size: var(--ming-font-small, 14px); }
.campaign-shell .action-proposal-plan > header p { font-size: var(--ming-font-body, 16px); }
.action-proposal-plan > footer button { font-size: var(--ming-font-small, 14px); }

@media (max-width: 760px) {
  .ironwork-forge-catalog { gap: 10px; padding: 9px; }
  .ironwork-forge-catalog > header { grid-template-columns: 1fr; }
  .ironwork-forge-catalog > header em { justify-self: start; }
  .ironwork-forge-catalog > header h4 { font-size: 25px; }
  .ironwork-forge-panel { grid-template-columns: 1fr; }
  .ironwork-forge-panel > figure { min-height: 200px; border-right: 0; border-bottom: 1px solid rgba(194, 151, 76, 0.34); }
  .ironwork-forge-panel > figure img { width: min(50%, 160px); }
  .ironwork-forge-copy { padding: 13px; }
  .ironwork-forge-copy > header { align-items: flex-start; }
  .ironwork-forge-copy h4 { font-size: 25px; }
  .ironwork-forge-terms { grid-template-columns: 1fr; }
  .ironwork-forge-action { min-height: 58px; }
  .action-proposal-plan > footer button.cancel { min-height: 44px; }
  .woodwork-commission-catalog { gap: 10px; padding: 9px; }
  .woodwork-commission-catalog > header { grid-template-columns: 1fr; }
  .woodwork-commission-catalog > header em { justify-self: start; }
  .woodwork-commission-catalog > header h4 { font-size: 25px; }
  .woodwork-commission-card { grid-template-columns: 1fr; }
  .woodwork-commission-card > figure { min-height: 205px; border-right: 0; border-bottom: 1px solid rgba(164, 132, 76, 0.32); }
  .woodwork-commission-card > figure img { width: min(52%, 165px); }
  .woodwork-commission-copy { padding: 13px; }
  .woodwork-commission-copy > header h4 { font-size: 25px; }
  .woodwork-material-ledger > header { display: grid; }
  .woodwork-material-ledger > header small { text-align: left; }
  .woodwork-material-ledger > div,
  .woodwork-payment-rail { grid-template-columns: 1fr; }
  .woodwork-commission-action { min-height: 60px; }
}

/* 建政议事：大图讲议事场景，旗号只在下方承担身份标识。 */
.system-focus-panel-polity .system-focus-art {
  object-fit: cover;
  object-position: center 47%;
  padding: 0;
  background: var(--folio-card, #080e0c);
}
.system-focus-panel-polity .system-focus-shade { background: var(--folio-card, rgba(5, 9, 7, 0.52)); }
.system-focus-panel-polity > .system-focus-body { background: var(--folio-card, #0a100d); }
.polity-founding-ledger {
  min-width: 0;
  display: grid;
  gap: 14px;
  color: var(--folio-ink, #d9ceb4);
}
.polity-founding-ledger > header {
  min-width: 0;
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 14px;
  padding: 13px 15px;
  border: 1px solid rgba(190, 153, 78, 0.42);
  border-left: 4px solid #a87b37;
  background: var(--folio-card, #111711);
}
.polity-founding-ledger > header > div { min-width: 0; }
.polity-founding-ledger > header span,
.polity-founding-intro article > span,
.polity-readiness > header span,
.polity-draft-action > div > span {
  color: var(--folio-muted, #c5a45f);
  font-size: var(--ming-font-small, 14px);
  font-weight: 800;
  letter-spacing: 0.08em;
}
.polity-founding-ledger > header h3 {
  margin: 4px 0 0;
  color: var(--folio-ink, #f0dfb7);
  font-family: var(--font-brush);
  font-size: clamp(27px, 3vw, 38px);
  font-weight: 400;
  line-height: 1.15;
  overflow-wrap: anywhere;
}
.polity-founding-ledger > header p {
  margin: 6px 0 0;
  color: var(--folio-muted, #b8c0b5);
  font-size: var(--ming-font-body, 16px);
  line-height: 1.65;
}
.polity-founding-ledger > header > b {
  flex: 0 0 auto;
  padding: 6px 9px;
  border: 1px solid rgba(195, 154, 76, 0.48);
  background: var(--folio-card, #22190d);
  color: var(--folio-ink, #e2cc96);
  font-size: var(--ming-font-small, 14px);
}
.polity-compact-body {
  min-width: 0;
  display: grid;
  grid-template-columns: minmax(112px, 0.42fr) minmax(0, 1fr);
  gap: 12px;
}
.polity-compact-body > div { min-width: 0; align-self: center; }
.polity-compact-body strong { color: var(--folio-ink, #dec993); font-size: 15px; }
.polity-compact-body p { margin: 6px 0; color: var(--folio-muted, #bdc4ba); font-size: var(--ming-font-body, 16px); line-height: 1.55; overflow-wrap: anywhere; }
.polity-compact-body small { color: var(--folio-muted, #95a299); font-size: var(--ming-font-small, 14px); line-height: 1.5; }
.polity-flag {
  position: relative;
  min-width: 0;
  min-height: 220px;
  margin: 0;
  display: grid;
  place-items: center;
  overflow: hidden;
  border: 1px solid rgba(193, 151, 72, 0.42);
  background: var(--folio-card, #070c0a);
  box-shadow: inset 0 0 0 7px #0d1410;
}
.polity-flag img {
  width: 92%;
  height: 100%;
  max-height: 310px;
  object-fit: contain;
  filter: drop-shadow(0 16px 20px rgba(0, 0, 0, 0.54));
}
.polity-flag-empty { align-content: center; gap: 5px; padding: 22px; text-align: center; }
.polity-flag-empty > i {
  width: 52px;
  height: 52px;
  display: grid;
  place-items: center;
  border: 1px solid rgba(194, 151, 72, 0.5);
  border-radius: 50%;
  color: var(--folio-ink, #d6bc7d);
  font-size: 23px;
  font-style: normal;
}
.polity-flag-empty > span { color: var(--folio-muted, #dfcc9b); font-size: 15px; font-weight: 800; }
.polity-flag-empty > small { color: var(--folio-muted, #9aa79c); font-size: var(--ming-font-small, 14px); line-height: 1.5; }
.polity-founding-ledger.compact { gap: 10px; }
.polity-founding-ledger.compact > header { padding: 10px 12px; }
.polity-founding-ledger.compact > header h3 { font-size: 27px; }
.polity-founding-ledger.compact .polity-flag { min-height: 126px; }
.polity-founding-ledger.compact .polity-flag img { max-height: 142px; }
.polity-founding-intro {
  min-width: 0;
  display: grid;
  grid-template-columns: minmax(290px, 0.88fr) minmax(0, 1.12fr);
  gap: 14px;
}
.polity-founding-intro > article {
  min-width: 0;
  padding: 17px;
  border: 1px solid rgba(190, 153, 78, 0.32);
  background: var(--folio-card, #101712);
}
.polity-founding-intro article h4 {
  margin: 7px 0;
  color: var(--folio-ink, #eadab4);
  font-size: 20px;
  line-height: 1.45;
}
.polity-founding-intro article p { margin: 0; color: var(--folio-muted, #aeb9af); font-size: var(--ming-font-body, 16px); line-height: 1.68; }
.polity-founding-intro dl {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 1px;
  margin: 15px 0 0;
  background: var(--folio-card, rgba(186, 146, 70, 0.24));
}
.polity-founding-intro dl > div { min-width: 0; padding: 9px; background: var(--folio-card, #0b120e); }
.polity-founding-intro dt { color: var(--folio-muted, #98a59b); font-size: var(--ming-font-small, 14px); }
.polity-founding-intro dd { margin: 4px 0 0; color: var(--folio-ink, #e1c990); font-size: 14px; font-weight: 800; overflow-wrap: anywhere; }
.polity-identity-boundary {
  display: grid;
  grid-template-columns: 45px minmax(0, 1fr);
  align-items: center;
  gap: 12px;
  padding: 12px 14px;
  border: 1px solid rgba(184, 143, 68, 0.4);
  background: var(--folio-card, #17130c);
}
.polity-identity-boundary > i {
  width: 43px;
  height: 43px;
  display: grid;
  place-items: center;
  border: 1px solid rgba(213, 170, 82, 0.56);
  border-radius: 50%;
  color: var(--folio-ink, #e4c77f);
  font-size: 20px;
  font-style: normal;
}
.polity-identity-boundary b { color: var(--folio-ink, #e7d4a9); font-size: 15px; }
.polity-identity-boundary p { margin: 4px 0 0; color: var(--folio-muted, #b7b9aa); font-size: var(--ming-font-body, 16px); line-height: 1.58; }
.polity-finance-ledger {
  min-width: 0;
  padding: 14px;
  border: 1px solid rgba(190, 153, 78, 0.35);
  background: var(--folio-card, #0d1410);
}
.polity-finance-ledger > header {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 12px;
}
.polity-finance-ledger > header span { color: var(--folio-muted, #c5a45f); font-size: var(--ming-font-small, 14px); font-weight: 800; letter-spacing: 0.08em; }
.polity-finance-ledger > header h4 { margin: 5px 0 0; color: var(--folio-ink, #e5d5b1); font-size: 19px; }
.polity-finance-ledger > header > b { padding: 5px 8px; border: 1px solid rgba(170, 91, 70, 0.52); color: var(--folio-ink, #d8a393); font-size: var(--ming-font-small, 14px); }
.polity-finance-accounts {
  min-width: 0;
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 8px;
  margin-top: 12px;
}
.polity-finance-accounts > article {
  min-width: 0;
  display: grid;
  grid-template-columns: 39px minmax(0, 1fr);
  gap: 10px;
  align-items: center;
  padding: 11px;
  border: 1px solid rgba(155, 166, 153, 0.22);
  background: var(--folio-card, #101712);
}
.polity-finance-accounts > article > i {
  width: 37px;
  height: 37px;
  display: grid;
  place-items: center;
  border: 1px solid rgba(194, 151, 72, 0.46);
  border-radius: 50%;
  color: var(--folio-ink, #d6bc7d);
  font-style: normal;
}
.polity-finance-accounts span { color: var(--folio-muted, #9ca99f); font-size: var(--ming-font-small, 14px); }
.polity-finance-accounts strong { display: block; margin-top: 3px; color: var(--folio-ink, #e6d3a6); font-size: 16px; }
.polity-finance-accounts p { margin: 4px 0 0; color: var(--folio-muted, #aeb7ae); font-size: var(--ming-font-body, 16px); line-height: 1.48; overflow-wrap: anywhere; }
.polity-finance-accounts .treasury.is-missing { border-color: var(--folio-rule, rgba(170, 91, 70, 0.45)); background: var(--folio-danger-surface, #17110e); }
.polity-finance-accounts .treasury.is-missing > i { border-color: var(--folio-rule, rgba(182, 97, 74, 0.54)); color: var(--folio-danger, #d59b89); }
.polity-finance-accounts .treasury.is-ready { border-color: var(--folio-rule, rgba(91, 151, 112, 0.48)); background: var(--folio-success-surface, #0f1b14); }
.polity-finance-accounts .treasury.is-ready > i { border-color: var(--folio-rule, rgba(101, 166, 124, 0.56)); color: var(--folio-success, #afd0b9); }
.polity-finance-ledger:has(.treasury.is-ready) > header > b { border-color: var(--folio-rule, rgba(91, 151, 112, 0.52)); color: var(--folio-success, #b7d7c1); }
.polity-treasury-register {
  width: 100%;
  min-height: 52px;
  margin-top: 10px;
  padding: 9px 12px;
  display: grid;
  align-content: center;
  gap: 3px;
  border: 1px solid rgba(194, 151, 72, 0.58);
  background: var(--folio-card, #241b0d);
  color: var(--folio-ink, #ead6a8);
  text-align: left;
  cursor: pointer;
}
.polity-treasury-register:hover:not(:disabled),
.polity-treasury-register:focus-visible { border-color: var(--folio-rule, #d8ae5c); background: var(--folio-hover, #302311); }
.polity-treasury-register:disabled { opacity: 0.62; cursor: not-allowed; }
.polity-treasury-register b { font-size: 14px; }
.polity-treasury-register small { color: var(--folio-muted, #bcb39e); font-size: var(--ming-font-small, 14px); line-height: 1.45; }
.polity-treasury-receipt {
  margin-top: 10px;
  padding: 10px 12px;
  display: grid;
  grid-template-columns: 38px minmax(0, 1fr);
  align-items: center;
  gap: 10px;
  border: 1px solid rgba(91, 151, 112, 0.44);
  background: var(--folio-card, #101b14);
}
.polity-treasury-receipt > i {
  width: 36px;
  height: 36px;
  display: grid;
  place-items: center;
  border: 1px solid rgba(104, 163, 125, 0.5);
  border-radius: 50%;
  color: var(--folio-ink, #b8d3c0);
  font-style: normal;
}
.polity-treasury-receipt span { color: var(--folio-muted, #91b29b); font-size: var(--ming-font-small, 14px); }
.polity-treasury-receipt b { display: block; margin-top: 2px; color: var(--folio-ink, #d6e2d6); font-size: 14px; }
.polity-treasury-receipt p { margin: 3px 0 0; color: var(--folio-muted, #aebcaf); font-size: var(--ming-font-body, 16px); line-height: 1.5; }
.polity-treasury-donation {
  min-width: 0;
  margin-top: 9px;
  padding: 12px;
  display: grid;
  grid-template-columns: minmax(150px, 0.7fr) 116px minmax(230px, 1.15fr) minmax(170px, 0.75fr);
  gap: 9px;
  align-items: stretch;
  border: 1px solid rgba(190, 153, 78, 0.34);
  background: var(--folio-card, linear-gradient(135deg, rgba(32, 27, 16, 0.96), rgba(13, 24, 18, 0.98)));
}
.polity-treasury-donation > header {
  grid-column: 1 / -1;
  display: flex;
  justify-content: space-between;
  align-items: end;
  gap: 12px;
  padding-bottom: 8px;
  border-bottom: 1px solid rgba(190, 153, 78, 0.2);
}
.polity-treasury-donation > header span,
.polity-treasury-donation > label span { color: var(--folio-muted, #c7a75f); font-size: var(--ming-font-small, 14px); font-weight: 800; letter-spacing: 0.06em; }
.polity-treasury-donation > header h5 { margin: 3px 0 0; color: var(--folio-ink, #ead9b5); font-size: 16px; }
.polity-treasury-donation > header small,
.polity-treasury-donation > label small { color: var(--folio-muted, #aeb7aa); font-size: var(--ming-font-small, 14px); line-height: 1.45; }
.polity-treasury-donation > label { min-width: 0; display: grid; align-content: center; gap: 3px; }
.polity-treasury-donation-field {
  min-width: 0;
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  align-items: center;
  border: 1px solid rgba(194, 151, 72, 0.45);
  background: var(--folio-card, rgba(5, 10, 7, 0.72));
}
.polity-treasury-donation-field:focus-within { border-color: var(--folio-rule, #d8ae5c); box-shadow: 0 0 0 2px rgba(216, 174, 92, 0.12); }
.polity-treasury-donation-field input {
  min-width: 0;
  width: 100%;
  height: 100%;
  min-height: 48px;
  padding: 9px 8px 9px 11px;
  border: 0;
  outline: 0;
  background: transparent;
  color: var(--folio-ink, #f0dfb8);
  font: inherit;
  font-size: 16px;
}
.polity-treasury-donation-field > span { padding-right: 10px; color: var(--folio-muted, #c6b78f); font-size: var(--ming-font-small, 14px); }
[data-polity-donation-preview] {
  min-width: 0;
  padding: 8px 10px;
  display: grid;
  align-content: center;
  gap: 2px;
  border: 1px solid rgba(143, 153, 137, 0.24);
  background: rgba(10, 17, 12, 0.78);
}
[data-polity-donation-preview] > span { color: #9daa9e; font-size: var(--ming-font-small, 14px); }
[data-polity-donation-preview] > b { color: #ded2b3; font-size: var(--ming-font-small, 14px); line-height: 1.4; overflow-wrap: anywhere; }
[data-polity-donation-preview] > small { color: #aeb7aa; font-size: var(--ming-font-small, 14px); line-height: 1.42; overflow-wrap: anywhere; }
[data-polity-donation-preview].is-ready { border-color: rgba(91, 151, 112, 0.54); background: rgba(14, 30, 20, 0.82); }
[data-polity-donation-preview].is-ready > span { color: #9bc2a7; }
[data-polity-donation-preview].is-blocked { border-color: rgba(170, 91, 70, 0.48); background: rgba(35, 17, 13, 0.78); }
[data-polity-donation-preview].is-blocked > span { color: #d49b8b; }
.polity-treasury-donation [data-polity-donation-confirm] {
  min-width: 0;
  min-height: 52px;
  padding: 8px 10px;
  display: grid;
  align-content: center;
  gap: 3px;
  border: 1px solid rgba(194, 151, 72, 0.58);
  background: var(--folio-card, #2a1f0e);
  color: var(--folio-ink, #ead6a8);
  text-align: left;
  cursor: pointer;
}
.polity-treasury-donation [data-polity-donation-confirm]:hover:not(:disabled),
.polity-treasury-donation [data-polity-donation-confirm]:focus-visible { border-color: var(--folio-rule, #d8ae5c); background: var(--folio-hover, #372812); }
.polity-treasury-donation [data-polity-donation-confirm]:disabled { opacity: 0.55; cursor: not-allowed; }
.polity-treasury-donation [data-polity-donation-confirm] b { font-size: 14px; }
.polity-treasury-donation [data-polity-donation-confirm] small { color: var(--folio-muted, #bcb39e); font-size: var(--ming-font-small, 14px); line-height: 1.4; }
.polity-treasury-latest {
  grid-column: 1 / -1;
  min-width: 0;
  padding: 8px 10px;
  display: grid;
  grid-template-columns: auto minmax(0, 1fr) auto;
  gap: 10px;
  align-items: center;
  border-left: 3px solid rgba(98, 164, 122, 0.58);
  background: var(--folio-card, rgba(12, 28, 18, 0.72));
}
.polity-treasury-latest span { color: var(--folio-muted, #8fb09a); font-size: var(--ming-font-small, 14px); }
.polity-treasury-latest b { color: var(--folio-ink, #d4e1d6); font-size: var(--ming-font-small, 14px); }
.polity-treasury-latest small { color: var(--folio-muted, #aebcaf); font-size: var(--ming-font-small, 14px); text-align: right; }
.polity-finance-ledger > footer { margin-top: 10px; color: var(--folio-ink, #aeb7ae); font-size: var(--ming-font-small, 14px); line-height: 1.55; }
.polity-governance-council {
  min-width: 0;
  padding: 15px;
  display: grid;
  gap: 12px;
  border: 1px solid rgba(179, 142, 70, 0.42);
  background: var(--folio-card, #111711);
}
.polity-governance-council > header {
  min-width: 0;
  display: flex;
  justify-content: space-between;
  align-items: start;
  gap: 14px;
  padding-bottom: 10px;
  border-bottom: 1px solid rgba(181, 145, 74, 0.24);
}
.polity-governance-council > header span,
.polity-governance-attendees > span { color: var(--folio-muted, #bd9e59); font-size: var(--ming-font-small, 14px); font-weight: 800; letter-spacing: 0.06em; }
.polity-governance-council > header h4 { margin: 4px 0 0; color: var(--folio-ink, #ead9b6); font-size: 19px; line-height: 1.35; }
.polity-governance-council > header > b {
  flex: 0 0 auto;
  padding: 5px 9px;
  border: 1px solid rgba(181, 145, 74, 0.38);
  color: var(--folio-ink, #d5bc80);
  font-size: var(--ming-font-small, 14px);
}
.polity-governance-fields { min-width: 0; display: grid; grid-template-columns: minmax(135px, 0.26fr) minmax(120px, 0.22fr) minmax(0, 1fr); gap: 10px; }
.polity-governance-fields label { min-width: 0; display: grid; align-content: start; gap: 6px; color: var(--folio-ink, #c9ab66); font-size: var(--ming-font-small, 14px); font-weight: 800; }
.polity-governance-fields input,
.polity-governance-fields textarea {
  min-width: 0;
  width: 100%;
  padding: 10px 11px;
  border: 1px solid rgba(185, 149, 78, 0.42);
  border-radius: 0;
  outline: 0;
  background: var(--folio-card, #080e0a);
  color: var(--folio-ink, #eadfc4);
  font: inherit;
  font-size: 16px;
  line-height: 1.5;
  resize: vertical;
}
.polity-governance-fields input { min-height: 48px; }
.polity-governance-fields textarea { min-height: 86px; }
.polity-governance-fields input:focus,
.polity-governance-fields textarea:focus { border-color: var(--folio-rule, #dbb361); box-shadow: 0 0 0 2px rgba(219, 179, 97, 0.12); }
.polity-governance-fields [aria-invalid="true"] { border-color: var(--folio-rule, rgba(184, 93, 73, 0.72)); }
.polity-governance-attendees { min-width: 0; display: grid; gap: 7px; }
.polity-governance-attendees ul { margin: 0; padding: 0; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; list-style: none; }
.polity-governance-attendees li { min-width: 0; padding: 9px; display: grid; grid-template-columns: 34px minmax(0, 1fr); gap: 8px; align-items: center; border: 1px solid rgba(137, 157, 139, 0.25); background: var(--folio-card, #0b120d); }
.polity-governance-attendees li > i { width: 32px; height: 32px; display: grid; place-items: center; border: 1px solid rgba(173, 137, 67, 0.42); color: var(--folio-ink, #c9a75d); font-style: normal; }
.polity-governance-attendees li b { display: block; color: var(--folio-ink, #dcd8c6); font-size: 14px; }
.polity-governance-attendees li small { display: block; margin-top: 2px; color: var(--folio-muted, #aeb8ad); font-size: var(--ming-font-small, 14px); line-height: 1.4; overflow-wrap: anywhere; }
.polity-governance-attendees li.empty { grid-column: 1 / -1; }
[data-polity-governance-preview] { min-width: 0; padding: 9px 11px; display: grid; gap: 3px; border-left: 3px solid rgba(172, 92, 71, 0.64); background: #1d120f; }
[data-polity-governance-preview].is-ready { border-left-color: rgba(95, 161, 119, 0.72); background: #0d1c13; }
[data-polity-governance-preview] b { color: #d9d2bc; font-size: var(--ming-font-small, 14px); }
[data-polity-governance-preview] small { color: #b1bab0; font-size: var(--ming-font-small, 14px); line-height: 1.5; overflow-wrap: anywhere; }
.polity-governance-council [data-polity-governance-confirm] { min-height: 52px; padding: 9px 12px; display: grid; gap: 3px; align-content: center; border: 1px solid rgba(194, 151, 72, 0.58); background: var(--folio-card, #2a1f0e); color: var(--folio-ink, #ead6a8); text-align: left; cursor: pointer; }
.polity-governance-council [data-polity-governance-confirm]:hover:not(:disabled),
.polity-governance-council [data-polity-governance-confirm]:focus-visible { border-color: var(--folio-rule, #d8ae5c); background: var(--folio-hover, #372812); }
.polity-governance-council [data-polity-governance-confirm]:disabled { opacity: 0.55; cursor: not-allowed; }
.polity-governance-council [data-polity-governance-confirm] b { font-size: 14px; }
.polity-governance-council [data-polity-governance-confirm] small { color: var(--folio-muted, #bcb39e); font-size: var(--ming-font-small, 14px); line-height: 1.4; }
.polity-governance-council.is-settled { border-color: var(--folio-rule, rgba(91, 151, 112, 0.5)); background: var(--folio-card, #0e1912); }
.polity-governance-council.is-settled > header > b { border-color: var(--folio-rule, rgba(91, 151, 112, 0.52)); color: var(--folio-ink, #b8d7c1); }
.polity-governance-council blockquote { margin: 0; padding: 12px 14px; border-left: 3px solid rgba(193, 153, 75, 0.68); background: var(--folio-card, #17180f); color: var(--folio-ink, #e4d4ae); font-size: var(--ming-font-body, 16px); line-height: 1.65; }
.polity-governance-council > footer { color: var(--folio-ink, #aeb9af); font-size: var(--ming-font-small, 14px); line-height: 1.55; }
.polity-establishment {
  min-width: 0;
  padding: 15px;
  display: grid;
  gap: 12px;
  border: 1px solid rgba(201, 157, 70, 0.58);
  background: var(--folio-card, #171408);
  box-shadow: inset 4px 0 rgba(200, 156, 70, 0.42);
}
.polity-establishment > header { display: flex; justify-content: space-between; align-items: start; gap: 14px; padding-bottom: 10px; border-bottom: 1px solid rgba(200, 158, 75, 0.26); }
.polity-establishment > header span { color: var(--folio-muted, #c8a656); font-size: var(--ming-font-small, 14px); font-weight: 800; letter-spacing: 0.06em; }
.polity-establishment > header h4 { margin: 4px 0 0; color: var(--folio-ink, #f0ddb2); font-size: 20px; line-height: 1.35; }
.polity-establishment > header > b { flex: 0 0 auto; padding: 5px 9px; border: 1px solid rgba(203, 161, 77, 0.48); color: var(--folio-ink, #e1c57f); font-size: var(--ming-font-small, 14px); }
.polity-establishment > p,
.polity-establishment > footer { margin: 0; color: var(--folio-muted, #bbc0ad); font-size: var(--ming-font-body, 16px); line-height: 1.6; }
.polity-establishment blockquote { margin: 0; padding: 12px 14px; border-left: 3px solid rgba(202, 160, 75, 0.72); background: var(--folio-card, rgba(8, 14, 9, 0.72)); color: var(--folio-ink, #ead9b3); font-size: var(--ming-font-body, 16px); line-height: 1.65; }
.polity-establishment-ledgers { min-width: 0; display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 8px; }
.polity-establishment-ledgers article { min-width: 0; padding: 10px 11px; border: 1px solid rgba(169, 145, 88, 0.3); background: var(--folio-card, rgba(8, 14, 9, 0.78)); }
.polity-establishment-ledgers span { display: block; color: var(--folio-muted, #a9a98f); font-size: var(--ming-font-small, 14px); }
.polity-establishment-ledgers b { display: block; margin-top: 4px; color: var(--folio-ink, #e3d5b4); font-size: 14px; line-height: 1.5; overflow-wrap: anywhere; }
.polity-establishment [data-polity-establish-confirm] { min-height: 58px; padding: 10px 13px; display: grid; gap: 3px; align-content: center; border: 1px solid #b9883e; background: var(--folio-card, #4b2d0d); color: var(--folio-ink, #f1d8a0); text-align: left; cursor: pointer; }
.polity-establishment [data-polity-establish-confirm]:hover:not(:disabled),
.polity-establishment [data-polity-establish-confirm]:focus-visible { border-color: var(--folio-rule, #e0b666); background: var(--folio-hover, #5c3811); }
.polity-establishment [data-polity-establish-confirm]:disabled { opacity: 0.55; cursor: not-allowed; }
.polity-establishment [data-polity-establish-confirm] b { font-size: 15px; }
.polity-establishment [data-polity-establish-confirm] small { color: var(--folio-muted, #d1c09e); font-size: var(--ming-font-small, 14px); line-height: 1.45; }
.polity-establishment.is-established { border-color: var(--folio-rule, rgba(85, 155, 110, 0.62)); background: var(--folio-card, #0d1c13); box-shadow: inset 4px 0 rgba(85, 155, 110, 0.48); }
.polity-establishment.is-established > header > b { border-color: var(--folio-rule, rgba(91, 158, 116, 0.52)); color: var(--folio-ink, #bde0c8); }
.polity-readiness {
  min-width: 0;
  padding: 15px;
  border: 1px solid rgba(190, 153, 78, 0.35);
  background: var(--folio-card, #0d1410);
}
.polity-readiness > header { display: flex; justify-content: space-between; gap: 14px; }
.polity-readiness > header h4 { margin: 5px 0 0; color: var(--folio-ink, #e5d5b1); font-size: 19px; }
.polity-readiness > header small { max-width: 440px; color: var(--folio-muted, #9da99f); font-size: var(--ming-font-small, 14px); line-height: 1.55; text-align: right; }
.polity-readiness ol {
  margin: 14px 0 0;
  padding: 0;
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 8px;
  list-style: none;
}
.polity-readiness li {
  min-width: 0;
  display: grid;
  grid-template-columns: 34px minmax(0, 1fr) auto;
  gap: 9px;
  align-items: start;
  padding: 10px;
  border: 1px solid rgba(155, 166, 153, 0.22);
  background: var(--folio-card, #101813);
}
.polity-readiness li > i {
  width: 32px;
  height: 32px;
  display: grid;
  place-items: center;
  border: 1px solid rgba(183, 145, 71, 0.38);
  border-radius: 50%;
  color: var(--folio-ink, #c9aa66);
  font-size: var(--ming-font-small, 14px);
  font-style: normal;
}
.polity-readiness li span { color: var(--folio-muted, #9faf9f); font-size: var(--ming-font-small, 14px); }
.polity-readiness li b { display: block; margin-top: 3px; color: var(--folio-ink, #ded1b2); font-size: var(--ming-font-small, 14px); line-height: 1.48; overflow-wrap: anywhere; }
.polity-readiness li p { margin: 4px 0 0; color: var(--folio-muted, #99a59c); font-size: var(--ming-font-body, 16px); line-height: 1.5; }
.polity-readiness li em { padding: 4px 6px; color: var(--folio-muted, #c8b17a); border: 1px solid rgba(179, 142, 68, 0.32); font-size: var(--ming-font-small, 14px); font-style: normal; }
.polity-readiness li.state-complete { border-color: var(--folio-rule, rgba(92, 151, 118, 0.42)); box-shadow: inset 3px 0 #5f9877; }
.polity-readiness li.state-complete em { color: var(--folio-muted, #b9d4c1); border-color: var(--folio-rule, rgba(94, 155, 120, 0.42)); background: var(--folio-card, #102117); }
.polity-readiness li.state-ready { border-color: var(--folio-rule, rgba(199, 156, 69, 0.52)); box-shadow: inset 3px 0 #b48336; }
.polity-readiness li.state-ready em { color: var(--folio-muted, #e3c57e); border-color: var(--folio-rule, rgba(199, 156, 69, 0.48)); background: var(--folio-card, #251a09); }
.polity-readiness li.state-missing { border-color: var(--folio-rule, rgba(164, 91, 67, 0.4)); box-shadow: inset 3px 0 #955a47; }
.polity-readiness li.state-missing em { color: var(--folio-danger, #dcaa99); border-color: var(--folio-rule, rgba(164, 91, 67, 0.42)); background: var(--folio-danger-surface, #21130f); }
.polity-readiness li.state-unavailable { opacity: 0.82; }
.polity-draft-action {
  min-width: 0;
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(270px, 0.48fr);
  gap: 14px;
  align-items: center;
  padding: 15px;
  border: 1px solid rgba(189, 149, 72, 0.42);
  background: var(--folio-card, #14170f);
}
.polity-draft-action h4 { margin: 5px 0; color: var(--folio-ink, #e7d5ad); font-size: 18px; line-height: 1.45; }
.polity-draft-action p { margin: 0; color: var(--folio-muted, #acb7ac); font-size: var(--ming-font-body, 16px); line-height: 1.62; }
.polity-draft-action .system-action-seed {
  width: 100%;
  min-height: 48px;
  padding: 10px 12px;
  border: 1px solid rgba(201, 159, 75, 0.66);
  background: var(--folio-card, #342512);
  color: var(--folio-ink, #f0ddb2);
  text-align: left;
}
.polity-draft-action .system-action-seed:hover,
.polity-draft-action .system-action-seed:focus-visible { border-color: var(--folio-rule, #dab36b); background: var(--folio-hover, #433019); }
.polity-draft-action .system-action-seed span { font-size: 14px; font-weight: 800; }
.polity-draft-action .system-action-seed small { color: var(--folio-muted, #c3b89d); font-size: var(--ming-font-small, 14px); line-height: 1.45; }
.polity-established-note { padding: 12px; color: var(--folio-ink, #bdd4c3); border: 1px solid rgba(92, 151, 118, 0.42); background: var(--folio-card, #102117); font-size: var(--ming-font-small, 14px); line-height: 1.55; }

@media (max-width: 760px) {
  .system-focus-panel-polity .system-focus-art { object-position: 58% center; padding: 0; }
  .polity-founding-ledger { gap: 10px; }
  .polity-founding-ledger > header { display: grid; padding: 11px; }
  .polity-founding-ledger > header > b { justify-self: start; }
  .polity-compact-body,
  .polity-founding-intro,
  .polity-draft-action { grid-template-columns: 1fr; }
  .polity-founding-ledger.compact .polity-compact-body { grid-template-columns: minmax(100px, 0.38fr) minmax(0, 1fr); }
  .polity-founding-intro .polity-flag { min-height: 200px; }
  .polity-founding-intro article { padding: 12px; }
  .polity-founding-intro dl { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .polity-finance-ledger { padding: 11px; }
  .polity-finance-ledger > header { display: grid; }
  .polity-finance-ledger > header > b { justify-self: start; }
  .polity-finance-accounts { grid-template-columns: 1fr; }
  .polity-treasury-donation { grid-template-columns: 1fr; }
  .polity-treasury-donation > header,
  .polity-treasury-latest { grid-column: 1; }
  .polity-treasury-latest { grid-template-columns: 1fr; gap: 3px; }
  .polity-treasury-latest small { text-align: left; }
  .polity-governance-council { padding: 11px; }
  .polity-governance-council > header { display: grid; }
  .polity-governance-council > header > b { justify-self: start; }
  .polity-governance-fields,
  .polity-governance-attendees ul { grid-template-columns: 1fr; }
  .polity-establishment { padding: 11px; }
  .polity-establishment > header { display: grid; }
  .polity-establishment > header > b { justify-self: start; }
  .polity-establishment-ledgers { grid-template-columns: 1fr; }
  .polity-readiness { padding: 10px; }
  .polity-readiness > header { display: grid; }
  .polity-readiness > header small { text-align: left; }
  .polity-readiness ol { grid-template-columns: 1fr; }
  .polity-draft-action { padding: 12px; }
  .polity-draft-action .system-action-seed { min-height: 52px; }
}

@media (max-width: 420px) {
  .polity-founding-ledger.compact .polity-compact-body { grid-template-columns: 1fr; }
  .polity-founding-ledger.compact .polity-flag { min-height: 118px; }
  .polity-founding-intro dl { grid-template-columns: 1fr; }
  .polity-readiness li { grid-template-columns: 32px minmax(0, 1fr); }
  .polity-readiness li > em { grid-column: 2; justify-self: start; }
}

/* 家底展开页是阅读界面，食用回执与水囊内嵌账也不得退回 12px 小字。 */
.system-focus-panel .inventory-ledger .action-effect-summary { font-size: var(--ming-font-small, 14px); }
.system-focus-panel .inventory-ledger .inventory-fluid-panel span,
.system-focus-panel .inventory-ledger .inventory-fluid-panel small,
.system-focus-panel .inventory-ledger .inventory-fluid-panel p,
.system-focus-panel .inventory-ledger .inventory-fluid-panel button,
.system-focus-panel .inventory-ledger .inventory-fluid-panel .water-auto-toggle > span > b { font-size: var(--ming-font-small, 14px); }

/* 家宅堆沤：沿用家宅卷的青墨、旧金与纸账层次，正文完整换行。 */
.composting-ledger {
  box-sizing: border-box;
  display: grid;
  gap: 12px;
  min-width: 0;
  max-width: 100%;
  padding: 14px;
  border: 1px solid rgba(157, 132, 72, 0.38);
  background: #0c1510;
  box-shadow: inset 4px 0 rgba(92, 143, 108, 0.38);
  color: #d8d4bd;
  font-size: var(--ming-font-small, 14px);
  line-height: 1.65;
  overflow-x: clip;
}

.composting-ledger *,
.composting-ledger *::before,
.composting-ledger *::after { box-sizing: border-box; }

.composting-ledger > header {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 14px;
  min-width: 0;
  padding-bottom: 10px;
  border-bottom: 1px solid rgba(171, 145, 81, 0.28);
}

.composting-ledger > header > div { min-width: 0; }
.composting-ledger > header span {
  display: block;
  color: #bda565;
  font-size: var(--ming-font-small, 14px);
  font-weight: 800;
  letter-spacing: 0.05em;
}
.composting-ledger > header h3,
.composting-ledger > header h4 {
  margin: 4px 0;
  color: #eadab8;
  font-size: clamp(19px, 2vw, 24px);
  line-height: 1.35;
  overflow-wrap: anywhere;
}
.composting-ledger > header small {
  display: block;
  color: #abb8ad;
  font-size: var(--ming-font-small, 14px);
  line-height: 1.6;
  overflow-wrap: anywhere;
}
.composting-ledger > header > b {
  flex: 0 0 auto;
  padding: 6px 9px;
  border: 1px solid rgba(99, 156, 119, 0.42);
  background: #102119;
  color: #b9d5c2;
  font-size: var(--ming-font-small, 14px);
  line-height: 1.45;
  white-space: normal;
  overflow-wrap: anywhere;
}

.composting-processes,
.composting-batches {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 10px;
  min-width: 0;
}

.composting-process,
.composting-batch {
  display: grid;
  min-width: 0;
  border: 1px solid rgba(130, 154, 135, 0.28);
  background: #101a14;
}
.composting-process {
  grid-template-columns: minmax(96px, 0.28fr) minmax(0, 1fr);
  gap: 12px;
  padding: 11px;
}
.composting-process.is-ready,
.composting-batch.is-ready { border-color: rgba(92, 158, 116, 0.5); }
.composting-process.is-blocked { border-color: rgba(159, 94, 70, 0.42); }

.composting-process figure {
  min-width: 0;
  margin: 0;
  padding: 9px;
  display: grid;
  align-content: center;
  justify-items: center;
  gap: 8px;
  border: 1px solid rgba(173, 142, 72, 0.3);
  background: #15170e;
}
.composting-process figure img,
.composting-art-placeholder {
  display: grid;
  place-items: center;
  width: 64px;
  height: 64px;
  max-width: 100%;
  object-fit: contain;
  border: 1px solid rgba(180, 145, 74, 0.36);
  background: #1d1a0d;
  color: #d6ba73;
  font-size: 26px;
}
.composting-process figcaption {
  color: #a7b3a8;
  font-size: var(--ming-font-small, 14px);
  line-height: 1.45;
  text-align: center;
  overflow-wrap: anywhere;
}
.composting-process > div,
.composting-batch > div { min-width: 0; }
.composting-process header {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 2px 10px;
  align-items: start;
}
.composting-process header span {
  grid-column: 1;
  color: #9db1a2;
  font-size: var(--ming-font-small, 14px);
}
.composting-process header h4 {
  grid-column: 1;
  margin: 1px 0;
  color: #e5d8ba;
  font-size: 17px;
  line-height: 1.4;
  overflow-wrap: anywhere;
}
.composting-process header > b {
  grid-column: 2;
  grid-row: 1 / span 2;
  color: #c7aa65;
  font-size: var(--ming-font-small, 14px);
  white-space: nowrap;
}
.composting-process p,
.composting-batch p {
  margin: 7px 0;
  color: #c2c8b9;
  font-size: var(--ming-font-body, 16px);
  line-height: 1.65;
  overflow-wrap: anywhere;
}

.composting-materials {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 6px;
  min-width: 0;
  margin: 8px 0;
}
.composting-materials > span {
  display: flex;
  align-items: center;
  gap: 6px;
  min-width: 0;
  padding: 7px;
  border-left: 3px solid rgba(154, 135, 82, 0.5);
  background: #0a120d;
  color: #c9c4ad;
  font-size: var(--ming-font-small, 14px);
  line-height: 1.45;
}
.composting-materials > span.met { border-left-color: #5d9872; }
.composting-materials > span.missing { border-left-color: #9e5f4b; }
.composting-materials img {
  flex: 0 0 28px;
  width: 28px;
  height: 28px;
  object-fit: contain;
}
.composting-materials b { min-width: 0; overflow-wrap: anywhere; }
.composting-advice {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
}
.composting-advice span {
  padding: 4px 7px;
  border: 1px solid rgba(141, 163, 142, 0.25);
  background: #111b14;
  color: #aebcaf;
  font-size: var(--ming-font-small, 14px);
  overflow-wrap: anywhere;
}

.composting-action {
  width: 100%;
  min-width: 0;
  min-height: 44px;
  padding: 8px 11px;
  border: 1px solid rgba(182, 146, 74, 0.58);
  border-radius: 0;
  background: #2d2412;
  color: #ead7a9;
  text-align: left;
  cursor: pointer;
}
.composting-action:hover:not(:disabled),
.composting-action:focus-visible {
  border-color: #d1ad62;
  background: #3a2d16;
  outline: 2px solid rgba(209, 173, 98, 0.16);
  outline-offset: 2px;
}
.composting-action:disabled { cursor: not-allowed; opacity: 0.58; }
.composting-action b,
.composting-action small {
  display: block;
  min-width: 0;
  overflow-wrap: anywhere;
}
.composting-action b { font-size: 14px; line-height: 1.4; }
.composting-action small { margin-top: 2px; color: #b9b7a6; font-size: var(--ming-font-small, 14px); line-height: 1.45; }

.composting-batch {
  grid-template-columns: 40px minmax(0, 1fr) minmax(150px, 0.42fr);
  gap: 10px;
  align-items: center;
  padding: 10px;
}
.composting-batch > i {
  display: grid;
  place-items: center;
  width: 38px;
  height: 38px;
  border: 1px solid rgba(171, 139, 70, 0.46);
  border-radius: 50%;
  color: #d3b66c;
  font-size: 15px;
  font-style: normal;
}
.composting-batch span,
.composting-batch small {
  color: #aebbae;
  font-size: var(--ming-font-small, 14px);
  line-height: 1.5;
  overflow-wrap: anywhere;
}
.composting-batch h4 { margin: 2px 0; color: #e2d5b5; font-size: 16px; line-height: 1.4; }

.composting-farm-application > div {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 8px;
  min-width: 0;
}
.composting-farm-application > div > span {
  min-width: 0;
  padding: 8px 9px;
  border-left: 3px solid rgba(96, 150, 112, 0.52);
  background: #101b14;
  color: #c7cfbf;
  font-size: var(--ming-font-small, 14px);
  overflow-wrap: anywhere;
}

@media (max-width: 760px) {
  .composting-ledger { padding: 11px; }
  .composting-ledger > header { display: grid; gap: 7px; }
  .composting-ledger > header > b { justify-self: start; }
  .composting-processes,
  .composting-batches { grid-template-columns: 1fr; }
  .composting-materials { grid-template-columns: 1fr; }
  .composting-batch { grid-template-columns: 38px minmax(0, 1fr); }
  .composting-batch .composting-action { grid-column: 1 / -1; }
}

@media (max-width: 420px) {
  .composting-ledger { gap: 10px; padding: 9px; }
  .composting-process { grid-template-columns: 1fr; }
  .composting-process figure {
    grid-template-columns: 56px minmax(0, 1fr);
    justify-items: start;
    text-align: left;
  }
  .composting-process figure img,
  .composting-art-placeholder { width: 54px; height: 54px; }
  .composting-process figcaption { text-align: left; }
  .composting-process header { grid-template-columns: 1fr; }
  .composting-process header > b { grid-column: 1; grid-row: auto; white-space: normal; }
  .composting-farm-application > div { grid-template-columns: 1fr; }
}

/* 更新日志：只在玩家主动展开时占用视口，采用明末案头卷册与三色题签分层。 */
.release-notes-trigger {
  min-width: 0;
  min-height: 44px;
  padding: 8px 12px;
  border: 1px solid rgba(181, 142, 70, 0.58);
  background: #17160f;
  color: #dfc98f;
  font: inherit;
  font-size: var(--ming-font-small, 14px);
  line-height: 1.45;
  white-space: normal;
  overflow-wrap: anywhere;
  cursor: pointer;
}

.release-notes-trigger:hover,
.release-notes-trigger:focus-visible {
  border-color: #d3ae60;
  background: #26200f;
  outline: 2px solid rgba(211, 174, 96, 0.2);
  outline-offset: 2px;
}

.release-notes-backdrop {
  position: fixed;
  z-index: 1200;
  inset: 0;
  box-sizing: border-box;
  display: grid;
  place-items: center;
  min-width: 0;
  padding: clamp(18px, 4vw, 52px);
  background: rgba(2, 7, 5, 0.84);
  overflow: hidden;
}

.release-notes-backdrop[hidden] { display: none; }

.release-notes-panel {
  box-sizing: border-box;
  width: min(980px, 100%);
  max-height: min(88vh, 900px);
  min-width: 0;
  display: grid;
  grid-template-rows: auto minmax(0, 1fr) auto;
  border: 1px solid rgba(188, 151, 76, 0.72);
  background: #0d120d;
  box-shadow: 0 26px 80px rgba(0, 0, 0, 0.58), inset 5px 0 #564222;
  color: #ddd3b7;
  overflow: hidden;
}

.release-notes-panel,
.release-notes-panel *,
.release-notes-panel *::before,
.release-notes-panel *::after { box-sizing: border-box; }

.release-notes-header {
  min-width: 0;
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 12px 18px;
  align-items: start;
  padding: 20px 22px 16px;
  border-bottom: 1px solid rgba(183, 145, 72, 0.34);
  background: #15160f;
}

.release-notes-header > div { min-width: 0; }

.release-notes-kicker,
.release-notes-eyebrow {
  display: block;
  color: #c5a45f;
  font-size: var(--ming-font-small, 14px);
  font-weight: 800;
  letter-spacing: 0.08em;
  line-height: 1.5;
  overflow-wrap: anywhere;
}

.release-notes-header h2,
.release-notes-title {
  margin: 4px 0 7px;
  color: #f0dfb9;
  font-family: var(--font-brush, "Noto Serif SC", "Songti SC", serif);
  font-size: clamp(25px, 3vw, 36px);
  font-weight: 600;
  line-height: 1.25;
  white-space: normal;
  overflow-wrap: anywhere;
}

.release-notes-header p,
.release-notes-summary {
  min-width: 0;
  margin: 0;
  color: #bbb9aa;
  font-size: var(--ming-font-body, 16px);
  line-height: 1.7;
  white-space: normal;
  overflow-wrap: anywhere;
  text-overflow: clip;
}

.release-notes-close {
  min-width: 92px;
  min-height: 44px;
  padding: 8px 12px;
  border: 1px solid rgba(179, 143, 75, 0.52);
  background: #211b0e;
  color: #e0c98f;
  font: inherit;
  font-size: var(--ming-font-small, 14px);
  line-height: 1.4;
  white-space: normal;
  cursor: pointer;
}

.release-notes-close:hover,
.release-notes-close:focus-visible {
  border-color: #d1ab5e;
  background: #30250f;
  outline: 2px solid rgba(209, 171, 94, 0.18);
  outline-offset: 2px;
}

.release-notes-body {
  min-width: 0;
  min-height: 0;
  padding: 18px 22px 22px;
  overflow-x: clip;
  overflow-y: auto;
  overscroll-behavior: contain;
  scrollbar-gutter: stable;
}

.release-notes-statuses,
.release-notes-sections {
  min-width: 0;
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 12px;
}

.release-notes-status,
.release-notes-section {
  min-width: 0;
  display: grid;
  align-content: start;
  gap: 10px;
  padding: 14px;
  border: 1px solid rgba(157, 145, 105, 0.34);
  border-left-width: 5px;
  background: #111711;
  color: #d9d3bd;
  overflow: hidden;
}

.release-notes-status > header,
.release-notes-section > header {
  min-width: 0;
  display: grid;
  grid-template-columns: auto minmax(0, 1fr);
  gap: 9px;
  align-items: start;
}

.release-notes-status-mark,
.release-notes-status > header::before,
.release-notes-section > header::before {
  display: grid;
  place-items: center;
  width: 34px;
  min-height: 34px;
  border: 1px solid currentColor;
  color: inherit;
  font-size: var(--ming-font-small, 14px);
  font-weight: 900;
  line-height: 1;
}

.release-notes-status h3,
.release-notes-section h3 {
  min-width: 0;
  margin: 0;
  color: #eadfbe;
  font-size: 17px;
  line-height: 1.4;
  white-space: normal;
  overflow-wrap: anywhere;
}

.release-notes-status p,
.release-notes-section p,
.release-notes-status li,
.release-notes-section li,
.release-notes-item,
.release-notes-detail {
  min-width: 0;
  margin: 0;
  color: #c1c2b3;
  font-size: var(--ming-font-body, 16px);
  line-height: 1.65;
  white-space: normal;
  overflow-wrap: anywhere;
  word-break: normal;
  text-overflow: clip;
}

.release-notes-items,
.release-notes-status ul,
.release-notes-section ul {
  min-width: 0;
  display: grid;
  gap: 8px;
  margin: 0;
  padding: 0;
  list-style: none;
}

.release-notes-item,
.release-notes-status li,
.release-notes-section li {
  padding: 9px 10px;
  border-left: 3px solid rgba(154, 143, 106, 0.44);
  background: #0b110d;
}

.release-notes-item b,
.release-notes-item strong,
.release-notes-status li b,
.release-notes-section li b {
  display: block;
  margin-bottom: 3px;
  color: #e5dbc0;
  font-size: 14px;
  line-height: 1.45;
  white-space: normal;
  overflow-wrap: anywhere;
}

/* 三种状态除颜色外还使用“成／续／界”题签，避免玩家只靠颜色猜版本边界。 */
.release-notes-status.is-completed,
.release-notes-section.is-completed,
.release-notes-status.completed,
.release-notes-section.completed,
[data-release-status="completed"] {
  border-left-color: #5c9b73;
  background: #0d1b13;
}

.release-notes-status.is-completed > header::before,
.release-notes-section.is-completed > header::before,
.release-notes-status.completed > header::before,
.release-notes-section.completed > header::before,
[data-release-status="completed"] > header::before {
  color: #9ac6a8;
  content: "成";
}

.release-notes-status.is-completed .release-notes-item,
.release-notes-section.is-completed .release-notes-item,
[data-release-status="completed"] .release-notes-item { border-left-color: #5c9b73; }

.release-notes-status.is-planned,
.release-notes-section.is-planned,
.release-notes-status.planned,
.release-notes-section.planned,
[data-release-status="planned"] {
  border-left-color: #b2893f;
  background: #1c180d;
}

.release-notes-status.is-planned > header::before,
.release-notes-section.is-planned > header::before,
.release-notes-status.planned > header::before,
.release-notes-section.planned > header::before,
[data-release-status="planned"] > header::before {
  color: #d7b768;
  content: "续";
}

.release-notes-status.is-planned .release-notes-item,
.release-notes-section.is-planned .release-notes-item,
[data-release-status="planned"] .release-notes-item { border-left-color: #b2893f; }

.release-notes-status.is-excluded,
.release-notes-section.is-excluded,
.release-notes-status.excluded,
.release-notes-section.excluded,
[data-release-status="excluded"] {
  border-left-color: #985847;
  background: #1c110f;
}

.release-notes-status.is-excluded > header::before,
.release-notes-section.is-excluded > header::before,
.release-notes-status.excluded > header::before,
.release-notes-section.excluded > header::before,
[data-release-status="excluded"] > header::before {
  color: #d69a87;
  content: "界";
}

.release-notes-status.is-excluded .release-notes-item,
.release-notes-section.is-excluded .release-notes-item,
[data-release-status="excluded"] .release-notes-item { border-left-color: #985847; }

.release-notes-footer {
  min-width: 0;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 14px;
  padding: 12px 22px;
  border-top: 1px solid rgba(183, 145, 72, 0.3);
  background: #12150f;
}

.release-notes-footer p,
.release-notes-footer small {
  min-width: 0;
  margin: 0;
  color: #aaa997;
  font-size: var(--ming-font-small, 14px);
  line-height: 1.55;
  white-space: normal;
  overflow-wrap: anywhere;
}

.release-notes-footer button {
  flex: 0 0 auto;
  min-width: 112px;
  min-height: 44px;
  padding: 8px 13px;
  border: 1px solid rgba(181, 143, 70, 0.58);
  background: #2a210f;
  color: #e3cd93;
  font: inherit;
  font-size: var(--ming-font-small, 14px);
  white-space: normal;
  cursor: pointer;
}

@media (max-width: 760px) {
  .release-notes-backdrop {
    place-items: stretch;
    padding: 0;
  }

  .release-notes-panel {
    width: 100%;
    max-height: 100dvh;
    min-height: 100dvh;
    border-width: 0;
    border-left-width: 4px;
  }

  .release-notes-header {
    padding: 15px 14px 12px;
  }

  .release-notes-header h2,
  .release-notes-title { font-size: clamp(23px, 8vw, 30px); }

  .release-notes-close {
    min-width: 72px;
    min-height: 48px;
  }

  .release-notes-body {
    padding: 12px 14px 16px;
    scrollbar-gutter: auto;
  }

  .release-notes-statuses,
  .release-notes-sections { grid-template-columns: 1fr; }

  .release-notes-status,
  .release-notes-section { padding: 12px; }

  .release-notes-footer {
    align-items: stretch;
    flex-direction: column;
    padding: 10px 14px calc(10px + env(safe-area-inset-bottom));
  }

  .release-notes-footer button {
    width: 100%;
    min-height: 48px;
  }
}

@media (max-width: 420px) {
  .release-notes-header {
    grid-template-columns: minmax(0, 1fr) 68px;
    gap: 9px;
  }

  .release-notes-header p,
  .release-notes-summary { grid-column: 1 / -1; }

  .release-notes-status > header,
  .release-notes-section > header {
    grid-template-columns: 32px minmax(0, 1fr);
  }

  .release-notes-status-mark,
  .release-notes-status > header::before,
  .release-notes-section > header::before {
    width: 32px;
    min-height: 32px;
  }
}

/* 当前主界面更新卷精确接线。 */
.release-notes-heading {
  min-width: 0;
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 12px 18px;
  align-items: start;
  padding: 20px 22px 16px;
  border-bottom: 1px solid rgba(183, 145, 72, 0.34);
  background: #15160f;
}

.release-notes-heading > div { min-width: 0; }
.release-notes-heading > div > span {
  display: block;
  color: #c5a45f;
  font-size: var(--ming-font-small, 14px);
  font-weight: 800;
  letter-spacing: 0.08em;
  line-height: 1.5;
  overflow-wrap: anywhere;
}
.release-notes-heading h2 {
  margin: 4px 0 7px;
  color: #f0dfb9;
  font-family: var(--font-brush, "Noto Serif SC", "Songti SC", serif);
  font-size: clamp(25px, 3vw, 36px);
  font-weight: 600;
  line-height: 1.25;
  white-space: normal;
  overflow-wrap: anywhere;
}
.release-notes-heading p {
  min-width: 0;
  margin: 0;
  color: #bbb9aa;
  font-size: var(--ming-font-body, 16px);
  line-height: 1.7;
  white-space: normal;
  overflow-wrap: anywhere;
  text-overflow: clip;
}
.release-notes-heading button {
  min-width: 92px;
  min-height: 44px;
  padding: 8px 12px;
  border: 1px solid rgba(179, 143, 75, 0.52);
  background: #211b0e;
  color: #e0c98f;
  font: inherit;
  font-size: var(--ming-font-small, 14px);
  line-height: 1.4;
  white-space: normal;
  cursor: pointer;
}

.release-notes-scroll {
  min-width: 0;
  min-height: 0;
  display: grid;
  grid-auto-rows: max-content;
  align-content: start;
  gap: 14px;
  padding: 18px 22px 22px;
  overflow-x: clip;
  overflow-y: auto;
  overscroll-behavior: contain;
  scrollbar-gutter: stable;
}

.release-notes-section.completed { border-left-color: #5c9b73; background: #0d1b13; }
.release-notes-section.excluded { border-left-color: #985847; background: #1c110f; }
.release-notes-section.roadmap { border-left-color: #b2893f; background: #1c180d; }
.release-notes-section.roadmap > header::before { color: #d7b768; content: "续"; }

.release-notes-section > header > span {
  grid-column: 2;
  grid-row: 1;
  color: #c7aa68;
  font-size: var(--ming-font-small, 14px);
  font-weight: 800;
  line-height: 1.45;
}
.release-notes-section > header::before {
  grid-column: 1;
  grid-row: 1 / span 3;
}
.release-notes-section > header > h3 {
  grid-column: 2;
  grid-row: 2;
}
.release-notes-section.completed > header > span { color: #9ac6a8; }
.release-notes-section.excluded > header > span { color: #d69a87; }
.release-notes-section > header > small {
  grid-column: 2;
  grid-row: 3;
  color: #aaa997;
  font-size: var(--ming-font-small, 14px);
  line-height: 1.5;
  overflow-wrap: anywhere;
}

.release-notes-completed-grid {
  min-width: 0;
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 9px;
}

.release-notes-detail-trigger {
  min-width: 0;
  min-height: 44px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  padding: 10px 13px;
  border: 1px solid rgba(124, 168, 139, 0.5);
  background: #112018;
  color: #b9d2bf;
  font: inherit;
  font-size: var(--ming-font-small, 14px);
  font-weight: 760;
  text-align: left;
  cursor: pointer;
}
.release-notes-detail-trigger i {
  color: #d6bf83;
  font-size: 20px;
  font-style: normal;
}
.release-notes-detail-trigger:hover,
.release-notes-detail-trigger:focus-visible {
  border-color: #88ae91;
  background: #182a20;
  outline: 2px solid rgba(136, 174, 145, 0.17);
  outline-offset: 2px;
}
.release-notes-roadmap-item .release-notes-detail-trigger {
  width: 100%;
  margin-top: 10px;
}

.release-notes-completed-item {
  min-width: 0;
  padding: 11px 12px;
  border-left: 3px solid #5c9b73;
  background: #09120d;
  color: #c1c8b9;
  font-size: var(--ming-font-small, 14px);
  line-height: 1.65;
  overflow: hidden;
}
.release-notes-completed-item > span {
  display: block;
  color: #91bda0;
  font-size: var(--ming-font-small, 14px);
  font-weight: 800;
  line-height: 1.45;
  overflow-wrap: anywhere;
}
.release-notes-completed-item h3,
.release-notes-roadmap-item h3 {
  margin: 4px 0;
  color: #e7dcc0;
  font-size: 15px;
  line-height: 1.45;
  white-space: normal;
  overflow-wrap: anywhere;
}
.release-notes-completed-item p,
.release-notes-roadmap-item p {
  margin: 0;
  color: #b9beaf;
  font-size: var(--ming-font-body, 16px);
  line-height: 1.65;
  white-space: normal;
  overflow-wrap: anywhere;
  text-overflow: clip;
}

.release-notes-section.excluded ul {
  min-width: 0;
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 8px;
  margin: 0;
  padding: 0;
  list-style: none;
}
.release-notes-section.excluded li {
  min-width: 0;
  padding: 9px 10px;
  border-left: 3px solid #985847;
  background: #130b0a;
  color: #cdb5ac;
  font-size: var(--ming-font-small, 14px);
  line-height: 1.6;
  white-space: normal;
  overflow-wrap: anywhere;
}

.release-notes-roadmap-list {
  min-width: 0;
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 9px;
}
.release-notes-roadmap-item {
  min-width: 0;
  padding: 11px 12px;
  border: 1px solid rgba(174, 142, 75, 0.32);
  border-left: 3px solid #94763c;
  background: #121109;
  font-size: var(--ming-font-small, 14px);
  line-height: 1.65;
  overflow: hidden;
}
.release-notes-roadmap-item.hotfix { border-left-color: #8b8062; background: #12130e; }
.release-notes-roadmap-item.planned { border-left-color: #b2893f; background: #181408; }
.release-notes-roadmap-item > span {
  display: block;
  color: #d1b46e;
  font-size: var(--ming-font-small, 14px);
  font-weight: 800;
  line-height: 1.45;
  overflow-wrap: anywhere;
}

.release-notes-panel > footer {
  min-width: 0;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 14px;
  padding: 12px 22px;
  border-top: 1px solid rgba(183, 145, 72, 0.3);
  background: #12150f;
}
.release-notes-panel > footer span,
.release-notes-panel > footer strong {
  min-width: 0;
  color: #aaa997;
  font-size: var(--ming-font-small, 14px);
  line-height: 1.55;
  white-space: normal;
  overflow-wrap: anywhere;
}
.release-notes-panel > footer strong { color: #d0b777; text-align: right; }

.release-detail-heading button { min-width: 132px; }

.release-detail-scroll {
  min-width: 0;
  min-height: 0;
  display: grid;
  grid-auto-rows: max-content;
  align-content: start;
  gap: 12px;
  padding: 18px 22px 22px;
  overflow-x: clip;
  overflow-y: auto;
  overscroll-behavior: contain;
  scrollbar-gutter: stable;
}

.release-detail-section,
.release-detail-notes {
  min-width: 0;
  padding: 14px;
  border: 1px solid rgba(157, 145, 105, 0.34);
  border-left: 5px solid #5c8c70;
  background: #0d1711;
}

.release-detail-section > header,
.release-detail-notes > header {
  display: grid;
  gap: 3px;
  margin-bottom: 10px;
}
.release-detail-section > header span,
.release-detail-notes > header span {
  color: #99bda2;
  font-size: var(--ming-font-small, 14px);
  font-weight: 800;
  line-height: 1.45;
}
.release-detail-section > header h3,
.release-detail-notes > header h3 {
  margin: 0;
  color: #e8ddc0;
  font-size: 18px;
  line-height: 1.45;
  overflow-wrap: anywhere;
}

.release-detail-list {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 8px;
}
.release-detail-item {
  min-width: 0;
  padding: 10px 11px;
  border-left: 3px solid rgba(111, 157, 123, 0.68);
  background: #09110d;
  color: #bdc5b8;
  font-size: var(--ming-font-small, 14px);
  line-height: 1.65;
}
.release-detail-item h4 { margin: 0 0 4px; color: #e4d9bd; font-size: 15px; line-height: 1.45; overflow-wrap: anywhere; }
.release-detail-item p { margin: 0; color: #b9beaf; font-size: var(--ming-font-body, 16px); line-height: 1.65; overflow-wrap: anywhere; }
.release-detail-notes { border-left-color: #985847; background: #1a100e; }
.release-detail-notes > header span { color: #d69a87; }
.release-detail-notes ul { display: grid; gap: 7px; margin: 0; padding: 0; list-style: none; }
.release-detail-notes li { padding: 9px 10px; border-left: 3px solid #985847; background: #120b09; color: #cdb5ac; font-size: var(--ming-font-small, 14px); line-height: 1.6; overflow-wrap: anywhere; }

@media (max-width: 760px) {
  .release-notes-heading {
    grid-template-columns: minmax(0, 1fr) 72px;
    gap: 9px;
    padding: 15px 14px 12px;
  }
  .release-notes-heading h2 { font-size: clamp(23px, 8vw, 30px); }
  .release-notes-heading p { grid-column: 1 / -1; }
  .release-notes-heading button { min-width: 72px; min-height: 48px; }
  .release-detail-heading { grid-template-columns: minmax(0, 1fr) 92px; }
  .release-notes-scroll {
    gap: 10px;
    padding: 12px 14px 16px;
    scrollbar-gutter: auto;
  }
  .release-notes-completed-grid,
  .release-notes-section.excluded ul,
  .release-notes-roadmap-list,
  .release-detail-list { grid-template-columns: 1fr; }
  .release-detail-heading button { min-width: 92px; }
  .release-detail-scroll { gap: 10px; padding: 12px 14px 16px; scrollbar-gutter: auto; }
  .release-notes-panel > footer {
    align-items: flex-start;
    flex-direction: column;
    gap: 4px;
    padding: 10px 14px calc(10px + env(safe-area-inset-bottom));
  }
  .release-notes-panel > footer strong { text-align: left; }
}

/* 0.1.4 田作季节卷：纯视图，权威动作由接线层传入。 */
.farm-season-cycle {
  width: 100%;
  min-width: 0;
  display: grid;
  gap: 12px;
  padding: 14px;
  border: 1px solid rgba(151, 125, 68, 0.44);
  background: var(--folio-card, #0b120e);
  color: var(--folio-ink, #d7ccb4);
  font-size: var(--ming-font-small, 14px);
  line-height: 1.6;
  overflow-x: clip;
}

.farm-season-cycle,
.farm-season-cycle * {
  box-sizing: border-box;
  min-width: 0;
}

.farm-season-cycle p,
.farm-season-cycle span,
.farm-season-cycle small,
.farm-season-cycle b,
.farm-season-cycle li {
  overflow-wrap: anywhere;
}

.farm-season-heading {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 16px;
  padding: 14px 15px;
  border-left: 4px solid #9a7a3f;
  background: var(--folio-card, #101811);
}

.farm-season-heading > div { display: grid; gap: 3px; }
.farm-season-heading span,
.farm-season-section > header span,
.farm-season-action header span,
.farm-season-weather span,
.farm-season-incident span,
.farm-season-supply span,
.farm-season-history span {
  color: var(--folio-muted, #bda76d);
  font-size: var(--ming-font-small, 14px);
  font-weight: 780;
  line-height: 1.45;
  letter-spacing: 0.05em;
}
.farm-season-heading h2 {
  margin: 0;
  color: var(--folio-ink, #f0dfb9);
  font-family: "Noto Serif SC", "Songti SC", serif;
  font-size: clamp(22px, 3vw, 30px);
  line-height: 1.35;
}
.farm-season-heading p { margin: 0; color: var(--folio-muted, #aea58f); font-size: var(--ming-font-body, 16px); }
.farm-season-heading > b {
  flex: 0 0 auto;
  max-width: 42%;
  padding: 7px 10px;
  border: 1px solid rgba(157, 125, 58, 0.55);
  background: var(--folio-card, #19180f);
  color: var(--folio-ink, #dfc178);
  font-size: var(--ming-font-small, 14px);
  line-height: 1.45;
  text-align: right;
}

.farm-season-section {
  min-width: 0;
  display: grid;
  gap: 10px;
  padding: 13px;
  border: 1px solid rgba(125, 147, 122, 0.23);
  background: var(--folio-card, #0d1510);
  overflow-x: clip;
}
.farm-season-section > header { display: grid; gap: 2px; }
.farm-season-section > header h3 {
  margin: 0;
  color: var(--folio-ink, #e8dbc0);
  font-family: "Noto Serif SC", "Songti SC", serif;
  font-size: 18px;
  line-height: 1.4;
}

.farm-season-stage > ol {
  display: grid;
  grid-template-columns: repeat(7, minmax(0, 1fr));
  gap: 6px;
  margin: 0;
  padding: 0;
  list-style: none;
}
.farm-season-stage > ol li {
  min-height: 50px;
  display: grid;
  grid-template-columns: 24px minmax(0, 1fr);
  align-items: center;
  gap: 6px;
  padding: 7px;
  border: 1px solid rgba(119, 130, 111, 0.24);
  background: var(--folio-card, #0a100c);
  color: var(--folio-ink, #8f9587);
  font-size: var(--ming-font-small, 14px);
}
.farm-season-stage > ol li i,
.farm-season-weather > i,
.farm-season-incident > i,
.farm-season-supply > i,
.farm-season-history i {
  display: inline-grid;
  place-items: center;
  width: 24px;
  height: 24px;
  border: 1px solid currentColor;
  border-radius: 50%;
  font-size: var(--ming-font-small, 14px);
  font-style: normal;
  line-height: 1;
}
.farm-season-stage > ol li.done { border-color: var(--folio-rule, rgba(85, 137, 108, 0.52)); color: var(--folio-success, #8ab296); }
.farm-season-stage > ol li.current { border-color: var(--folio-rule, #9c7b3c); background: var(--folio-selected-surface, #1b180f); color: var(--folio-ink, #e0c37f); }
.farm-season-stage > ol li.later { color: var(--folio-ink, #767e73); }

.farm-season-stage-facts {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 8px;
}
.farm-season-stage-facts article {
  padding: 10px 11px;
  border-left: 3px solid rgba(109, 145, 119, 0.5);
  background: var(--folio-card, #09110c);
}
.farm-season-stage-facts article > span { color: var(--folio-muted, #93aa98); font-size: var(--ming-font-small, 14px); font-weight: 760; }
.farm-season-stage-facts p { margin: 4px 0 0; color: var(--folio-muted, #cfc4ad); font-size: var(--ming-font-body, 16px); line-height: 1.65; }

.farm-season-urgency > div {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 8px;
}
.farm-season-weather,
.farm-season-incident {
  display: grid;
  grid-template-columns: 30px minmax(0, 1fr);
  gap: 10px;
  padding: 11px 12px;
  border: 1px solid rgba(135, 151, 123, 0.28);
  border-left: 4px solid #69806e;
  background: var(--folio-card, #0a120d);
}
.farm-season-weather.warning,
.farm-season-weather.urgent,
.farm-season-incident.warning { border-left-color: var(--folio-rule, #aa7c3b); background: var(--folio-danger-surface, #171309); }
.farm-season-weather.urgent,
.farm-season-incident.danger { border-left-color: var(--folio-rule, #a05b48); background: var(--folio-danger-surface, #190d0a); }
.farm-season-weather h4,
.farm-season-incident h4,
.farm-season-action h4,
.farm-season-supply h4 {
  margin: 2px 0 0;
  color: var(--folio-ink, #e2d5ba);
  font-size: 15px;
  line-height: 1.45;
}
.farm-season-weather p,
.farm-season-incident p,
.farm-season-action p,
.farm-season-supply p,
.farm-season-history p {
  margin: 4px 0 0;
  color: var(--folio-muted, #bbb29f);
  font-size: var(--ming-font-body, 16px);
  line-height: 1.65;
}

.farm-season-actions {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 8px;
}
.farm-season-action {
  min-width: 0;
  display: grid;
  grid-template-rows: auto 1fr auto;
  gap: 7px;
  padding: 11px;
  border: 1px solid rgba(117, 139, 115, 0.3);
  background: var(--folio-card, #09110c);
}
.farm-season-action.available { border-color: var(--folio-rule, rgba(91, 151, 116, 0.55)); }
.farm-season-action.urgent { border-left: 4px solid #ae7c39; }
.farm-season-action.blocked { border-color: var(--folio-rule, rgba(142, 80, 66, 0.5)); background: var(--folio-danger-surface, #150c0a); }
.farm-season-action.blocked header span { color: var(--folio-danger, #c88975); }
.farm-season-action button {
  width: 100%;
  min-height: 52px;
  padding: 8px 11px;
  border: 1px solid #718c74;
  background: var(--folio-card, #183020);
  color: var(--folio-ink, #e2eadf);
  font: inherit;
  text-align: left;
  cursor: pointer;
}
.farm-season-action button b,
.farm-season-action button small { display: block; color: inherit; font-size: var(--ming-font-small, 14px); line-height: 1.45; }
.farm-season-action button small { margin-top: 2px; opacity: 0.78; }
.farm-season-action button:not(:disabled):hover,
.farm-season-action button:not(:disabled):focus-visible { border-color: var(--folio-rule, #b39550); outline: 2px solid rgba(179, 149, 80, 0.3); outline-offset: 2px; }
.farm-season-action button:disabled { border-color: var(--folio-rule, #554b40); background: var(--folio-card, #1a1713); color: var(--folio-ink, #918a7e); cursor: not-allowed; }

.farm-season-supplies {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 8px;
}
.farm-season-supply {
  display: grid;
  grid-template-columns: 30px minmax(0, 1fr);
  gap: 9px;
  padding: 10px;
  border: 1px solid rgba(118, 140, 115, 0.28);
  background: var(--folio-card, #09110c);
}
.farm-season-supply > i { color: var(--folio-ink, #8eac94); }
.farm-season-supply > div > b { display: block; margin-top: 4px; color: var(--folio-ink, #d8c9a8); font-size: var(--ming-font-small, 14px); }
.farm-season-supply.low { border-color: var(--folio-rule, rgba(159, 119, 56, 0.55)); background: var(--folio-card, #171309); }
.farm-season-supply.missing,
.farm-season-supply.blocked { border-color: var(--folio-rule, rgba(146, 79, 64, 0.5)); background: var(--folio-danger-surface, #150c0a); }
.farm-season-supply.missing span,
.farm-season-supply.blocked span { color: var(--folio-danger, #c98b78); }

.farm-season-history {
  display: grid;
  gap: 7px;
  margin: 0;
  padding: 0;
  list-style: none;
}
.farm-season-history li {
  display: grid;
  grid-template-columns: 30px minmax(0, 1fr);
  gap: 9px;
  padding: 9px 10px;
  border-left: 3px solid rgba(143, 120, 69, 0.5);
  background: var(--folio-card, #0a100c);
  font-size: var(--ming-font-small, 14px);
}
.farm-season-history li > div > b { display: block; margin-top: 2px; color: var(--folio-ink, #d9c9a6); font-size: var(--ming-font-small, 14px); }
.farm-season-empty {
  margin: 0;
  padding: 11px;
  border: 1px dashed rgba(139, 124, 91, 0.4);
  color: var(--folio-ink, #aaa18e);
  font-size: var(--ming-font-small, 14px);
  line-height: 1.65;
}

@media (max-width: 900px) {
  .farm-season-stage > ol { grid-template-columns: repeat(4, minmax(0, 1fr)); }
  .farm-season-actions { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .farm-season-supplies { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (max-width: 620px) {
  .farm-season-cycle { gap: 10px; padding: 10px; }
  .farm-season-heading { flex-direction: column; gap: 9px; padding: 12px; }
  .farm-season-heading > b { max-width: 100%; text-align: left; }
  .farm-season-section { padding: 11px; }
  .farm-season-stage > ol { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .farm-season-stage-facts,
  .farm-season-urgency > div,
  .farm-season-actions,
  .farm-season-supplies { grid-template-columns: 1fr; }
  .farm-season-action button { min-height: 56px; }
}

/* 0.1.4-2 · 世界内受阻不再是死按钮：先讲眼前发生了什么，再给真实后路。 */
button.blocked-action-explorable,
button[aria-disabled="true"].blocked-action-explorable {
  position: relative;
  opacity: 0.86;
  cursor: help;
  filter: saturate(0.72);
}
button.blocked-action-explorable::after {
  content: '查看缘由';
  position: absolute;
  right: 8px;
  top: 7px;
  padding: 2px 6px;
  color: #d4bd80;
  border: 1px solid rgba(197, 160, 82, 0.38);
  background: rgba(17, 22, 18, 0.9);
  font-size: var(--ming-font-small, 14px);
  font-weight: 700;
  line-height: 1.25;
  letter-spacing: 0.04em;
  pointer-events: none;
}
button.blocked-action-explorable:hover,
button.blocked-action-explorable:focus-visible {
  opacity: 1;
  border-color: rgba(203, 172, 102, 0.68) !important;
  box-shadow: inset 3px 0 rgba(176, 113, 72, 0.62), 0 0 0 2px rgba(201, 169, 94, 0.1);
  filter: none;
}

.blocked-action-backdrop {
  z-index: 2100;
  padding: 18px;
  background: rgba(2, 6, 5, 0.88);
  backdrop-filter: blur(5px);
}
.blocked-action-modal {
  width: min(720px, calc(100vw - 36px));
  max-height: min(760px, calc(100vh - 36px));
  overflow-y: auto;
  color: #cfc4ad;
  border: 1px solid rgba(199, 161, 82, 0.46);
  border-top: 3px solid #9e7d3d;
  background:
    radial-gradient(circle at 86% 4%, rgba(142, 105, 48, 0.18), transparent 36%),
    linear-gradient(155deg, rgba(19, 31, 25, 0.98), rgba(7, 12, 10, 0.99) 58%);
  box-shadow: 0 26px 80px rgba(0, 0, 0, 0.62), inset 0 0 0 1px rgba(224, 192, 119, 0.07);
  animation: modal-rise 180ms ease-out;
  scrollbar-color: #75623e #080d0b;
}
.blocked-action-modal:focus { outline: none; }
.blocked-action-modal > header {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 18px;
  padding: 23px 26px 17px;
  border-bottom: 1px solid rgba(200, 165, 91, 0.23);
}
.blocked-action-modal > header > div { min-width: 0; }
.blocked-action-modal > header span {
  color: #99b6a6;
  font-size: var(--ming-font-small, 14px);
  font-weight: 760;
  letter-spacing: 0.14em;
}
.blocked-action-modal > header h2 {
  margin: 4px 0 0;
  color: #f0e0bd;
  font-family: var(--display);
  font-size: clamp(30px, 4vw, 42px);
  line-height: 1.06;
  letter-spacing: 0.08em;
}
.blocked-action-modal > header p { margin: 7px 0 0; color: #a99f8c; font-size: var(--ming-font-body, 16px); line-height: 1.5; }
.blocked-action-modal > header > button {
  width: 54px;
  min-height: 58px;
  flex: 0 0 auto;
  display: grid;
  place-items: center;
  gap: 2px;
  padding: 0;
  color: #d0b66d;
  border: 0;
  background: transparent;
  cursor: pointer;
}
.blocked-action-modal > header > button > i {
  width: 42px;
  height: 42px;
  display: grid;
  place-items: center;
  color: #d0b66d;
  border: 1px solid rgba(208, 182, 109, 0.54);
  border-radius: 50%;
  background: rgba(116, 85, 34, 0.12);
  font-family: var(--display);
  font-size: 20px;
  font-style: normal;
}
.blocked-action-modal > header > button > small { color: #9c917a; font-size: var(--ming-font-small, 14px); line-height: 1; }
.blocked-action-modal > header > button:hover > i,
.blocked-action-modal > header > button:focus-visible > i { color: #f0d58f; border-color: #d0b66d; background: rgba(116, 85, 34, 0.25); }
.blocked-action-story { padding: 19px 26px 17px; }
.blocked-action-story small,
.blocked-action-reason > span,
.blocked-action-remedies > header span { color: #a9c4b5; font-size: var(--ming-font-small, 14px); font-weight: 760; letter-spacing: 0.1em; }
.blocked-action-story p { margin: 7px 0 0; color: #ddd1b8; font-size: var(--ming-font-body, 16px); line-height: 1.82; }
.blocked-action-reason {
  display: grid;
  gap: 6px;
  margin: 0 26px;
  padding: 14px 16px;
  border: 1px solid rgba(168, 83, 60, 0.42);
  border-left: 4px solid #a95f49;
  background: linear-gradient(90deg, rgba(89, 39, 28, 0.28), rgba(32, 24, 18, 0.25));
}
.blocked-action-reason > b { color: #edcfb5; font-size: 14px; line-height: 1.58; }
.blocked-action-reason > small { color: #a7b9ae; font-size: var(--ming-font-small, 14px); line-height: 1.55; }
.blocked-action-remedies { padding: 19px 26px 3px; }
.blocked-action-remedies > header { display: flex; align-items: baseline; justify-content: space-between; gap: 14px; margin-bottom: 9px; }
.blocked-action-remedies > header small { color: #887f6f; font-size: var(--ming-font-small, 14px); }
.blocked-action-remedies > button {
  width: 100%;
  min-height: 54px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  margin-top: 7px;
  padding: 10px 12px 10px 14px;
  color: #dcd1ba;
  border: 1px solid rgba(103, 157, 130, 0.34);
  background: linear-gradient(90deg, rgba(22, 49, 37, 0.66), rgba(10, 21, 17, 0.82));
  text-align: left;
  cursor: pointer;
}
.blocked-action-remedies > button:hover,
.blocked-action-remedies > button:focus-visible { border-color: #7eaa92; background: linear-gradient(90deg, rgba(31, 67, 51, 0.78), rgba(13, 28, 22, 0.9)); }
.blocked-action-remedies > button > span { min-width: 0; display: grid; gap: 3px; }
.blocked-action-remedies > button b { color: #e5d7b8; font-size: 14px; }
.blocked-action-remedies > button small { color: #9eb1a6; font-size: var(--ming-font-small, 14px); line-height: 1.42; }
.blocked-action-remedies > button > i { color: #d2b66b; font-size: var(--ming-font-small, 14px); font-style: normal; }
.blocked-action-remedies > p { margin: 0; padding: 13px; color: #a89f8e; border: 1px dashed rgba(176, 145, 81, 0.28); font-size: var(--ming-font-body, 16px); line-height: 1.65; }
.blocked-action-modal > footer {
  display: flex;
  justify-content: flex-end;
  gap: 9px;
  padding: 17px 26px 23px;
}
.blocked-action-modal > footer button {
  min-height: 46px;
  display: grid;
  gap: 2px;
  padding: 8px 14px;
  color: #bdb19a;
  border: 1px solid rgba(190, 151, 76, 0.28);
  background: rgba(12, 18, 15, 0.84);
  cursor: pointer;
}
.blocked-action-modal > footer button:first-child { border-color: rgba(99, 151, 124, 0.46); color: #d9ceb6; }
.blocked-action-modal > footer button b { font-size: var(--ming-font-small, 14px); }
.blocked-action-modal > footer button small { color: #87998e; font-size: var(--ming-font-small, 14px); }

@media (max-width: 620px) {
  button.blocked-action-explorable::after { top: 5px; right: 5px; font-size: var(--ming-font-small, 14px); }
  .blocked-action-backdrop { align-items: flex-end; padding: 0; }
  .blocked-action-modal {
    width: 100vw;
    max-height: min(86vh, 760px);
    border-width: 1px 0 0;
    border-radius: 16px 16px 0 0;
  }
  .blocked-action-modal > header { padding: 18px 16px 13px; }
  .blocked-action-modal > header h2 { font-size: 31px; }
  .blocked-action-modal > header > button { width: 48px; min-height: 52px; }
  .blocked-action-modal > header > button > i { width: 38px; height: 38px; }
  .blocked-action-story { padding: 15px 16px 13px; }
  .blocked-action-story p { font-size: var(--ming-font-body, 16px); line-height: 1.7; }
  .blocked-action-reason { margin: 0 16px; padding: 12px; }
  .blocked-action-remedies { padding: 15px 16px 2px; }
  .blocked-action-remedies > header { align-items: flex-start; flex-direction: column; gap: 2px; }
  .blocked-action-remedies > button { min-height: 58px; }
  .blocked-action-modal > footer { display: grid; grid-template-columns: 1fr; padding: 14px 16px max(18px, env(safe-area-inset-bottom)); }
  .blocked-action-modal > footer button { min-height: 48px; width: 100%; }
}

@media (prefers-reduced-motion: reduce) {
  .blocked-action-modal { animation: none; }
}

/* One journey's receipts, readable both beside a shop and while on the road. */
.trade-journey-ledger {
  min-width: 0;
  border: 1px solid rgba(170, 145, 91, 0.48);
  background: #151a13;
  color: #e2d6b7;
  font-size: 14px;
  line-height: 1.65;
  overflow-wrap: anywhere;
}
.trade-journey-ledger *, .trade-journey-ledger *::before, .trade-journey-ledger *::after { box-sizing: border-box; }
.trade-journey-ledger summary {
  min-height: 48px;
  padding: 12px 14px;
  cursor: pointer;
  color: #ebd7a2;
  font-size: 14px;
  line-height: 1.6;
}
.trade-journey-ledger > summary { background: #202216; font-weight: 700; }
.trade-journey-ledger summary small { margin-left: 10px; color: #c1c6b2; font-size: var(--ming-font-small, 14px); font-weight: 400; }
.trade-journey-ledger :is(p, small, dt, dd, li, span, b) { font-size: 14px; }
.trade-journey-ledger :is(h4, h5) { margin: 5px 0; color: #eedab2; font-size: 16px; }
.trade-journey-ledger p { margin: 8px 0; }
.trade-journey-body { display: grid; gap: 12px; min-width: 0; padding: 14px; }
.trade-journey-record { min-width: 0; }
.trade-journey-record header > span { color: #a8bea4; }
.trade-journey-ledger dl { margin: 10px 0; }
.trade-journey-ledger dl > div { display: flex; flex-wrap: wrap; justify-content: space-between; gap: 4px 14px; padding: 6px 0; border-bottom: 1px solid #394031; }
.trade-journey-ledger dt { color: #c4c8b7; }
.trade-journey-ledger dd { margin: 0; color: #eee4c7; }
.trade-journey-ledger .trade-journey-figures { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0 22px; }
.trade-journey-net { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 8px; padding: 10px 12px; border: 1px solid #635c3c; background: #242618; }
.trade-journey-net strong { color: #f1d89b; font-size: 20px; }
.trade-journey-ledger .trade-journey-caution, .trade-journey-notes { color: #d5c095; }
.trade-journey-ledger ul { padding-left: 23px; }
.trade-journey-breakdown, .trade-journey-history { min-width: 0; border-top: 1px solid #4e503b; }
.trade-journey-history > article { padding: 12px 0; border-top: 1px solid #394031; }
.trade-journey-actions { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 220px), 1fr)); gap: 10px; }
.trade-journey-ledger button { width: 100%; min-height: 48px; padding: 10px 14px; border: 1px solid #7d764d; background: #303522; color: #f1e2bb; text-align: left; cursor: pointer; white-space: normal; }
.trade-journey-ledger button b, .trade-journey-ledger button small { display: block; font-size: 14px; line-height: 1.6; }
.trade-journey-ledger button small { color: #c4cbb6; }
.trade-journey-ledger button:disabled { opacity: .6; cursor: wait; }
.trade-journey-ledger :is(button, summary):focus-visible { outline: 2px solid #e0bb62; outline-offset: 3px; }
.trade-journey-blocked { padding: 12px; border-left: 3px solid #ad8757; background: #242119; }
.home-interior-ledger .dwelling-storage-columns article:has([data-household-water-container]) :is(b, small) {
  font-size: var(--ming-font-small, 14px);
}
.quantity-action {
  display: grid;
  container-type: inline-size;
  gap: 8px;
  min-width: 0;
  width: 100%;
  padding: 10px;
  border: 1px solid #53644d;
  background: #111b13;
  color: #e2d6b7;
  font-size: var(--ming-font-small, 14px);
  line-height: 1.6;
  overflow-wrap: anywhere;
}
.quantity-action, .quantity-action * { box-sizing: border-box; min-width: 0; }
.quantity-action header { display: flex; flex-wrap: wrap; justify-content: space-between; gap: 4px 12px; }
.quantity-action :is(b, small, span, p) { font-size: var(--ming-font-small, 14px); line-height: 1.6; }
.quantity-action p { margin: 0; }
.quantity-action .quantity-action-controls { display: grid; grid-template-columns: 44px minmax(52px, 1fr) 44px 56px; gap: 6px; align-items: end; }
.quantity-action-controls label { display: grid; gap: 2px; }
.quantity-action .quantity-action-controls input { width: 100%; height: 44px; min-height: 44px; border: 1px solid #79886b; border-radius: 0; background: #0a120e; color: #f1e6c8; font-size: 16px; text-align: center; }
.quantity-action button { min-height: 44px; border: 1px solid #7d845d; padding: 8px; background: #27331e; color: #eaddb7; font-size: var(--ming-font-small, 14px); line-height: 1.5; white-space: normal; cursor: pointer; }
.quantity-action button:disabled { opacity: .5; cursor: default; }
.quantity-action .quantity-action-submit { width: 100%; min-height: 44px; text-align: center; }
.quantity-action .quantity-action-note { display: block; color: #b7c2a8; }
.quantity-action .quantity-action-reason { color: #e3b597; }
.quantity-action [hidden] { display: none; }
.quantity-action :is(input, button):focus-visible { outline: 2px solid #dfc17e; outline-offset: 2px; }
.market-goods-card > footer:has(> .quantity-action),
.market-secondhand-card > footer:has(> .quantity-action) { grid-template-columns: minmax(0, 1fr); }
.market-goods-card > footer > .quantity-action,
.market-secondhand-card > footer > .quantity-action,
.vehicle-cargo-item > .quantity-action,
.dwelling-storage-columns article > .quantity-action,
.dwelling-harvest-batch > .quantity-action,
.market-sell-panel article > .quantity-action,
.inventory-item-actions > .quantity-action { grid-column: 1 / -1; }
.vehicle-cargo-item:has(> .quantity-action),
.dwelling-storage-columns article:has(> .quantity-action),
.market-sell-panel article:has(> .quantity-action) { grid-template-columns: 46px minmax(0, 1fr); }
.vehicle-cargo-stow > div:has(> .quantity-action) { grid-template-columns: repeat(auto-fit, minmax(min(100%, 260px), 1fr)); }
.quantity-action .quantity-action-controls > button { min-height: 44px; padding: 8px; font-size: var(--ming-font-small, 14px); text-align: center; }
.home-interior-ledger .dwelling-storage-columns .quantity-action :is(b, small, span, p, button) { font-size: var(--ming-font-small, 14px); }
@container (max-width: 230px) {
  .quantity-action .quantity-action-controls { grid-template-columns: 44px minmax(52px, 1fr) 44px; }
  .quantity-action [data-quantity-adjust="maximum"] { grid-column: 1 / -1; }
}
@media (max-width: 600px) {
  .trade-journey-body { padding: 11px; }
  .trade-journey-ledger .trade-journey-figures { grid-template-columns: minmax(0, 1fr); }
  .trade-journey-ledger > summary small { display: block; margin-left: 0; }
}
/* Shared reading surfaces. Scene photography keeps its own dark contrast;
   ledger and input surfaces share one warm paper palette across game systems. */
:root {
  --ming-paper: #ede3cd;
  --ming-paper-raised: #f8efdc;
  --ming-paper-shade: #e0d2b8;
  --ming-ink: #302b24;
  --ming-muted: #685b49;
  --ming-rule: #b7a587;
  --ming-vermilion: #873d2d;
  --ming-copper: #806131;
  --ming-paper-fill: linear-gradient(125deg, #f3ead6, #e9ddc4);
}
body { background-color: #191713; }
:where(button, input, select, textarea, summary):focus-visible {
  outline: 2px solid #af7650;
  outline-offset: 3px;
}
:where(button, summary) { touch-action: manipulation; }

/* The menu remains a view into the world, with one clear way to begin. */
.main-menu-atmosphere { background: linear-gradient(90deg, rgba(21, 19, 15, .87), rgba(21, 19, 15, .24) 64%, rgba(21, 19, 15, .08)); }
.main-menu-action { border: 0; border-bottom: 1px solid #97836370; border-radius: 0; box-shadow: none; background: #1917139c; }
.main-menu-action.primary { background: #eee1c8; border-left: 4px solid var(--ming-vermilion); box-shadow: 0 8px 26px #0003; }
.main-menu-action.primary :is(strong, small, i) { color: var(--ming-ink); }
.main-menu-action.primary .main-menu-action-mark { color: var(--ming-vermilion); background: transparent; border-color: #a98e68; }
.main-menu-action small, .main-menu-chapter-option small { font-size: var(--ming-font-small, 14px); }
.main-menu-chapter-option { border-radius: 0; background: #191713a8; }
.main-menu-chapter-option.active { border-color: #b59c70; box-shadow: inset 0 -3px var(--ming-vermilion); }
.origin-card { border-radius: 2px; box-shadow: none; }
.origin-card.selected { border-color: #caa26b; box-shadow: 0 0 0 2px #a96543; }
.origin-card-copy small, .origin-card-copy em { font-size: var(--ming-font-small, 14px); }

/* Compact cover, generous readable page: modal height belongs to the task. */
.ming-folio-panel, .actor-dialogue-modal, .save-panel, .settings-panel,
.game-menu-panel, .archive-drawer { background: var(--ming-paper-fill); border: 1px solid #a88b60; border-radius: 3px; box-shadow: 0 24px 90px #0008; }
.system-focus-heading.system-focus-hero { min-height: 148px; padding: 22px 28px; }
.system-focus-copy { max-width: min(75%, 780px); }
.system-focus-copy h2 { margin: 4px 0 7px; font-size: clamp(30px, 3vw, 42px); line-height: 1.18; }
.system-focus-copy p { margin: 0; font-size: var(--ming-font-body, 16px); line-height: 1.55; }
.system-focus-seal { width: 54px; height: 64px; font-size: 33px; opacity: .65; }
.system-focus-close { min-height: 44px; border-color: #a48c64; background: #211c16c9; }
:is(.ming-folio-body, .system-detail) { padding: 24px 28px 32px; }

/* Existing system-specific ledger structures remain intact. Their typography
   inherits this palette while illustrated figures retain readable captions. */
:is(:is(.ming-folio-body, .system-detail), .actor-dialogue-main, .save-panel, .settings-panel, .game-menu-panel, .archive-drawer) {
  color-scheme: light;
  color: var(--ming-ink);
  --paper-100: #302b24;
  --paper-200: #40372b;
  --paper-300: #685b49;
  --gold-300: #745525;
  --gold-400: #745525;
  --jade-300: #405e48;
  --line: #b7a58770;
  --line-strong: #9e8967;
}
:is(:is(.ming-folio-body, .system-detail), .actor-dialogue-main, .save-panel, .settings-panel, .game-menu-panel, .archive-drawer)
:where(h2, h3, h4, h5, p, small, span, b, strong, em, dt, dd, li, label, time) { color: inherit; text-shadow: none; }
:is(:is(.ming-folio-body, .system-detail), .actor-dialogue-main, .save-panel, .settings-panel, .game-menu-panel, .archive-drawer)
:where(p, small, span, em, dt, dd, li, label, time) { font-size: max(14px, 1em); }
:is(:is(.ming-folio-body, .system-detail), .actor-dialogue-main, .save-panel, .settings-panel, .game-menu-panel, .archive-drawer)
:where(p, small, em, dt) { color: var(--ming-muted); }
:is(:is(.ming-folio-body, .system-detail), .actor-dialogue-main, .save-panel, .settings-panel, .game-menu-panel, .archive-drawer)
:where(button, summary, input, select) { min-height: 44px; font-size: var(--ming-font-body, 16px); }
:is(:is(.ming-folio-body, .system-detail), .actor-dialogue-main, .save-panel, .settings-panel, .game-menu-panel, .archive-drawer)
:where(button, input, textarea, select) { color: var(--ming-ink); background: var(--ming-paper-raised); border-color: var(--ming-rule); border-radius: 2px; box-shadow: none; }
:is(:is(.ming-folio-body, .system-detail), .actor-dialogue-main, .save-panel, .settings-panel, .game-menu-panel, .archive-drawer)
:where(button:hover:not(:disabled)) { background: #fff6e1; border-color: var(--ming-copper); }
:is(:is(.ming-folio-body, .system-detail), .actor-dialogue-main, .save-panel, .settings-panel, .game-menu-panel, .archive-drawer)
:where(button.primary, button.active, button[aria-selected="true"]) { color: #fff1d7; background: var(--ming-vermilion); border-color: var(--ming-vermilion); }
:is(:is(.ming-folio-body, .system-detail), .actor-dialogue-main, .save-panel, .settings-panel, .game-menu-panel, .archive-drawer)
:where(button.primary, button.active, button[aria-selected="true"]) :where(b, strong, small, span, i, em) { color: inherit; }
:is(:is(.ming-folio-body, .system-detail), .actor-dialogue-main, .save-panel, .settings-panel, .game-menu-panel, .archive-drawer)
:where(button:disabled) { opacity: .55; }

/* Lists use quiet ruled rows instead of nested illuminated boxes. */
:is(.ming-folio-body, .system-detail) :is(.inventory-ledger-card, .dwelling-storage, .dwelling-storage-columns > div,
.dwelling-storage-columns article, .inventory-load-summary, .inventory-money-house-summary,
.inventory-money-house-list article, .dwelling-furniture-card, .household-interaction-card,
.household-subsistence-ledger, .household-record, .home-ledger-jumps, .home-interior-actions,
.home-action-card, .activity-section, .market-ledger, .market-trade-card, .shop-item-card,
.vehicle-cargo-item, .vehicle-ledger-card) {
  color: var(--ming-ink); background: #f8efdc80; border-color: #b7a58780;
  border-radius: 2px; box-shadow: none;
}
:is(.ming-folio-body, .system-detail) :is(.dwelling-storage-columns article, .inventory-money-house-list article) { border: 0; border-bottom: 1px solid #b7a58780; padding: 14px 4px; }
:is(.ming-folio-body, .system-detail) .dwelling-storage-columns { gap: 28px; }
:is(.ming-folio-body, .system-detail) .dwelling-storage-columns > div { padding: 14px 18px; }
:is(.ming-folio-body, .system-detail) .dwelling-storage > header { padding-bottom: 16px; border-bottom: 1px solid var(--ming-rule); }
:is(.ming-folio-body, .system-detail) .dwelling-storage h4 { font-size: 19px; }
:is(.ming-folio-body, .system-detail) .dwelling-storage h5 { margin: 0 0 8px; font-size: 17px; }
:is(.ming-folio-body, .system-detail) .inventory-card-list { gap: 12px; }
:is(.ming-folio-body, .system-detail) .inventory-ledger-card { padding: 16px; }
:is(.ming-folio-body, .system-detail) .inventory-ledger-card > figure { background: #dbcba945; border-color: #b7a58770; }
:is(.ming-folio-body, .system-detail) :is(.quantity-action, .quantity-stepper) { color: var(--ming-ink); background: transparent; }
:is(.ming-folio-body, .system-detail) .quantity-action button { min-width: 44px; min-height: 44px; }
:is(.ming-folio-body, .system-detail) :is(.residence-ledger-card, .home-interior-summary) { color: #f6ead2; }
:is(.ming-folio-body, .system-detail) :is(.residence-ledger-card, .home-interior-summary) :where(p, small, span, b, h3, em) { color: inherit; }
:is(.ming-folio-body, .system-detail) :is(.residence-ledger-card, .home-interior-summary) :is(.dwelling-storage, .home-interior-actions, .household-subsistence-ledger) { color: var(--ming-ink); }

/* Conversation: the person and place above, a letter-sized writing desk below. */
.actor-dialogue-heading { padding: 16px 24px; background: #28231c; }
.actor-dialogue-heading h2 { font-size: 34px; }
.actor-dialogue-scene { min-height: 290px; }
.actor-dialogue-current-line { color: var(--ming-ink); background: #f0e5cedf; border: 0; border-left: 3px solid var(--ming-vermilion); box-shadow: 0 8px 28px #0003; }
.actor-dialogue-current-line :is(p, small, b, span, blockquote) { color: inherit; text-shadow: none; }
.actor-dialogue-current-line > p { font-size: 17px; line-height: 1.8; }
.actor-dialogue-main { padding: 20px 24px; gap: 16px; }
.actor-dialogue-commandbar, .actor-dialogue-compose, .actor-dialogue-routing-notice,
.actor-dialogue-rule-line, .actor-dialogue-main details, .actor-dialogue-message {
  background: transparent; border-color: var(--ming-rule); box-shadow: none;
}
.actor-dialogue-compose { padding: 16px 0; border-width: 1px 0; gap: 24px; }
.actor-dialogue-compose textarea { min-height: 108px; padding: 14px 16px; font-size: 16px; line-height: 1.75; }
.actor-dialogue-main details > summary { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 12px 0; border-bottom: 1px solid #b7a58770; }
.actor-dialogue-modal > footer { padding: 12px 24px; color: var(--ming-ink); background: #dfd1b6; border-top: 1px solid var(--ming-rule); }
.actor-dialogue-modal > footer :is(b, small, span) { color: inherit; font-size: var(--ming-font-small, 14px); }
.actor-dialogue-modal > footer button { min-height: 48px; color: var(--ming-ink); background: var(--ming-paper-raised); border-color: var(--ming-rule); }
.actor-dialogue-modal > footer button.primary { color: #fff1d7; background: var(--ming-vermilion); }

/* Keep free expression visibly separate from prescribed choices. */
.free-action-panel { color: var(--ming-ink); background: var(--ming-paper-fill); border: 1px solid #baa17b; border-left: 4px solid var(--ming-vermilion); box-shadow: 0 4px 16px #0002; padding: 18px 20px; }
.free-action-panel :is(h3, p, small, label, span, b) { color: inherit; text-shadow: none; }
.free-action-panel :is(p, small, label, span) { font-size: var(--ming-font-small, 14px); }
.free-action-panel textarea { color-scheme: light; color: var(--ming-ink); background: var(--ming-paper-raised); border-color: var(--ming-rule); font-size: 16px; line-height: 1.7; }
.free-action-panel .free-action-bridge b { color: var(--ming-muted); background: var(--ming-paper); box-shadow: none; }
.free-action-panel button { min-height: 44px; background: var(--ming-vermilion); border-color: var(--ming-vermilion); color: #fff1d7; }
.free-action-panel button :is(b, span, small) { color: inherit; }
.free-action-promise > span { background: transparent; border-color: #b7a58770; }
.campaign-layout { gap: 20px; }
.world-strip { background: #25221ced; border-color: #9b805346; }
.ai-event-card .event-narrative { padding: 18px 22px; color: var(--ming-ink); background: #ede3cdeF; border-left: 3px solid #9a7547; font-size: 16px; line-height: 1.85; text-shadow: none; }
.choice-list > button { border-radius: 2px; box-shadow: none; border-color: #b49a6466; }
.choice-list > button:hover:not(:disabled) { border-color: #cfad77; background-color: #44382be6; }

/* Save/settings share the same readable folio and simple section dividers. */
:is(.save-panel, .settings-panel, .game-menu-panel, .archive-drawer) > header { background: #dfd1b6; border-color: var(--ming-rule); padding: 20px 24px; }
:is(.save-panel, .settings-panel, .game-menu-panel, .archive-drawer) > header h2 { font-size: 32px; }
:is(.save-panel, .settings-panel, .game-menu-panel, .archive-drawer)
:is(.save-global-wallet, .save-autosave, .save-slot, .ai-settings-status, .tianji-mode-card,
.token-package-ledger, .settings-code-redemption, .game-menu-exit, .archive-meta, .chronicle-ledger) { color: var(--ming-ink); background: #f8efdc80; border-color: #b7a58780; box-shadow: none; }
@media (max-width: 760px) {
  .main-menu-action small { font-size: var(--ming-font-small, 14px); }
  .main-menu-action { min-height: 68px; }
  .system-focus-heading.system-focus-hero { min-height: 150px; padding: 16px; }
  .system-focus-copy { max-width: calc(100% - 56px); }
  .system-focus-copy h2 { font-size: 30px; }
  .system-focus-copy p { font-size: var(--ming-font-body, 16px); line-height: 1.5; }
  .system-focus-seal { display: none; }
  :is(.ming-folio-body, .system-detail) { padding: 16px 12px 24px; }
  :is(.ming-folio-body, .system-detail) .dwelling-storage-columns { gap: 16px; }
  :is(.ming-folio-body, .system-detail) .dwelling-storage-columns > div { padding: 12px; }
  .actor-dialogue-heading { padding: 12px 14px; }
  .actor-dialogue-heading h2 { font-size: 28px; }
  .actor-dialogue-main { padding: 14px; }
  .actor-dialogue-scene { min-height: 270px; }
  .actor-dialogue-current-line > p { font-size: var(--ming-font-body, 16px); }
  .actor-dialogue-compose { gap: 12px; padding: 12px 0; }
  .actor-dialogue-modal > footer { padding: 10px 12px; }
  .actor-dialogue-main details > summary { flex-wrap: wrap; gap: 2px; }
  .free-action-panel { padding: 16px 14px; }
  .ai-event-card .event-narrative { padding: 14px 16px; font-size: var(--ming-font-body, 16px); }
}
@media (prefers-reduced-motion: reduce) {
  .main-menu-action, .origin-card, .choice-list > button { transition: none; }
}

.system-detail-fold, .home-ledger-fold { border: 0; border-top: 1px solid #b7a58770; background: transparent; box-shadow: none; }
.system-detail-fold > summary, .home-ledger-fold > summary {
  min-height: 44px; display: flex; flex-wrap: wrap; align-items: center; gap: 8px;
  padding: 12px 4px; font-size: 14px; cursor: pointer; list-style: none;
}
.system-detail-fold > summary::before, .home-ledger-fold > summary::before { content: '＋'; font-size: 17px; }
.system-detail-fold[open] > summary::before, .home-ledger-fold[open] > summary::before { content: '−'; }
.system-detail-fold > summary::-webkit-details-marker, .home-ledger-fold > summary::-webkit-details-marker { display: none; }
.system-detail-fold > summary small, .home-ledger-fold > summary small { font-size: var(--ming-font-small, 14px); }
.home-ledger-fold { color: var(--ming-ink); }

/* Specific legacy layouts retain their structure; shared folio tokens own color. */
.ming-folio-panel > :is(.ming-folio-body, .system-detail) { background: var(--ming-paper-fill); }
:is(.ming-folio-body, .system-detail) :is(.market-shop-page, .market-stock-ledger, .market-goods-group,
.market-goods-card, .market-sell-panel, .market-sell-panel > div > article,
.market-quote-card, .market-last-receipt, .market-shopkeeper-conversation,
.market-directory-intro, .market-sell-empty, .market-goods-state,
.market-secondhand-ledger, .market-secondhand-card, .quantity-action,
.dwelling-storage, .dwelling-storage-columns > div, .dwelling-storage-columns article,
.inventory-ledger-card, .inventory-load-summary, .vehicle-cargo, .vehicle-cargo-list) {
  color: var(--ming-ink); background: #f5ead3; border-color: #b7a58780; box-shadow: none;
}
:is(.ming-folio-body, .system-detail) .market-shop-page { padding: 20px; }
:is(.ming-folio-body, .system-detail) .market-goods-group > div { grid-template-columns: repeat(auto-fit, minmax(min(100%, 360px), 1fr)); }
:is(.ming-folio-body, .system-detail) .market-goods-card { padding: 18px; }
:is(.ming-folio-body, .system-detail) .market-goods-card > footer { border-color: var(--ming-rule); }
:is(.ming-folio-body, .system-detail) .market-goods-card figure { background: #e1d3b647; border-color: #b7a58770; }
:is(:is(.ming-folio-body, .system-detail), .actor-dialogue-main, .save-panel, .settings-panel, .game-menu-panel, .archive-drawer)
:is(h2, h3, h4, h5, p, small, span, b, strong, em, dt, dd, li, label, time) { color: inherit; text-shadow: none; }
:is(:is(.ming-folio-body, .system-detail), .actor-dialogue-main, .save-panel, .settings-panel, .game-menu-panel, .archive-drawer)
:is(p, small, em, dt) { color: var(--ming-muted); }
:is(:is(.ming-folio-body, .system-detail), .actor-dialogue-main, .save-panel, .settings-panel, .game-menu-panel, .archive-drawer)
:is(button, input, textarea, select) { color: var(--ming-ink); background: var(--ming-paper-raised); border-color: var(--ming-rule); min-height: 44px; font-size: var(--ming-font-body, 16px); box-shadow: none; }
:is(:is(.ming-folio-body, .system-detail), .actor-dialogue-main, .save-panel, .settings-panel, .game-menu-panel, .archive-drawer)
:is(button.primary, button.active, button[aria-selected="true"]) { color: #fff1d7; background: var(--ming-vermilion); border-color: var(--ming-vermilion); }
:is(:is(.ming-folio-body, .system-detail), .actor-dialogue-main, .save-panel, .settings-panel, .game-menu-panel, .archive-drawer)
:is(button.primary, button.active, button[aria-selected="true"]) :is(small, em) { color: inherit; }
:is(.ming-folio-body, .system-detail) :is(.market-shop-hero, .market-summary-card, .residence-ledger-card > header, .home-interior-summary, figure figcaption) { color: #f7ead1; }
:is(.ming-folio-body, .system-detail) :is(.market-shop-hero, .market-summary-card, .residence-ledger-card > header, .home-interior-summary, figure figcaption) :is(p, small, em, dt) { color: #e0d1b9; }
@media (max-width: 760px) {
  :is(.ming-folio-body, .system-detail) .market-shop-page { padding: 8px; }
  :is(.ming-folio-body, .system-detail) .market-goods-card { padding: 12px; }
}

/* Origin dossiers read as a field notebook beside the illustrated person. */
.dossier { color: var(--ming-ink); background: var(--ming-paper-fill); border-color: #a88b60; }
.dossier :is(span, strong, b, p, small, em, li) { color: inherit; text-shadow: none; }
.dossier :is(p, small, em, li), .dossier-location { font-size: var(--ming-font-small, 14px); line-height: 1.65; }
.dossier :is(.resource-strip > div, .initial-state, .objective-block, .history-note, .pressure-block li) { background: #f8efdc70; border-color: var(--ming-rule); }
.dossier .start-button { background: var(--ming-vermilion); color: #fff1d7; border-color: var(--ming-vermilion); min-height: 56px; }
.dossier .start-button span { color: inherit; }
.famous-roster { padding: 20px; background: #24211b; border-color: #8e785245; }
.famous-roster-summary { border: 0; padding: 8px 0 16px; background: transparent; }
.famous-roster-categories { gap: 8px; }
.famous-roster-categories > span { border: 0; border-bottom: 1px solid #aa90634d; background: transparent; }
.famous-roster-grid { gap: 12px; }
.famous-roster-grid .origin-card { min-height: 112px; }
.famous-roster-intro > small, .famous-roster-categories small { font-size: var(--ming-font-small, 14px); }
:is(:is(.ming-folio-body, .system-detail), .actor-dialogue-main, .save-panel, .settings-panel, .game-menu-panel, .archive-drawer)
:is(p, small, em, dt, dd, li, label, time) { font-size: var(--ming-font-small, 14px); }
:is(.save-panel, .settings-panel, .game-menu-panel, .archive-drawer) button { color: var(--ming-ink); background: var(--ming-paper-raised); min-height: 44px; font-size: 14px; }
:is(.save-panel, .settings-panel, .game-menu-panel, .archive-drawer) button.primary { background: var(--ming-vermilion); color: #fff1d7; }
@media (max-width: 760px) { .famous-roster { padding: 14px; } }

.settings-panel :is(.cloud-service-card, .official-tianji-settings, .byok-activation-card,
.byok-price-option, .byok-price-card, .token-package-options > *, .byok-code-note, .cloud-service-meter) {
  color: var(--ming-ink); background: #f8efdc; border-color: #b7a58780; box-shadow: none;
}
.settings-panel .byok-activation-prices > * { background: #e5d8bf; border-color: var(--ming-rule); }
.settings-panel button.active { background: var(--ming-vermilion); color: #fff1d7; }
.settings-panel .tianji-mode-card i { color: var(--ming-ink); background: #dec8a0; }
.dossier :is(.resource-cell, .opening-state-ledger, .opening-need, .dossier-status) {
  color: var(--ming-ink); background: #f8efdc; border-color: var(--ming-rule);
}
.dossier :is(.resource-cell, .opening-state-ledger, .opening-need, .dossier-status) :is(strong, span, small, i) { color: inherit; }
.dossier .opening-state-ledger .debt, .dossier .resource-cell.danger strong { color: var(--ming-vermilion); }

/* Page containers must not reintroduce the previous full-height dark panels. */
.ming-folio-panel { grid-template-rows: auto minmax(0, 1fr); }
.ming-folio-panel > .system-focus-heading { min-height: 154px; }
.ming-folio-panel > .system-focus-heading .system-focus-copy { max-width: 680px; }
.campaign-sidebar { align-self: start; }
.campaign-sidebar .system-dock { flex: 0 0 auto; min-height: 0; height: auto; }
.campaign-sidebar .system-detail-shell { flex: 0 0 auto; min-height: 0; height: auto; }
.choice-list > button, .location-choice-section { border-color: #b49a6433; }
.campaign-playfield { padding-bottom: 24px; }
.actor-dialogue-main { color: var(--ming-ink); background: var(--ming-paper-fill); }
.actor-dialogue-main :is(section, article, aside, details, dl, .actor-dialogue-commandbar, .actor-dialogue-rule-line) { background: transparent; border-color: #b7a58780; box-shadow: none; }
.actor-dialogue-main :is(dl > div, .actor-dialogue-work-terms > div) { background: #e0d2b855; border-color: #b7a58780; }
.actor-dialogue-current-line :is(header b, header small, header span) { color: var(--ming-ink); }
.actor-dialogue-modal > footer > span :is(b, small) { color: var(--ming-ink); }
:is(.ming-folio-body, .system-detail) :is(.home-interior-ledger, .location-map-panel) { color: var(--ming-ink); background: transparent; }
:is(.ming-folio-body, .system-detail) :is(.location-route-registry, .location-route-row.route-direct, .location-route-row.route-direct-sailing, .home-ledger-fold) { color: var(--ming-ink); background: #f8efdc; border-color: #b7a58780; }
:is(.ming-folio-body, .system-detail) .current-location-record { color: #f7ead1; }
:is(.ming-folio-body, .system-detail) .current-location-record :is(p, small, em) { color: #e0d1b9; }
:is(.ming-folio-body, .system-detail) .location-route-row { padding: 16px 14px; }
:is(.ming-folio-body, .system-detail) .location-route-row > i { color: var(--ming-vermilion); border-color: var(--ming-rule); }
:is(.ming-folio-body, .system-detail) .location-map-panel > header > b { background: #ded0b5; }
:is(.ming-folio-body, .system-detail) .quantity-action :is(input, button) { color: var(--ming-ink); background: var(--ming-paper-raised); border-color: var(--ming-rule); }
:is(.ming-folio-body, .system-detail) .quantity-action [data-quantity-submit] { color: #fff1d7; background: var(--ming-vermilion); border-color: var(--ming-vermilion); }
:is(.ming-folio-body, .system-detail) .market-goods-state > *, :is(.ming-folio-body, .system-detail) .market-goods-traits > * { color: var(--ming-ink); background: #e0d2b8; border-color: var(--ming-rule); }
.settings-panel .byok-price-grid article { background: #e5d8bf; border-color: var(--ming-rule); }
@media (min-width: 761px) {
  :is(.ming-folio-body, .system-detail) .dwelling-storage-columns { grid-template-columns: 1fr; }
  :is(.ming-folio-body, .system-detail) .dwelling-storage-columns > div { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); column-gap: 24px; align-items: start; }
  :is(.ming-folio-body, .system-detail) .dwelling-storage-columns > div > h5 { grid-column: 1 / -1; }
  :is(.ming-folio-body, .system-detail) .market-goods-card > footer { grid-template-columns: 130px minmax(0, 1fr); align-items: start; }
  :is(.ming-folio-body, .system-detail) .market-goods-card > footer > .quantity-action { grid-column: 2; }
  :is(.ming-folio-body, .system-detail) .market-goods-card p { max-width: 72ch; }
}
@media (max-width: 760px) {
  .system-focus-copy p { max-width: 35ch; }
}

/* Text contrast is explicit, not inherited from an older dark nested card. */
:is(:is(.ming-folio-body, .system-detail), .actor-dialogue-main, .save-panel, .settings-panel, .game-menu-panel, .archive-drawer)
:is(h2, h3, h4, h5, p, small, span, b, strong, em, dt, dd, li, label, time) { color: var(--ming-ink); }
:is(:is(.ming-folio-body, .system-detail), .actor-dialogue-main, .save-panel, .settings-panel, .game-menu-panel, .archive-drawer)
:is(p, small, em, dt) { color: var(--ming-muted); }
:is(:is(.ming-folio-body, .system-detail), .actor-dialogue-main, .save-panel, .settings-panel, .game-menu-panel, .archive-drawer)
:is(button.primary, button.active, button[aria-selected="true"], [data-quantity-submit]) :is(b, strong, small, span, i, em) { color: #fff1d7; }
:is(.ming-folio-body, .system-detail) :is(.market-shop-hero, .market-summary-card, .residence-ledger-card > header, .home-interior-summary, .current-location-record, figure figcaption)
:is(h2, h3, h4, h5, p, small, span, b, strong, em) { color: #f7ead1; }
.actor-dialogue-main :is(div, section, article, aside, details, dl) { background-image: none; background-color: transparent; border-color: #b7a58780; }
.actor-dialogue-main .actor-dialogue-compose { background: #f8efdc70; padding: 16px; }
:is(.ming-folio-body, .system-detail) .market-goods-tags > *, .settings-panel .cloud-service-seal { color: var(--ming-ink); background: #decda9; }
@media (max-width: 760px) {
  .system-focus-authority { max-width: 100%; white-space: normal; }
}

:is(.ming-folio-body, .system-detail) :is(.market-stock-ledger, .market-secondhand-ledger, .market-workshop-materials) > header { background: #dfd1b6; border-color: var(--ming-rule); }
:is(.ming-folio-body, .system-detail) .market-goods-copy > div > span { color: var(--ming-ink); background: #dfd1b6; border-color: var(--ming-rule); }
.campaign-sidebar :is(button, summary) { min-height: 44px; }

/* Desktop archives reuse the ledger layout, with no fixed manual-slot limit. */
.desktop-save-workspace { min-width: 0; color: var(--ming-ink); }
.desktop-save-workspace > header { display: flex; align-items: flex-start; justify-content: space-between; gap: 18px; padding-bottom: 18px; border-bottom: 1px solid var(--ming-rule); }
.desktop-save-workspace > header h2 { margin: 6px 0; font-size: 28px; }
.desktop-save-workspace :is(p, small, span, label) { font-size: var(--ming-font-small, 14px); line-height: 1.65; }
.desktop-save-workspace :is(button, input, summary) { min-height: 44px; font-size: var(--ming-font-body, 16px); }
.desktop-save-workspace button { padding: 9px 14px; white-space: normal; }
.desktop-save-workspace :is(button,input,summary):focus-visible { outline: 3px solid var(--ming-vermilion); outline-offset: 3px; }
.desktop-save-toolbar { display: grid; grid-template-columns: minmax(160px,1fr) auto; gap: 16px; align-items: end; margin: 20px 0 12px; }
.desktop-save-toolbar label { display: grid; gap: 6px; }
.desktop-save-toolbar input { width: 100%; min-width: 0; padding: 9px 12px; }
.desktop-save-status { min-height: 24px; }
.desktop-save-workspace .save-slot { grid-template-columns: 54px minmax(0,1fr) auto; gap: 14px; padding: 16px 12px; background: #f8efdc80; border-color: var(--ming-rule); }
.desktop-save-workspace .save-slot-index span { font-size: 26px; }
.desktop-save-workspace .save-slot-index small { white-space: normal; }
.desktop-save-workspace .save-summary :is(strong,span,p,small) { white-space: normal; overflow: visible; overflow-wrap: anywhere; text-overflow: clip; }
.desktop-save-workspace .save-warning { padding: 14px; margin: 12px 0; border-left: 3px solid var(--ming-vermilion); background: #f8efdc; }
.desktop-save-cloud { margin-top: 24px; border-top: 1px solid var(--ming-rule); }
.desktop-save-cloud > summary { display: list-item; cursor: pointer; padding: 12px 0; }
.desktop-save-cloud > .save-slot-list { margin-top: 12px; }
@media (max-width: 760px) {
 .desktop-save-toolbar { grid-template-columns: minmax(0,1fr); }
 .desktop-save-workspace > header { gap: 12px; }
 .desktop-save-workspace > header > button { flex-shrink: 0; }
 .desktop-save-workspace .save-slot { grid-template-columns: 38px minmax(0,1fr); gap: 12px; }
 .desktop-save-workspace .save-slot-actions { grid-column: 1 / -1; justify-content: flex-start; white-space: normal; }
 .desktop-save-workspace .save-slot-actions > button { flex: 1 1 130px; }
}
@media (max-width: 760px) {
 .save-button, .game-menu-button { min-height: 44px; }
}
.desktop-save-workspace .save-slot.filled:hover { background: #fff6e1; color: var(--ming-ink); border-color: var(--ming-copper); }
.desktop-save-workspace .save-warning :is(p,strong) { white-space: normal; overflow: visible; overflow-wrap: anywhere; text-overflow: clip; }
.settings-panel > header span, .settings-panel .tianji-mode-card b > i,
.settings-panel .ai-settings-form :is(label > span, .ai-provider-lock > span) { font-size: var(--ming-font-small, 14px); }
.settings-panel .settings-code-redemption label > span { color: var(--ming-ink); background: #f8efdc; }
.settings-panel .tianji-mode-card.active b > i { background: var(--ming-vermilion); border-color: #dcc6ad; }
.settings-panel > footer .account-logout-button { color: var(--ming-vermilion); }

/* Purchases open the shop; the adjacent code field is the account action. */
.settings-panel .settings-purchase-channels { margin-top: 14px; padding-top: 14px; border-top: 1px solid var(--ming-rule); }
.settings-panel .settings-purchase-links { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 10px; }
.settings-panel .settings-purchase-links > a {
 display: flex; align-items: center; justify-content: space-between; gap: 12px;
 min-width: 0; min-height: 46px; padding: 10px 14px;
 border: 1px solid var(--ming-vermilion); border-radius: 2px;
 color: var(--ming-vermilion); background: var(--ming-paper-raised);
 font-size: var(--ming-font-body, 16px); font-weight: 700; line-height: 1.4; text-decoration: none;
}
.settings-panel .settings-purchase-links > a > span { color: inherit; font-size: 20px; line-height: 1; }
.settings-panel .settings-purchase-links > a:hover { color: #fff1d7; background: var(--ming-vermilion); }
.settings-panel .settings-purchase-links > a:focus-visible { outline: 2px solid var(--ming-vermilion); outline-offset: 3px; }
.settings-panel .settings-purchase-channels > p { margin: 10px 0 0; color: var(--ming-muted); font-size: var(--ming-font-small, 14px); line-height: 1.7; }
@media (max-width: 520px) {
 .settings-panel .settings-purchase-links { grid-template-columns: minmax(0, 1fr); }
}

/* A player's longer intention stays a readable ledger, never an auto-run queue. */
.player-goals, .player-goal-proposal { min-width: 0; color: var(--ming-ink); background: var(--ming-paper); padding: 18px; }
.player-goals :is(p,span,small,li), .player-goal-proposal :is(p,span,small,li) { font-size: var(--ming-font-small, 14px); line-height: 1.75; white-space: normal; overflow-wrap: anywhere; }
.player-goals h3 { margin: 0 0 16px; font-size: 19px; }
.player-goal { padding: 16px 0; border-top: 1px solid var(--ming-rule); }
.player-goal > header { display: flex; gap: 16px; justify-content: space-between; align-items: start; }
.player-goal > header > p { margin: 0; font-size: 16px; font-weight: 600; }
.player-goal > header > span { flex-shrink: 0; color: var(--ming-vermilion); }
.player-goal-intent { margin: 16px 0; }
.player-goal-intent p { margin: 6px 0; }
.player-goal-constraints { margin: 12px 0; }
.player-goal-constraints ul { margin: 6px 0; padding-left: 24px; }
.player-goal-stages { margin: 16px 0; padding-left: 28px; }
.player-goal-stages > li { padding: 10px 8px; border-bottom: 1px solid var(--ming-rule); }
.player-goal-stages > li > :is(b,span,small) { display: block; color: var(--ming-ink); }
.player-goal-stages > li > b { font-size: 14px; }
.player-goal-stages > li.current { background: #e9dabe; }
.player-goal-stages > li > p { margin: 6px 0; }
.player-goal > footer { display: flex; gap: 10px; flex-wrap: wrap; }
.player-goals button, .player-goal-proposal button { min-height: 44px; font-size: 14px; padding: 10px 14px; white-space: normal; }
.player-goals button:focus-visible, .player-goal-proposal button:focus-visible { outline: 3px solid var(--ming-vermilion); outline-offset: 3px; }
.player-goals button:disabled, .player-goal-proposal button:disabled { opacity: .6; cursor: wait; }
@media (max-width: 760px) {
 .player-goals, .player-goal-proposal { padding: 14px; }
 .player-goal > header { gap: 10px; }
 .player-goal > footer > button { flex: 1 1 140px; }
}
/* Shared reading domains. Individual rules in the domain fragments consume
   these tokens; imagery, scene overlays and map geometry keep local palettes. */
:root {
  --ming-font-small: 14px;
  --ming-font-body: 16px;
  --ming-control-height: 44px;
  --ming-space-row: 12px;
  --ming-space-section: 20px;
  --ming-success: #365b3d;
  --ming-danger-paper: #f1ded3;
  --ming-success-paper: #e1e8d7;
}
:is(:is(.ming-folio-body, .system-detail), .actor-dialogue-main, .player-goals, .player-goal-proposal,
.action-proposal-plan, .field-battle-planner-panel, .jinyi-ending-archive-panel,
.account-auth-shell, .save-panel, .settings-panel, .game-menu-panel, .archive-drawer) {
  --folio-ink: var(--ming-ink);
  --folio-muted: var(--ming-muted);
  --folio-card: var(--ming-paper-raised);
  --folio-hover: #fff6e1;
  --folio-selected-surface: #e5d6b8;
  --folio-danger: var(--ming-vermilion);
  --folio-success: var(--ming-success);
  --folio-danger-surface: var(--ming-danger-paper);
  --folio-success-surface: var(--ming-success-paper);
  --folio-rule: var(--ming-rule);
  color-scheme: light;
  color: var(--folio-ink);
  font-family: var(--font-body);
  font-size: var(--ming-font-body);
  line-height: 1.65;
}
:is(.field-battle-planner-panel, .jinyi-ending-archive-panel, .account-auth-shell,
.action-proposal-plan) {
  --paper-100: var(--ming-ink);
  --paper-200: #40372b;
  --paper-300: var(--ming-muted);
  --gold-300: var(--ming-copper);
  --gold-400: var(--ming-copper);
  --jade-300: var(--ming-success);
  --line: var(--ming-rule);
  background: var(--ming-paper-fill);
  border-color: var(--ming-rule);
  border-radius: 3px;
  box-shadow: 0 24px 70px #0005;
}

/* Controls use the same ink and paper wherever the ledger is opened. */
:is(:is(.ming-folio-body, .system-detail), .actor-dialogue-main, .player-goals, .player-goal-proposal,
.field-battle-planner-panel, .jinyi-ending-archive-panel, .account-auth-shell,
.save-panel, .settings-panel, .game-menu-panel, .archive-drawer, .action-proposal-plan)
:is(button, input, select, textarea, summary) {
  min-height: var(--ming-control-height);
  font-family: var(--font-body);
  font-size: var(--ming-font-body);
  line-height: 1.5;
  border-radius: 2px;
}
:is(:is(.ming-folio-body, .system-detail), .actor-dialogue-main, .player-goals, .player-goal-proposal,
.field-battle-planner-panel, .jinyi-ending-archive-panel, .account-auth-shell,
.save-panel, .settings-panel, .game-menu-panel, .archive-drawer, .action-proposal-plan)
:is(button, input, select, textarea) {
  color: var(--folio-ink);
  background-color: var(--folio-card);
  border-color: var(--folio-rule);
  box-shadow: none;
}
:is(:is(.ming-folio-body, .system-detail), .field-battle-planner-panel, .jinyi-ending-archive-panel, .account-auth-shell,
.player-goals, .action-proposal-plan) button {
  padding: 10px 14px;
  white-space: normal;
  overflow-wrap: anywhere;
}
:is(:is(.ming-folio-body, .system-detail), .field-battle-planner-panel, .jinyi-ending-archive-panel, .account-auth-shell,
.player-goals, .action-proposal-plan) button:hover:not(:disabled) { background-color: var(--folio-hover); border-color: var(--ming-copper); }
:is(:is(.ming-folio-body, .system-detail), .actor-dialogue-main, .save-panel, .settings-panel, .game-menu-panel,
.archive-drawer, .field-battle-planner-panel, .jinyi-ending-archive-panel, .account-auth-shell,
.player-goals, .player-goal-proposal, .action-proposal-plan)
:is(button.primary, button.active, button.confirm, button[aria-selected="true"], button[aria-pressed="true"], [data-quantity-submit]) {
  --folio-card: var(--ming-vermilion);
  --folio-ink: #fff1d7;
  --folio-muted: #fff1d7;
  --folio-hover: #703023;
  --paper-100: #fff1d7;
  --paper-200: #fff1d7;
  --paper-300: #fff1d7;
  color: var(--folio-ink);
  background: var(--folio-card);
  border-color: var(--ming-vermilion);
}
:is(:is(.ming-folio-body, .system-detail), .actor-dialogue-main, .save-panel, .settings-panel, .game-menu-panel,
.archive-drawer, .field-battle-planner-panel, .jinyi-ending-archive-panel, .account-auth-shell,
.player-goals, .player-goal-proposal, .action-proposal-plan)
:is(button.primary, button.active, button.confirm, button[aria-selected="true"], button[aria-pressed="true"], [data-quantity-submit])
:is(b, strong, small, span, i, em) { color: var(--folio-ink); }
:is(:is(.ming-folio-body, .system-detail), .actor-dialogue-main, .field-battle-planner-panel, .jinyi-ending-archive-panel,
.account-auth-shell, .player-goals, .action-proposal-plan)
:is(button, input, select, textarea, summary):focus-visible { outline: 3px solid var(--ming-vermilion); outline-offset: 3px; }
:is(:is(.ming-folio-body, .system-detail), .field-battle-planner-panel, .jinyi-ending-archive-panel, .account-auth-shell,
.player-goals, .action-proposal-plan) button:disabled { opacity: 1; color: #716557; background: #e4d9c4; border-color: #baad95; cursor: not-allowed; }

/* Ledger headings, rows and facts have one hierarchy across occupations. */
:is(.ming-folio-body, .system-detail) :is(.technology-blueprint-library, .technology-empty-folio, .technology-concept-starters,
 .pottery-workshop, .farm-season-cycle, .population-ledger,
.polity-founding-ledger, .polity-finance-ledger, .woodwork-commission-catalog,
.ironwork-commission-catalog, .case-guidance-panel, .case-threat-panel, .case-vigil-panel) {
  border-color: var(--ming-rule);
  border-radius: 2px;
  box-shadow: none;
}
:is(.ming-folio-body, .system-detail) :is(.technology-blueprint-library, .woodwork-commission-catalog,
.ironwork-commission-catalog, .polity-founding-ledger, .polity-finance-ledger,
.farm-season-cycle, .case-guidance-panel, .case-threat-panel, .case-vigil-panel) > header {
  padding: 16px 18px;
  border-bottom: 1px solid var(--ming-rule);
  background: var(--ming-paper-shade);
}
:is(.ming-folio-body, .system-detail) :is(.case-current-objective, .case-guidance-panel, .case-timeline-summary,
.case-threat-card, .case-vigil-panel) { gap: 10px; padding: 14px; }
:is(.ming-folio-body, .system-detail) :is(.case-guidance-panel, .case-threat-panel, .case-vigil-panel,
.farm-season-section, .polity-finance-ledger) :is(h3,h4) { font-size: 20px; line-height: 1.4; }
:is(.ming-folio-body, .system-detail) :is(.case-guidance-milestones, .case-guidance-routes, .case-timeline-summary,
.case-threat-card, .case-current-objective) :is(span,small,p,b,strong) {
  white-space: normal;
  overflow: visible;
  text-overflow: clip;
  overflow-wrap: anywhere;
  line-height: 1.65;
}
:is(.ming-folio-body, .system-detail) :is(.technology-tree-node,  .woodwork-commission-card,
.ironwork-commission-card, .farm-season-action, .polity-finance-accounts > article) { box-shadow: none; }
:is(.ming-folio-body, .system-detail) .technology-tree { overflow-x: auto; overscroll-behavior-x: contain; }

.field-battle-planner-heading, .jinyi-ending-archive-panel > header, .account-auth-shell > header {
  background: var(--ming-paper-shade);
  border-color: var(--ming-rule);
  padding: 20px 24px;
}
.field-battle-planner-heading h2, .jinyi-ending-archive-panel > header h2 { color: var(--ming-ink); font-size: 30px; line-height: 1.2; }
.field-battle-planner-panel :is(.field-battle-order-card,.field-battle-phase-card) { box-shadow: none; }
.account-auth-shell :is(input,select) { width: 100%; min-width: 0; padding: 12px; }
.account-auth-shell :is(p,small,label,span,em) { font-size: var(--ming-font-small, 14px); line-height: 1.65; }
.account-auth-shell :is(.account-benefit-summary,.account-form-note) { color: var(--ming-muted); background: var(--ming-paper-raised); }
.jinyi-ending-archive-copy :is(p,small,span), .jinyi-ending-archive-copy > footer small { font-size: var(--ming-font-small, 14px); white-space: normal; overflow: visible; text-overflow: clip; line-height: 1.65; }

/* On short screens the writing area must scroll, not disappear under a scene. */
@media (max-width: 760px) {
  :is(.ming-folio-body, .system-detail) { padding: 16px 14px 28px; }
  .field-battle-planner-heading, .jinyi-ending-archive-panel > header { padding: 16px; }
  .field-battle-planner-body { grid-template-columns: minmax(0,1fr); padding: 14px; }
  :is(.ming-folio-body, .system-detail) .polity-finance-accounts { grid-template-columns: minmax(0,1fr); }
  :is(.ming-folio-body, .system-detail) :is(.case-timeline-summary, .case-threat-pressure-chain-list) { grid-template-columns: minmax(0,1fr); }
}
@media (max-height: 620px) and (max-width: 760px) {
  .actor-dialogue-modal { grid-template-rows: auto minmax(120px, 24svh) minmax(0,1fr) auto; }
  .actor-dialogue-scene { min-height: 120px; }
  .actor-dialogue-main { min-height: 0; overflow-y: auto; padding: 14px; }
}
/* Recovery is an ordinary conversation notice, not a two-column icon row. */
.actor-dialogue-main section.actor-dialogue-command-notice {
  grid-template-columns: minmax(0, 1fr);
  align-items: start;
  padding: 14px;
  border-color: var(--ming-rule);
  background: var(--ming-paper-raised);
}
.actor-dialogue-main section.actor-dialogue-command-notice p { margin: 0; overflow-wrap: anywhere; }
.account-auth-shell > :is(.account-mode-tabs,.account-form,.invite-account-summary,footer) {
  margin-inline: 24px;
  min-width: 0;
}
.account-auth-shell > footer { flex-wrap: wrap; padding-bottom: 20px; }
.account-auth-shell > footer > * { min-width: 0; max-width: 100%; white-space: normal; overflow-wrap: anywhere; }
.account-auth-shell .account-mode-tabs button.active::after { background: currentColor; box-shadow: none; }
:is(:is(.ming-folio-body, .system-detail),.account-auth-shell,.field-battle-planner-panel) {
  --paper-400: var(--ming-muted);
  --gold-200: var(--ming-copper);
  --jade-200: var(--ming-success);
}
@media (max-width:760px) {
  .account-auth-shell > :is(.account-mode-tabs,.account-form,.invite-account-summary,footer) { margin-inline: 16px; }
}

/* The first research page gives one invitation and four concrete ways in. */
:is(.ming-folio-body, .system-detail) .technology-cognition-empty { gap: 22px; padding: 0; border: 0; background: transparent; }
:is(.ming-folio-body, .system-detail) .technology-cognition-empty > header { padding: 0 0 16px; background: transparent; border-left: 0; box-shadow: none; }
:is(.ming-folio-body, .system-detail) .technology-cognition-empty > header h3 { font-size: 22px; }
:is(.ming-folio-body, .system-detail) .technology-cognition-empty > header p { max-width: 68ch; }
:is(.ming-folio-body, .system-detail) .technology-empty-folio { grid-template-columns: minmax(180px,.7fr) minmax(0,1.3fr); border: 0; border-block: 1px solid var(--ming-rule); background: transparent; }
:is(.ming-folio-body, .system-detail) .technology-empty-folio figure { min-height: 240px; max-height: 310px; }
:is(.ming-folio-body, .system-detail) .technology-empty-folio figure::after { background: linear-gradient(90deg,transparent 85%,#ede3cd66); }
:is(.ming-folio-body, .system-detail) .technology-empty-folio > div { padding: 22px 0 22px 28px; }
:is(.ming-folio-body, .system-detail) .technology-empty-folio h3 { font-size: 27px; line-height: 1.4; }
:is(.ming-folio-body, .system-detail) .technology-empty-folio li { border: 0; background: transparent; padding-block: 4px; }
:is(.ming-folio-body, .system-detail) .technology-empty-folio summary { display: flex; align-items: center; color: var(--ming-copper); cursor: pointer; }
:is(.ming-folio-body, .system-detail) .technology-concept-starters { border: 0; padding: 0; background: transparent; gap: 16px; }
:is(.ming-folio-body, .system-detail) .technology-concept-starters > div { gap: 12px; }
:is(.ming-folio-body, .system-detail) .technology-concept-starters button { min-height: 96px; border: 0; border-left: 3px solid var(--ming-copper); padding: 16px; box-shadow: none; }
:is(.ming-folio-body, .system-detail) .technology-concept-starters button b { font-size: 16px; }

.account-auth-shell { gap: 22px; padding-top: 0; padding-bottom: 8px; box-shadow: 0 18px 48px #0004; }
.account-auth-shell > header { padding: 28px 28px 20px; background: transparent; border-bottom: 1px solid var(--ming-rule); }
.account-auth-shell > :is(.account-mode-tabs,.account-form,.invite-account-summary,footer) { margin-inline: 28px; }
.account-auth-shell .account-mode-tabs { padding: 0; gap: 0; border: 0; border-bottom: 1px solid var(--ming-rule); background: transparent; }
.account-auth-shell .account-mode-tabs button { border-radius: 0; background: transparent; color: var(--ming-muted); }
.account-auth-shell .account-mode-tabs button.active { background: transparent; color: var(--ming-vermilion); }
.account-auth-shell .account-mode-tabs button.active::after { left: 20%; right: 20%; height: 3px; background: var(--ming-vermilion); }
.account-auth-shell .account-form { gap: 18px; }
.account-auth-shell .account-form label { gap: 8px; }
.account-auth-shell .account-form input { background: #fff8e9; }
.account-auth-shell .account-form button.primary { margin-top: 6px; box-shadow: none; }
.account-auth-shell > footer { border-top: 1px solid #b7a58766; padding-top: 16px; gap: 8px; }
.actor-dialogue-modal > footer .primary { background: var(--ming-vermilion); color: #fff1d7; border-color: var(--ming-vermilion); }
.actor-dialogue-modal > footer .primary :is(b,small,span,i) { color: #fff1d7; }
.actor-dialogue-modal > footer button:not(.primary) { background: var(--ming-paper-raised); color: var(--ming-ink); border-color: var(--ming-rule); }
@media (max-width:900px) {
}
@media (max-width:760px) {
  :is(.ming-folio-body, .system-detail) .technology-empty-folio { grid-template-columns: minmax(0,1fr); }
  :is(.ming-folio-body, .system-detail) .technology-empty-folio figure { min-height: 160px; height: 160px; }
  :is(.ming-folio-body, .system-detail) .technology-empty-folio > div { padding: 18px 0; }
  :is(.ming-folio-body, .system-detail) .technology-concept-starters button { min-height: 76px; }
  .account-auth-shell > header { padding: 24px 20px 18px; }
  .account-auth-shell > :is(.account-mode-tabs,.account-form,.invite-account-summary,footer) { margin-inline: 20px; }
}
:is(.ming-folio-body, .system-detail) :is(.technology-getting-started) { font-size: var(--ming-font-small, 14px); color: var(--ming-muted); }
:is(.ming-folio-body, .system-detail) :is(.technology-getting-started) > summary { min-height: 44px; display: flex; align-items: center; color: var(--ming-copper); cursor: pointer; }
:is(.ming-folio-body, .system-detail) .technology-empty-folio .technology-concept-starters { margin-block: 18px; }
:is(.ming-folio-body, .system-detail) .technology-empty-folio .technology-concept-starters > div { grid-template-columns: repeat(2,minmax(0,1fr)); }
.account-auth-shell .account-v2-security { padding-block: 16px 20px; font-size: var(--ming-font-small, 14px); }
.account-auth-shell .account-v2-security summary { display: flex; align-items: center; }
@media (min-width:1080px) and (min-height:680px) {
  .commoner-campaign .campaign-sidebar,.jinyi-campaign .campaign-sidebar { grid-template-rows: minmax(220px, auto) auto; align-self: start; max-height: 100%; }
  .campaign-sidebar .character-state-card { max-height: 420px; }
  .campaign-sidebar .system-dock { grid-template-rows: auto auto auto; max-height: none; }
  .campaign-sidebar .system-detail { min-height: 0; height: auto; max-height: 270px; }
  .campaign-shell .campaign-playfield { grid-template-rows: auto auto minmax(0,1fr) auto; padding-bottom: 12px; }
  .campaign-shell .free-action-panel { min-height: 136px; height: auto; }
  .campaign-shell .free-action-intro,.campaign-shell .free-action-composer { height: auto; }
}
.location-context-card .location-next-actions { border: 0; background: transparent; padding-inline: 0; }
.location-context-card .event-state-read :is(span,b) { border: 0; background: #201d17b3; }
.location-context-card .location-scene-seal { background: #28231ce6; border-color: #b7a58766; }
@media (max-width:760px) {
  .location-context-card .event-heading { display: grid; grid-template-columns: minmax(0,1fr); gap: 12px; }
  .location-context-card .event-heading > div { min-width: 0; }
  .location-context-card .event-heading h2 { font-size: 29px; line-height: 1.4; }
  .location-context-card .event-side { width: 100%; display: flex; justify-content: space-between; align-items: center; gap: 10px; }
  .location-context-card .event-origin { flex-direction: row; align-items: center; }
  .location-context-card .location-scene-seal { width: auto; min-width: 0; padding: 6px 10px; gap: 8px; }
  .location-context-card .location-scene-seal > i { width: 28px; height: 28px; font-size: 18px; }
  .location-context-card .location-scene-seal strong { font-size: 14px; }
  .location-context-card .location-scene-seal small { display: none; }
  :is(.ming-folio-body, .system-detail) .technology-empty-folio .technology-concept-starters > div { grid-template-columns: minmax(0,1fr); }
}
.mobile-action-jump { display: none; }
@media (max-width:760px) {
  .mobile-action-jump { display: inline-flex; min-height: 44px; min-width: 44px; align-items: center; justify-content: center; padding: 8px 10px; border: 1px solid #a78b60; border-radius: 2px; background: var(--ming-paper); color: var(--ming-ink); font: 16px var(--font-body); }
}
:is(.ming-folio-body, .system-detail) .technology-cognition-empty > header > div:only-child { display: block; text-align: left; border: 0; padding: 0; }
:is(.ming-folio-body, .system-detail) .technology-cognition-empty > header { display: block; min-height: 0; }
:is(.ming-folio-body, .system-detail) .technology-empty-folio figure { align-self: stretch; max-height: none; }
:is(.ming-folio-body, .system-detail) .technology-empty-folio figure img { object-fit: cover; }
@media (max-width:760px) { :is(.ming-folio-body, .system-detail) .technology-empty-folio figure { height: 160px; min-height: 160px; max-height: 160px; } }

/* Reading sizes are roles, not device-dependent ways of squeezing more text. */
:is(:is(.ming-folio-body, .system-detail),.actor-dialogue-main,.account-auth-shell,.settings-panel,.save-panel,
.game-menu-panel,.archive-drawer,.free-action-panel,.field-battle-planner-panel,
.player-goals,.action-proposal-plan) :is(p,blockquote,textarea,input) {
  font-size: var(--ming-font-body);
  line-height: 1.75;
}
:is(:is(.ming-folio-body, .system-detail),.actor-dialogue-main,.account-auth-shell,.settings-panel,.save-panel,
.game-menu-panel,.archive-drawer,.free-action-panel,.field-battle-planner-panel,
.player-goals,.action-proposal-plan) :is(button,summary),
:is(:is(.ming-folio-body, .system-detail),.actor-dialogue-main,.account-auth-shell,.settings-panel,.save-panel,
.game-menu-panel,.archive-drawer,.free-action-panel,.field-battle-planner-panel,
.player-goals,.action-proposal-plan) button :is(b,strong,span) {
  font-size: 16px;
  line-height: 1.5;
}
:is(:is(.ming-folio-body, .system-detail),.actor-dialogue-main,.account-auth-shell,.settings-panel,.save-panel,
.game-menu-panel,.archive-drawer,.free-action-panel,.field-battle-planner-panel) button small {
  font-size: 14px;
  line-height: 1.6;
  white-space: normal;
}
.campaign-shell :is(.choice-copy strong,.event-narrative,.actor-dialogue-current-line > p) { font-size: 16px; line-height: 1.75; }
.campaign-shell :is(.choice-copy small,.choice-cost,.inference-time,.turn-time-range,.change-list span) { font-size: 14px; line-height: 1.6; white-space: normal; text-overflow: clip; }
.campaign-shell .free-action-panel :is(p,label,small,.free-action-flow,.free-action-toolbar > small) { font-size: 14px; line-height: 1.6; }
.campaign-shell .free-action-composer button { height: auto; min-height: 64px; overflow: visible; }
.campaign-shell .free-action-composer button :is(span,b) { font-size: 16px; }
.campaign-shell .free-action-composer button small { font-size: 14px; white-space: normal; overflow: visible; text-overflow: clip; line-height: 1.5; }
.campaign-shell .free-action-composer textarea { font-size: 16px; line-height: 1.6; min-height: 112px; max-height: none; }
.account-auth-shell .account-form label > span { font-size: 16px; }
.world-trends { grid-column: 1 / -1; min-width: 0; border-top: 1px solid #b7a58744; }
.world-trends > summary { display: flex; align-items: center; gap: 14px; min-height: 44px; padding: 8px 12px; color: #e9ddc4; font-size: 16px; cursor: pointer; }
.world-trends > summary::before { content: '+'; color: #c7ad81; }
.world-trends[open] > summary::before { content: '−'; }
.world-trends > summary small { color: #c2b59e; font-size: 14px; }
.world-trends .world-tags { margin: 0; }
.turn-recap-summary { min-height: 44px; display: flex; align-items: center; flex-wrap: wrap; gap: 12px; cursor: pointer; font-size: 16px; }
.turn-recap-summary small { font-size: 14px; }
.turn-recap-body { min-width: 0; padding: 12px 0 4px; }
@media (min-width:1080px) and (min-height:680px) {
  .campaign-shell .free-action-panel { min-height: 168px; grid-template-columns: minmax(210px,.65fr) minmax(0,1.35fr); }
  .campaign-shell .free-action-composer { grid-template-columns: minmax(0,1fr) 190px; grid-template-rows: auto minmax(0,1fr); }
}
.campaign-shell .free-action-composer button:disabled,
.actor-dialogue-modal > footer button:disabled { opacity: 1; background: #e0d2b8; border-color: #b7a587; color: #685b49; box-shadow: none; }
.campaign-shell .free-action-composer button:disabled :is(span,small,b,i),
.actor-dialogue-modal > footer button:disabled :is(span,small,b,i) { color: #685b49; }
@media (min-width:1080px) and (min-height:680px) {
  .campaign-shell:not(.campaign-ended) .campaign-playfield:not(:has(> .turn-recap)) { grid-template-rows: auto minmax(0,1fr) auto; }
}
.turn-recap { display: block; }
.turn-recap > .turn-recap-summary { width: 100%; display: flex; align-items: center; gap: 16px; padding: 0; list-style: none; }
.turn-recap-summary::-webkit-details-marker { display: none; }
.turn-recap-summary > .turn-recap-mark { display: flex; align-items: center; flex: 0 0 auto; gap: 10px; border: 0; padding: 0; }
.turn-recap-summary .turn-recap-mark img { width: 36px; height: 36px; }
.turn-recap-summary .turn-recap-mark strong { font-size: 16px; }
.turn-recap-summary > b { flex: 1; min-width: 0; font-size: 16px; font-weight: 650; }
.turn-recap-summary > small { flex: 0 0 auto; color: #c4b59a; font-size: 14px; }
.turn-recap-summary::after { content: '+'; font-size: 20px; color: #c4b59a; }
.turn-recap[open] > .turn-recap-summary::after { content: '−'; }
.turn-recap > .turn-recap-body { display: grid; grid-template-columns: minmax(0,1fr) auto; gap: 12px; border-top: 1px solid #b7a58744; margin-top: 10px; }
.turn-recap-body .turn-recap-copy p { font-size: 16px; line-height: 1.7; }
.turn-recap-body .turn-recap-ledger { grid-column: 1; }
.turn-recap-body .turn-recap-ledger em { white-space: normal; overflow: visible; font-size: 14px; line-height: 1.6; }
.turn-recap-body > button { grid-column: 2; grid-row: 1 / span 2; min-height: 44px; font-size: 16px; }
@media (max-width:760px) {
  .turn-recap > .turn-recap-summary { gap: 10px; flex-wrap: nowrap; }
  .turn-recap-summary > .turn-recap-mark { gap: 6px; }
  .turn-recap-summary .turn-recap-mark img { width: 28px; height: 28px; }
  .turn-recap-summary .turn-recap-mark strong { font-size: 14px; }
  .turn-recap-summary > b { font-size: 16px; line-height: 1.5; }
  .turn-recap-summary > small { max-width: 70px; white-space: normal; }
  .turn-recap > .turn-recap-body { grid-template-columns: minmax(0,1fr); }
  .turn-recap-body > button { grid-column: 1; grid-row: auto; }
}

/* Goal proposals have no icon column and are a full-width document. */
.campaign-shell .campaign-playfield:has(.player-goal-proposal) { display: block; overflow-y: auto; padding-bottom: 24px; }
.campaign-playfield:has(.player-goal-proposal) > * + * { margin-top: 12px; }
.campaign-shell .free-action-panel:has(.player-goal-proposal) { display: block; height: auto; min-height: 0; max-height: none; overflow: visible; }
.free-action-panel:has(.player-goal-proposal) > .free-action-intro { margin-bottom: 16px; }
.campaign-shell .free-action-panel:has(.player-goal-proposal) > .free-action-composer { position: static; height: auto; margin-bottom: 24px; }
.campaign-shell .free-action-panel > .player-goal-proposal { display: block; grid-column: 1 / -1; min-width: 0; width: 100%; max-width: none; margin-top: 20px; padding: 20px; }
.player-goal-proposal.action-proposal-plan > header { display: flex; align-items: start; justify-content: space-between; gap: 18px; width: 100%; }
.player-goal-proposal.action-proposal-plan > header > div { flex: 1; min-width: 0; display: block; }
.player-goal-proposal.action-proposal-plan > header b { display: block; font-size: 24px; line-height: 1.45; }
.player-goal-proposal.action-proposal-plan > header p { margin-top: 12px; font-size: 16px; line-height: 1.75; }
.player-goal-proposal.action-proposal-plan > header em { flex: 0 0 auto; }
.player-goal-proposal.action-proposal-plan > aside { display: block; padding: 14px; margin: 16px 0; }
.player-goal-proposal.action-proposal-plan > aside > * { display: block; margin: 4px 0; }
.player-goal-proposal.action-proposal-plan > footer { display: flex; flex-wrap: wrap; gap: 12px; }
.player-goal-proposal.action-proposal-plan > footer > button { flex: 1 1 180px; min-width: 0; }
.archive-drawer .player-goals .player-goal { min-width: 0; }
:is(.archive-drawer,.player-goal-proposal) .player-goal-constraints > ul { display: block; width: auto; min-width: 0; padding-left: 24px; margin-block: 8px; }
:is(.archive-drawer,.player-goal-proposal) .player-goal-constraints > ul > li { display: list-item; grid-template-columns: none; width: auto; min-width: 0; padding: 5px 0; border: 0; font-size: 16px; line-height: 1.75; }
:is(.archive-drawer,.player-goal-proposal) .player-goal-stages { display: block; width: auto; min-width: 0; }
:is(.archive-drawer,.player-goal-proposal) .player-goal-stages > li { display: list-item; grid-template-columns: none; width: auto; min-width: 0; }
:is(.archive-drawer,.player-goal-proposal) .player-goal-stages > li > b { font-size: 16px; line-height: 1.6; }
.archive-drawer .archive-meta > div { background: var(--ming-paper-raised); color: var(--ming-ink); border-color: var(--ming-rule); }
.archive-drawer .archive-meta :is(span,strong,small) { color: var(--ming-ink); }
@media (max-width:760px) {
  .player-goal-proposal.action-proposal-plan > header { display: block; }
  .player-goal-proposal.action-proposal-plan > header em { display: inline-block; margin-top: 12px; }
  .campaign-shell .free-action-panel > .player-goal-proposal { padding: 16px 12px; }
}
.campaign-shell .free-action-panel .player-goal-proposal p,
.campaign-shell .free-action-panel .player-goal-proposal > aside > span { font-size: 16px; line-height: 1.75; }
.campaign-shell .free-action-panel .player-goal-proposal button,
.campaign-shell .free-action-panel .player-goal-proposal button :is(b,span) { font-size: 16px; line-height: 1.5; }
.campaign-shell .free-action-panel .player-goal-proposal button small { font-size: 14px; }
.archive-drawer .player-goals p { font-size: 16px; line-height: 1.75; }

/* Goal management stays a reading/editing surface, not the archive row grid. */
.player-goal-management { min-width: 0; margin-top: 24px; border-top: 1px solid var(--ming-rule); }
.player-goal-management > summary { display: flex; align-items: center; min-height: 48px; padding: 10px 0; color: var(--ming-copper); cursor: pointer; }
.player-goal-management > [data-player-goal-editor] { display: grid; gap: 24px; min-width: 0; padding-block: 12px 20px; }
.player-goal-management :is(.player-goal-wait-editor,.player-goal-redirect-editor) { display: grid; gap: 14px; min-width: 0; }
.player-goal-management label { display: grid; gap: 8px; min-width: 0; font-size: 16px; line-height: 1.6; }
.player-goal-management textarea { display: block; box-sizing: border-box; width: 100%; min-width: 0; max-width: 100%; padding: 12px; border: 1px solid var(--ming-rule); border-radius: 2px; background: var(--ming-paper-raised); color: var(--ming-ink); font: inherit; line-height: 1.65; resize: vertical; }
.player-goal-management button { min-width: 44px; min-height: 48px; padding: 10px 16px; border: 1px solid var(--ming-rule); border-radius: 2px; background: var(--ming-paper-raised); color: var(--ming-ink); box-shadow: none; font-size: 16px; line-height: 1.5; cursor: pointer; }
.player-goal-management :is(button,textarea,summary):focus-visible { outline: 2px solid var(--ming-copper); outline-offset: 3px; }
.player-goal-management:has(.player-goal-management-confirmation) > [data-player-goal-editor] { display: none; }
.player-goal-management-confirmation { min-width: 0; padding-block: 16px; }
.player-goal-management-confirmation > header { display: block; padding: 0 0 16px; }
.player-goal-management-confirmation h4 { margin: 0 0 12px; font-size: 22px; line-height: 1.5; }
.player-goal-management-confirmation-body { min-width: 0; padding-right: 12px; scrollbar-gutter: stable; }
.player-goal-management-confirmation-body h5 { margin: 22px 0 8px; font-size: 16px; line-height: 1.5; }
.player-goal-management-confirmation-body :is(ul,ol) { display: block; width: auto; min-width: 0; padding-left: 26px; }
.archive-drawer .player-goal-management-confirmation-body li { display: list-item; grid-template-columns: none; width: auto; min-width: 0; padding: 8px 0; border: 0; }
.archive-drawer .player-goal-management-confirmation-body li p { display: block; width: auto; margin: 0; font-size: 16px; line-height: 1.75; }
.player-goal-management-confirmation > footer { display: flex; flex-wrap: wrap; justify-content: flex-end; gap: 12px; padding-top: 16px; border-top: 1px solid var(--ming-rule); }
.player-goal-management-confirmation > footer button { flex: 1 1 180px; min-width: 0; }
.player-goal-management .player-goal-management-confirmation [data-goal-management-action="commit"]:not(:disabled) { background: var(--ming-vermilion); border-color: var(--ming-vermilion); color: #fff1d7; }
.player-goal-management .player-goal-management-confirmation [data-goal-management-action="commit"]:hover:not(:disabled) { background: #703b2a; border-color: #703b2a; }

/* Workbench cards: prerequisites stay visible; the full account opens below. */
:is(.ming-folio-body, .system-detail) .crafting-ledger > header { align-items: baseline; justify-content: flex-end; padding: 0; margin: 0; border: 0; }
:is(.ming-folio-body, .system-detail) .crafting-ledger > header > div { display: none; }
:is(.ming-folio-body, .system-detail) .crafting-ledger > header h3 { font-size: 24px; line-height: 1.4; }
:is(.ming-folio-body, .system-detail) .crafting-rules { margin: 0; color: var(--ming-muted); font-size: 14px; }
:is(.ming-folio-body, .system-detail) .crafting-rules > summary { display: flex; align-items: center; min-height: 44px; cursor: pointer; }
:is(.ming-folio-body, .system-detail) .crafting-recipe-list { grid-template-columns: minmax(0,1fr); align-items: start; gap: 0; }
:is(.ming-folio-body, .system-detail) .crafting-recipe-card { grid-template-columns: 120px minmax(0,1fr); gap: 28px; padding: 26px 0; min-height: 0; border: 0; border-bottom: 1px solid var(--ming-rule); background: transparent; box-shadow: none; opacity: 1; }
:is(.ming-folio-body, .system-detail) .crafting-recipe-card:last-child { border-bottom: 0; }
:is(.ming-folio-body, .system-detail) .crafting-recipe-card > figure { width: 120px; height: 120px; margin: 0; border: 0; background: radial-gradient(ellipse at center, #d7c7a95c, transparent 72%); }
:is(.ming-folio-body, .system-detail) .crafting-recipe-card > figure img { width: 112px; height: 112px; filter: drop-shadow(0 6px 6px #302b2426); }
:is(.ming-folio-body, .system-detail) .crafting-recipe-card > div { min-width: 0; display: grid; grid-template-columns: minmax(0,1fr) 160px; column-gap: 32px; align-items: start; }
:is(.ming-folio-body, .system-detail) .crafting-recipe-card header { grid-column: 1 / -1; grid-row: 1; display: flex; align-items: baseline; gap: 10px; }
:is(.ming-folio-body, .system-detail) .crafting-recipe-card header h3 { margin: 0; font-family: var(--font-body); font-size: 22px; font-weight: 700; line-height: 1.5; }
:is(.ming-folio-body, .system-detail) .crafting-recipe-card header span { color: var(--ming-muted); font-size: 14px; }
:is(.ming-folio-body, .system-detail) .crafting-recipe-card .recipe-material-summary,
:is(.ming-folio-body, .system-detail) .crafting-recipe-card .recipe-tool-summary { grid-column: 1 / -1; display: grid; grid-template-columns: 78px minmax(0,1fr); align-items: baseline; gap: 12px; margin: 10px 0 0; }
:is(.ming-folio-body, .system-detail) .recipe-material-summary { grid-row: 2; }
:is(.ming-folio-body, .system-detail) .recipe-tool-summary { grid-row: 3; }
:is(.ming-folio-body, .system-detail) :is(.recipe-material-summary,.recipe-tool-summary) > span { color: var(--ming-muted); font-size: 14px; line-height: 1.6; }
:is(.ming-folio-body, .system-detail) :is(ul.recipe-materials,ul.recipe-tools) { display: flex; flex-wrap: wrap; gap: 8px 24px; margin: 0; padding: 0; list-style: none; }
:is(.ming-folio-body, .system-detail) :is(.recipe-materials,.recipe-tools) > li { display: flex; align-items: baseline; flex-wrap: wrap; gap: 8px 12px; padding: 0; border: 0; font-size: 16px; line-height: 1.6; }
:is(.ming-folio-body, .system-detail) :is(.recipe-materials,.recipe-tools) > li:not(.recipe-item-token) > span { display: flex; align-items: baseline; flex-wrap: wrap; gap: 10px; font-size: 16px; }
:is(.ming-folio-body, .system-detail) :is(.recipe-materials,.recipe-tools) > li > b { display: inline-flex; align-items: baseline; gap: 6px; font-size: 18px; font-weight: 650; font-variant-numeric: tabular-nums; }
:is(.ming-folio-body, .system-detail) :is(.recipe-materials,.recipe-tools) small { color: var(--ming-muted); font-size: 14px; line-height: 1.6; }
.recipe-item-token { position: relative; }
:is(.ming-folio-body, .system-detail) :is(.recipe-materials,.recipe-tools) > .recipe-item-token { align-items: center; gap: 8px 12px; }
.recipe-item-token .recipe-item-button { display: inline-flex; align-items: center; gap: 10px; width: auto; min-width: 48px; min-height: 48px; padding: 2px 8px 2px 2px; border: 1px solid transparent; border-radius: 3px; background: transparent; color: var(--ming-ink,#302b24); box-shadow: none; cursor: pointer; }
.recipe-item-token .recipe-item-button:hover, .recipe-item-token .recipe-item-button[aria-expanded="true"] { background: #dbc9a733; border-color: transparent; }
.recipe-item-token .recipe-item-button:focus-visible { outline: 2px solid var(--ming-vermilion,#823c2b); outline-offset: 3px; }
.recipe-item-token .recipe-item-icon { display: inline-flex; align-items: center; justify-content: center; width: 44px; height: 44px; flex: 0 0 44px; box-sizing: border-box; border: 1px solid #b7a58755; border-radius: 3px; background: #F7EEDA; }
.recipe-item-token .recipe-item-icon img { display: block; width: 38px; height: 38px; object-fit: contain; }
.recipe-item-token .recipe-item-placeholder { display: inline-flex; align-items: center; justify-content: center; width: 36px; height: 36px; border: 1px solid #b7a587; color: var(--ming-muted,#655b4b); background: #e3d5bb; font-size: 18px; }
.recipe-item-token .recipe-item-button b { display: inline-flex; align-items: baseline; gap: 5px; font-size: 18px; line-height: 1.5; font-variant-numeric: tabular-nums; white-space: nowrap; }
.recipe-item-token .recipe-item-button b small, .recipe-item-token .recipe-item-notes { color: var(--ming-muted,#655b4b); font-size: 14px; line-height: 1.6; }
.recipe-item-token .recipe-item-fallback-name { font-size: 16px; }
.recipe-item-tooltip { position: fixed; inset: auto; z-index: 200; width: max-content; max-width: min(280px,calc(100vw - 16px)); box-sizing: border-box; padding: 10px 14px; margin: 0; border: 1px solid #a68e68; border-radius: 3px; background: #fbf2df; color: #302b24; box-shadow: 0 5px 18px #302b2433; overflow-wrap: anywhere; }
.recipe-item-token .recipe-item-tooltip strong { display: block; color: #302b24; font-size: 16px; line-height: 1.6; }
.recipe-item-token .recipe-item-tooltip small { display: block; color: #655b4b; font-size: 14px; line-height: 1.6; }
.recipe-item-token > [hidden], .recipe-item-token .recipe-item-icon > [hidden] { display: none; }
:is(.ming-folio-body, .system-detail) .crafting-recipe-card .recipe-costs { grid-column: 1; grid-row: 4; display: grid; grid-template-columns: repeat(3,minmax(80px,120px)); gap: 24px; padding: 0; margin: 20px 0 8px; background: transparent; }
:is(.ming-folio-body, .system-detail) .recipe-costs > div { display: grid; gap: 6px; min-width: 0; padding: 0; border: 0; }
:is(.ming-folio-body, .system-detail) .recipe-costs > div:last-child { border-right: 0; }
:is(.ming-folio-body, .system-detail) .recipe-costs dt { color: var(--ming-muted); font-size: 14px; }
:is(.ming-folio-body, .system-detail) .recipe-costs dd { display: flex; align-items: baseline; flex-wrap: wrap; gap: 6px; margin: 0; color: var(--ming-ink); font-size: 18px; line-height: 1.4; overflow: visible; white-space: normal; text-overflow: clip; font-variant-numeric: tabular-nums; }
:is(.ming-folio-body, .system-detail) .recipe-costs dd small { color: var(--ming-muted); font-size: 14px; }
:is(.ming-folio-body, .system-detail) .crafting-recipe-card footer { grid-column: 2; grid-row: 4; display: flex; flex-direction: column; align-self: center; align-items: stretch; justify-content: center; gap: 8px; margin: 20px 0 8px; }
:is(.ming-folio-body, .system-detail) .crafting-recipe-card footer > small { font-size: 14px; line-height: 1.6; }
:is(.ming-folio-body, .system-detail) .crafting-recipe-card .personal-action-button { flex: 0 0 auto; display: flex; flex-direction: row; align-items: center; justify-content: center; width: 100%; min-width: 0; min-height: 48px; height: auto; padding: 12px; border-color: var(--ming-vermilion); background: var(--ming-paper-raised); color: var(--ming-vermilion); }
:is(.ming-folio-body, .system-detail) .crafting-recipe-card .personal-action-button span { font-size: 16px; line-height: 1.5; }
:is(.ming-folio-body, .system-detail) .crafting-recipe-card .personal-action-button:disabled { color: var(--ming-muted); border-color: var(--ming-rule); }
:is(.ming-folio-body, .system-detail) .crafting-recipe-card.available .personal-action-button:not(:disabled) { background: var(--ming-vermilion); color: #fff4df; border-color: var(--ming-vermilion); box-shadow: 0 3px 0 #57281d20; }
:is(.ming-folio-body, .system-detail) .crafting-recipe-card.available .personal-action-button:not(:disabled) span { color: #fff4df; }
:is(.ming-folio-body, .system-detail) .crafting-recipe-card.available .personal-action-button:not(:disabled):hover { background: #6d3023; }
:is(.ming-folio-body, .system-detail) .crafting-recipe-card .personal-action-button.blocked-action-explorable { gap: 8px; opacity: 1; filter: none; }
:is(.ming-folio-body, .system-detail) .crafting-recipe-card .personal-action-button.blocked-action-explorable::after { position: static; padding: 0; border: 0; background: transparent; color: var(--ming-muted); font-size: 14px; line-height: 1.5; white-space: nowrap; }
:is(.ming-folio-body, .system-detail) .crafting-recipe-card .recipe-details { grid-column: 1 / -1; grid-row: 5; margin-top: 6px; }
:is(.ming-folio-body, .system-detail) .recipe-details > summary { display: flex; align-items: center; gap: 8px; min-height: 44px; border-top: 0; color: var(--ming-copper); font-size: 16px; cursor: pointer; }
:is(.ming-folio-body, .system-detail) .recipe-details > summary::before { content: '+'; font: 20px serif; }
:is(.ming-folio-body, .system-detail) .recipe-details[open] > summary::before { content: '−'; }
:is(.ming-folio-body, .system-detail) .recipe-details p { margin: 10px 0; font-size: 16px; line-height: 1.75; }
:is(.ming-folio-body, .system-detail) .recipe-account-grid { grid-template-columns: minmax(0,1fr); gap: 16px; padding-block: 8px; }
:is(.ming-folio-body, .system-detail) .recipe-account-grid > section { display: block; padding: 0; border: 0; background: transparent; }
:is(.ming-folio-body, .system-detail) .recipe-account-grid > section > label { display: block; margin-bottom: 6px; font-size: 14px; }
:is(.ming-folio-body, .system-detail) .recipe-account-grid > section > .recipe-tools { margin-top: 10px; }
:is(.ming-folio-body, .system-detail) .recipe-item-entry :is(b,small) { white-space: normal; overflow: visible; text-overflow: clip; line-height: 1.6; }
:is(.ming-folio-body, .system-detail) .recipe-item-entry.missing small { color: var(--ming-vermilion); }
@media (min-width:1100px) {
  :is(.ming-folio-body, .system-detail) .crafting-recipe-list { grid-template-columns: repeat(2,minmax(0,1fr)); column-gap: 32px; }
  :is(.ming-folio-body, .system-detail) .crafting-recipe-card { grid-template-columns: 112px minmax(0,1fr); column-gap: 20px; row-gap: 0; grid-row: span 6; grid-template-rows: subgrid; }
  :is(.ming-folio-body, .system-detail) .crafting-recipe-card > figure { width: 112px; height: 112px; grid-row: 1 / span 4; align-self: start; }
  :is(.ming-folio-body, .system-detail) .crafting-recipe-card > figure img { width: 104px; height: 104px; }
  :is(.ming-folio-body, .system-detail) .crafting-recipe-card > div { grid-template-columns: minmax(0,1fr) 112px; column-gap: 16px; row-gap: 0; grid-row: 1 / -1; grid-template-rows: subgrid; }
  :is(.ming-folio-body, .system-detail) .crafting-recipe-card header { display: block; }
  :is(.ming-folio-body, .system-detail) .crafting-recipe-card :is(.recipe-material-summary,.recipe-tool-summary) { grid-template-columns: minmax(0,1fr); gap: 3px; }
  :is(.ming-folio-body, .system-detail) .crafting-recipe-card .recipe-tool-summary { grid-row: 2; }
  :is(.ming-folio-body, .system-detail) .crafting-recipe-card:has(.recipe-material-summary) .recipe-tool-summary { grid-row: 3; }
  :is(.ming-folio-body, .system-detail) .crafting-recipe-card .recipe-costs { grid-column: 1 / -1; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 16px; }
  :is(.ming-folio-body, .system-detail) .crafting-recipe-card footer { grid-column: 1; grid-row: 5; align-self: stretch; justify-content: flex-end; }
  :is(.ming-folio-body, .system-detail) .crafting-recipe-card .recipe-details { grid-column: 2; grid-row: 5; align-self: end; margin: 0 0 8px; }
  :is(.ming-folio-body, .system-detail) .crafting-recipe-card .recipe-details > summary { justify-content: center; min-height: 50px; }
  :is(.ming-folio-body, .system-detail) .crafting-recipe-card .recipe-details[open] { grid-column: 1 / -1; grid-row: 6; }
}
@media (max-width:760px) {
  :is(.ming-folio-body, .system-detail) .crafting-recipe-card { grid-template-columns: 112px minmax(0,1fr); gap: 16px; padding-block: 24px; }
  :is(.ming-folio-body, .system-detail) .crafting-recipe-card > figure { width: 112px; height: 112px; }
  :is(.ming-folio-body, .system-detail) .crafting-recipe-card > figure img { width: 104px; height: 104px; }
  :is(.ming-folio-body, .system-detail) .crafting-recipe-card > div { display: grid; grid-template-columns: minmax(0,1fr); }
  :is(.ming-folio-body, .system-detail) .crafting-recipe-card header { display: block; }
  :is(.ming-folio-body, .system-detail) .crafting-recipe-card :is(.recipe-material-summary,.recipe-tool-summary) { grid-template-columns: minmax(0,1fr); gap: 3px; }
  :is(.ming-folio-body, .system-detail) .crafting-recipe-card .recipe-costs { grid-template-columns: repeat(3,minmax(0,1fr)); gap: 10px; }
  :is(.ming-folio-body, .system-detail) .recipe-costs dd { font-size: 18px; }
  :is(.ming-folio-body, .system-detail) .crafting-recipe-card footer { grid-column: 1; grid-row: 5; margin-top: 10px; }
  :is(.ming-folio-body, .system-detail) .crafting-recipe-card .recipe-details { grid-row: 6; }
  .ming-folio-panel > .system-focus-heading { grid-template-columns: minmax(0,1fr) auto; min-height: 0; padding: 16px; gap: 8px 12px; }
  .ming-folio-panel .system-focus-seal { display: none; }
  .ming-folio-panel .system-focus-copy { display: contents; }
  .ming-folio-panel .system-focus-copy > span { grid-column: 1; grid-row: 1; align-self: center; }
  .ming-folio-panel .system-focus-copy > h2 { grid-column: 1 / -1; grid-row: 2; font-size: 28px; line-height: 1.4; }
  .ming-folio-panel .system-focus-copy > p { grid-column: 1 / -1; grid-row: 3; font-size: 16px; margin: 0; }
  .ming-folio-panel .system-focus-copy > .system-focus-authority { grid-column: 1 / -1; grid-row: 4; }
  .ming-folio-panel .system-focus-close { position: static; grid-column: 2; grid-row: 1; width: auto; min-width: 0; min-height: 44px; height: auto; padding: 10px; display: flex; align-items: center; justify-content: center; }
  .ming-folio-panel .system-focus-close b { font-size: 16px; white-space: nowrap; }
  .ming-folio-panel .system-focus-close small { display: none; }
}

/* Player account entry: one scene and one readable form. The document can
   grow for errors, expanded safety notes, text zoom and short windows. */
.account-gate-player {
  display: grid;
  grid-template-columns: minmax(0, 1.08fr) minmax(420px, .92fr);
  min-height: 100svh;
  overflow: visible;
  background:
    linear-gradient(90deg, rgba(5, 7, 6, .04) 0% 44%, rgba(6, 9, 8, .72) 62%, #060907 80%),
    linear-gradient(0deg, rgba(4, 6, 5, .8), transparent 40%),
    url('/assets/art/account/ming-survival-invite-gate-keyart-v2.png') center / cover no-repeat;
}
.account-gate-player .account-gate-art { min-height: 0; }
.account-gate-player .account-entry-origin { position: absolute; top: 30px; left: 36px; right: 28px; }
.account-gate-player .account-entry-origin .account-v2-brand { grid-template-columns: auto minmax(100px, 150px) 1px minmax(0, 1fr); gap: 10px; margin: 0; max-width: 440px; }
.account-gate-player .account-entry-origin :is(b,small,.account-v2-origin-label) { color: #ecdfc3; font-size: 14px; line-height: 1.5; white-space: normal; }
.account-gate-player .account-art-copy { left: 36px; bottom: 42px; width: calc(100% - 72px); }
.account-gate-player .account-art-copy h2 { margin: 12px 0 18px; font-size: clamp(38px, 4.8vw, 64px); line-height: 1.15; }
.account-gate-player .account-art-copy > p { display: block; font-size: 16px; line-height: 1.65; color: #e0d5bf; }
.account-gate-player .account-entry-roadmap { margin-top: 28px; padding-top: 18px; border-top: 1px solid #d5bf8e55; max-width: 400px; }
.account-gate-player .account-entry-roadmap header { display: flex; flex-wrap: wrap; align-items: center; gap: 10px; color: #f1dfad; }
.account-gate-player .account-entry-roadmap :is(span,small) { font-size: 14px; line-height: 1.6; }
.account-gate-player .account-entry-roadmap p { margin: 8px 0 0; font-size: 16px; line-height: 1.65; color: #ded4bf; }
.account-gate-player .account-gate-panel { display: grid; grid-template-rows: auto; align-content: center; min-height: 100svh; margin: 0; padding: 22px clamp(20px, 3vw, 42px); }
.account-gate-player .account-auth-shell { width: min(480px, 100%); min-width: 0; gap: 14px; padding: 0 0 16px; border: 1px solid #b8a47a88; background: var(--ming-paper-fill); box-shadow: 0 18px 54px #0004; }
.account-gate-player .account-auth-shell > header { padding: 24px 26px 16px; gap: 12px; border-bottom: 0; }
.account-gate-player .account-v2-product { grid-template-columns: 52px minmax(0, 1fr); gap: 12px; }
.account-gate-player .account-v2-product > img { width: 52px; height: 52px; filter: drop-shadow(0 4px 7px #3b261533); }
.account-gate-player .account-v2-product h1 { font-size: clamp(34px, 3.3vw, 46px); line-height: 1.2; letter-spacing: .06em; }
.account-gate-player .account-v2-header > p { margin: 0; font-size: 16px; line-height: 1.55; }
.account-gate-player .account-auth-shell > :is(.account-mode-tabs,.account-form,.invite-account-summary,footer) { margin-inline: 26px; }
.account-gate-player .account-mode-tabs button { min-height: 44px; padding: 6px 10px; font-size: 16px; }
.account-gate-player .account-form { gap: 12px; }
.account-gate-player .account-form label { gap: 5px; }
.account-gate-player .account-form label > span { font-size: 16px; line-height: 1.4; }
.account-gate-player .account-form input { height: 46px; min-height: 46px; padding: 10px 12px; font-size: 16px; line-height: 1.5; box-shadow: inset 0 1px 3px #604b2510; }
.account-gate-player .account-form button.primary { font-size: 16px; min-height: 48px; margin-top: 4px; padding: 9px 12px; color: #fff7e8; background: var(--ming-vermilion); border-color: var(--ming-vermilion); }
.account-gate-player .account-form button.primary span { font-size: 16px; line-height: 1.5; }
.account-gate-player .account-v2-security { align-items: center; gap: 4px 12px; padding: 8px 0 0; font-size: 14px; line-height: 1.55; }
.account-gate-player .account-v2-security > span { font-size: 14px; }
.account-gate-player .account-v2-security details { min-width: 0; }
.account-gate-player .account-v2-security summary { min-height: 44px; font-size: 14px; cursor: pointer; }
.account-gate-player .account-v2-security details[open] { flex-basis: 100%; }
.account-gate-player .account-v2-security details p { margin: 4px 0 0; font-size: 14px; line-height: 1.6; color: var(--ming-muted); }
/* The account terms remain visible; binding actions retain their own row. */
.account-gate-player .account-v2-security:has(.account-entry-notice) { display: grid; grid-template-columns: minmax(0, 1fr); align-items: start; gap: 8px; }
.account-gate-player .account-entry-billing { margin: 0; color: var(--ming-ink); font-size: 14px; line-height: 1.5; }
.account-gate-player .account-entry-notice { display: grid; min-width: 0; gap: 4px; text-align: left; }
.account-gate-player .account-entry-notice h2 { margin: 0; font-size: 14px; line-height: 1.5; color: var(--ming-ink); font-weight: 700; }
.account-gate-player .account-entry-notice p { margin: 0; color: var(--ming-muted); font-size: 14px; line-height: 1.5; overflow-wrap: anywhere; }
.account-gate-player .account-error { padding: 8px 10px; font-size: 14px; line-height: 1.6; }
@media (max-height: 760px) and (min-width: 901px) {
  .account-gate-player .account-gate-panel { padding-block: 14px; }
  .account-gate-player .account-auth-shell { gap: 10px; padding-bottom: 12px; }
  .account-gate-player .account-auth-shell > header { padding-top: 18px; padding-bottom: 8px; gap: 8px; }
  .account-gate-player .account-form { gap: 10px; }
  .account-gate-player .account-art-copy { bottom: 30px; }
}
@media (min-width: 681px) and (max-width: 900px) {
  .account-gate-player { grid-template-columns: minmax(0, 1fr) 410px; }
  .account-gate-player .account-entry-origin { left: 20px; right: 16px; top: 24px; }
  .account-gate-player .account-entry-origin .account-v2-brand { grid-template-columns: auto minmax(0, 1fr); }
  .account-gate-player .account-entry-origin .account-v2-brand > i { display: none; }
  .account-gate-player .account-entry-origin .account-v2-brand > span:last-child { grid-column: 1 / -1; }
  .account-gate-player .account-art-copy { left: 20px; width: calc(100% - 40px); bottom: 28px; }
  .account-gate-player .account-art-copy h2 { font-size: 36px; }
  .account-gate-player .account-entry-roadmap { margin-top: 18px; padding-top: 12px; }
  .account-gate-player .account-gate-panel { padding: 16px; }
  .account-gate-player .account-auth-shell > header { padding-inline: 22px; }
  .account-gate-player .account-auth-shell > :is(.account-mode-tabs,.account-form,.invite-account-summary,footer) { margin-inline: 22px; }
}
@media (max-width: 680px) {
  .account-gate-player { display: block; background-position: 30% top; }
  .account-gate-player .account-gate-art { display: grid; align-content: start; gap: 10px; height: auto; min-height: 112px; padding: 14px 20px 16px; background: none; }
  .account-gate-player .account-entry-origin { position: static; }
  .account-gate-player .account-entry-origin .account-v2-brand { grid-template-columns: auto 110px 1px minmax(0, 1fr); gap: 8px; }
  .account-gate-player .account-entry-origin .account-v2-origin-label { display: block; }
  .account-gate-player .account-entry-origin .account-v2-brand > span:last-child small { display: none; }
  .account-gate-player .account-art-copy { position: static; width: auto; margin-inline: 2px; }
  .account-gate-player .account-art-copy > span { display: none; }
  .account-gate-player .account-art-copy h2 { margin: 0; font-size: 30px; line-height: 1.25; }
  .account-gate-player .account-art-copy h2 br { display: none; }
  .account-gate-player .account-art-copy h2 em { display: inline-block; }
  .account-gate-player .account-art-copy > p, .account-gate-player .account-art-copy .account-entry-roadmap { display: none; }
  .account-gate-player .account-gate-panel { min-height: 0; padding: 0 12px 18px; border: 0; background: transparent; box-shadow: none; }
  .account-gate-player .account-gate-panel::before,.account-gate-player .account-gate-panel::after { display: none; }
  .account-gate-player .account-auth-shell { gap: 10px; padding-bottom: 12px; }
  .account-gate-player .account-auth-shell > header { padding: 20px 20px 10px; gap: 8px; }
  .account-gate-player .account-auth-shell > :is(.account-mode-tabs,.account-form,.invite-account-summary,footer) { margin-inline: 20px; }
  .account-gate-player .account-v2-product { grid-template-columns: 46px minmax(0,1fr); gap: 10px; }
  .account-gate-player .account-v2-product > img { width: 46px; height: 46px; }
  .account-gate-player .account-v2-product h1 { font-size: 34px; }
  .account-gate-player .account-form { gap: 10px; }
  .account-gate-player .account-v2-security { flex-direction: row; align-items: center; padding-top: 6px; }
}

/* Registration and phone verification are separate steps; no extra password
   fields are squeezed into the phone card. Errors may grow the document. */
.account-gate-player .account-entry-steps {
  display: flex; align-items: center; flex-wrap: wrap; gap: 6px 16px;
  list-style: none; margin: 0 26px; padding: 0 0 12px;
  border-bottom: 1px solid #b8a47a66; counter-reset: entry-step;
}
.account-gate-player .account-entry-steps > li {
  display: flex; align-items: center; gap: 6px; min-width: 0;
  color: var(--ming-muted); font-size: 14px; line-height: 1.5;
}
.account-gate-player .account-entry-steps > li::before {
  counter-increment: entry-step; content: counter(entry-step);
  display: grid; place-items: center; width: 22px; height: 22px;
  border: 1px solid #b8a47a88; border-radius: 50%; font-size: 14px;
}
.account-gate-player .account-entry-steps > li[aria-current="step"] { color: var(--ming-ink); font-weight: 700; }
.account-gate-player .account-entry-steps > li[aria-current="step"]::before { color: #fff7e8; background: var(--ming-vermilion); border-color: var(--ming-vermilion); }
.account-gate-player .account-phone-send-row { display: grid; grid-template-columns: minmax(0,1fr) auto; align-items: stretch; gap: 8px; }
.account-gate-player .account-phone-send-row input { min-width: 0; width: 100%; }
.account-gate-player .account-phone-send-row button {
  display: flex; align-items: center; justify-content: center;
  min-height: 46px; min-width: 112px; padding: 8px 10px;
  font-size: 16px; line-height: 1.5; white-space: nowrap;
  color: var(--ming-vermilion); border: 1px solid #a96149; background: #f8f0dc;
}
.account-gate-player .account-phone-send-row button:disabled { color: #6f6655; border-color: #b8aa8f; background: #e8dfca; opacity: 1; }
.account-gate-player .account-phone-code-row { display: grid; grid-template-columns: minmax(0,1fr); }
.account-gate-player .account-phone-code-row input { width: 100%; min-width: 0; font-variant-numeric: tabular-nums; letter-spacing: .12em; }
.account-gate-player .account-phone-status { margin: 0; color: #576346; font-size: 14px; line-height: 1.6; overflow-wrap: anywhere; }
.account-gate-player .account-auth-phone .account-error { margin: 0; }
.account-gate-player .account-auth-phone .account-form button.primary:disabled { color: #5f5342; background: #e1d6bd; border-color: #b8aa8f; opacity: 1; box-shadow: none; cursor: not-allowed; }
.account-gate-player .account-auth-phone .account-form button.primary:disabled :is(span,i) { color: inherit; }
.account-gate-player .account-auth-phone [data-action="account-phone-refresh"] { min-height: 46px; padding: 8px 12px; border: 1px solid #b8a47a; border-radius: 0; background: #f8f0dc; color: var(--ming-ink); font-size: 16px; line-height: 1.5; box-shadow: none; }
.account-gate-player .account-auth-phone .account-v2-security:has(> button) { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 8px; }
.account-gate-player .account-auth-phone .account-v2-security button { width: 100%; min-height: 44px; padding: 8px; border: 1px solid transparent; background: transparent; color: #665844; box-shadow: none; font-size: 16px; line-height: 1.5; }
.account-gate-player .account-auth-phone .account-v2-security button:hover { background: #b8a47a22; border-color: #b8a47a66; }

@media (min-width: 681px) and (max-width: 900px) {
  .account-gate-player .account-entry-steps { margin-inline: 22px; gap: 6px 12px; }
}
@media (max-width: 680px) {
  .account-gate-player .account-entry-steps { margin-inline: 20px; padding-bottom: 10px; gap: 6px 10px; }
  .account-gate-player .account-phone-send-row { gap: 6px; }
  .account-gate-player .account-phone-send-row button { min-width: 104px; padding-inline: 8px; }
}
/* Reading contract: warm paper with dark ink, scene art with light ink.
   Component backgrounds and text change together; color never signals alone. */
:root {
  --ming-muted: #594c3c;
  --ming-copper: #705025;
  --ming-disabled-ink: #5c5143;
  --ming-disabled-paper: #e1d5bd;
  --ming-scene-ink: #f5ead4;
  --ming-scene-muted: #d5c8ad;
}
:is(:is(.ming-folio-body, .system-detail),.actor-dialogue-main,.save-panel,.settings-panel,.game-menu-panel,
.archive-drawer,.account-auth-shell,.free-action-panel,.release-notes-panel,
.field-battle-planner-panel,.jinyi-ending-archive-panel) {
  --paper-400: var(--ming-muted);
  --paper-500: var(--ming-muted);
  --gold-200: var(--ming-copper);
  --gold-300: var(--ming-copper);
  --gold-400: var(--ming-copper);
  --jade-200: var(--ming-success);
  --jade-300: var(--ming-success);
  --jade-400: var(--ming-success);
  accent-color: var(--ming-vermilion);
}

/* Modal header controls remain ordinary readable buttons, at every width. */
:is(.save-panel,.settings-panel,.game-menu-panel,.archive-drawer) > header { gap: 20px; align-items: start; }
:is(.save-panel,.settings-panel,.game-menu-panel,.archive-drawer) > header > div { min-width: 0; }
:is(.save-panel,.settings-panel,.game-menu-panel,.archive-drawer) > header button {
  flex: 0 0 auto; min-width: 72px; min-height: 44px; height: auto; padding: 10px 14px;
  color: var(--ming-ink); background: var(--ming-paper-raised); border: 1px solid var(--ming-rule);
  white-space: nowrap; font: 16px/1.5 var(--font-body); box-shadow: none;
}
:is(.save-panel,.settings-panel,.game-menu-panel,.archive-drawer) > header :is(p,small,span) { color: var(--ming-muted); }
:is(.save-panel,.settings-panel,.game-menu-panel,.archive-drawer) > header button:hover { color: var(--ming-ink); background: #fff6e1; border-color: var(--ming-copper); }
:is(.save-panel,.settings-panel,.game-menu-panel,.archive-drawer) > header button:focus-visible { outline: 3px solid var(--ming-vermilion); outline-offset: 3px; }

/* A quantity form owns a full row. A neighbouring action cannot collapse to
   one ideograph simply because the form declares width:100%. */
.inventory-item-actions { flex-wrap: wrap; align-items: start; gap: 10px; }
.inventory-item-actions > button { flex: 1 1 160px; }
.inventory-item-actions > .quantity-action { flex: 1 0 100%; }
.inventory-item-actions > small { flex-basis: 100%; }
.system-focus-panel .inventory-ledger-card { align-items: start; }
.system-focus-panel .inventory-load-summary :is(p,b,strong) { color: var(--ming-ink); }
.system-focus-panel .inventory-load-summary p > b { color: var(--ming-success); }
.system-focus-panel .inventory-item-actions > button { min-height: 48px; padding: 10px 12px; }
.system-focus-panel .inventory-item-actions > button span { font-size: 16px; line-height: 1.5; }
.system-focus-panel .inventory-item-actions > button small { font-size: 14px; line-height: 1.6; }
:is(.system-focus-panel .ming-folio-body, .system-dock .system-detail) .equipment-action-button { background: var(--ming-paper-raised); color: var(--ming-ink); border-color: var(--ming-rule); }
:is(.system-focus-panel .ming-folio-body, .system-dock .system-detail) .equipment-action-button small { color: var(--ming-muted); }

/* Household and relationships are reading pages, including unavailable work. */
:is(.system-focus-panel .ming-folio-body, .system-dock .system-detail) :is(.family-relation-record,.family-bond-glance,
.residence-ledger-card,.home-residence-unknown,.home-interior-summary,.market-summary-card) {
  color: var(--ming-ink); background: var(--ming-paper-raised); border-color: var(--ming-rule); box-shadow: none;
}
:is(.system-focus-panel .ming-folio-body, .system-dock .system-detail) :is(.family-bond-ledger,.family-relation-story,.family-claim-ledger,
.family-empty-claims,.residence-ledger-card,.home-interior-summary,.market-summary-card)
:is(h3,h4,p,span,small,b,strong,em) { color: var(--ming-ink); text-shadow: none; }
:is(.system-focus-panel .ming-folio-body, .system-dock .system-detail) :is(.family-relation-story,.family-claim-ledger,.residence-ledger-card)
:is(small,p,em) { color: var(--ming-muted); }
:is(.system-focus-panel .ming-folio-body, .system-dock .system-detail) .family-bond-glance { background: var(--ming-paper-shade); border-left-color: var(--ming-success); }
:is(.system-focus-panel .ming-folio-body, .system-dock .system-detail) .family-bond-meters i b { background: var(--ming-success); }
:is(.system-focus-panel .ming-folio-body, .system-dock .system-detail) .family-relation-story > footer button { background: var(--ming-paper-raised); border-color: var(--ming-rule); color: var(--ming-ink); }
:is(.system-focus-panel .ming-folio-body, .system-dock .system-detail) .family-relation-story > footer button small { color: var(--ming-muted); }
:is(.system-focus-panel .ming-folio-body, .system-dock .system-detail) .family-bond-ledger > header { gap: 12px; flex-wrap: wrap; }
:is(.system-focus-panel .ming-folio-body, .system-dock .system-detail) .residence-ledger-card :is(.residence-unknown,.residence-unverified,.residence-ledger-note) { background: transparent; }

/* Settings use the same legible status colors as the item and family ledgers. */
.settings-panel :is(.cloud-service-copy,.byok-price-card,.byok-price-option,.byok-price-grid,
.byok-activation-prices,.tianji-mode-card.locked) :is(span,small,p,em,b,strong,i) { color: var(--ming-ink); }
.settings-panel :is(.cloud-service-copy,.byok-price-card,.byok-price-option,.byok-price-grid,
.byok-activation-prices,.tianji-mode-card.locked) :is(small,em) { color: var(--ming-muted); }
.settings-panel .tianji-mode-card.locked b i { background: var(--ming-paper-shade); border-color: var(--ming-rule); color: var(--ming-ink); }
.settings-panel .cloud-service-copy > header > strong { color: var(--ming-success); }
.settings-panel .cloud-service-copy > footer :is(span,b) { color: var(--ming-muted); }
.settings-panel .cloud-service-meter { background: #d3c5ab; }
.settings-panel .cloud-service-meter i { background: var(--ming-success); }

/* The writing desk is fully opaque so the scene cannot wash out the text. */
.campaign-shell .free-action-panel { background: var(--ming-paper-fill); }
.campaign-shell .free-action-panel :is(.free-action-promise,.free-action-toolbar,.free-action-flow,.free-action-composer label)
:is(b,small,span,i,em) { color: var(--ming-muted); }
.campaign-shell .free-action-heading > i { color: #fff1d7; background: var(--ming-vermilion); border-color: var(--ming-vermilion); }
.campaign-shell .free-action-promise > span { opacity: 1; }
.campaign-shell .free-action-promise > span > i { border-color: var(--ming-rule); }
.campaign-shell .free-action-composer label > small { color: var(--ming-muted); }
.campaign-shell .free-action-composer button:disabled,
.actor-dialogue-modal > footer button:disabled,
:is(:is(.ming-folio-body, .system-detail),.settings-panel,.save-panel,.account-auth-shell) button:disabled {
  opacity: 1; color: var(--ming-disabled-ink); background: var(--ming-disabled-paper); border-color: var(--ming-rule); filter: none;
}
.campaign-shell .free-action-composer button:disabled :is(b,small,span,i),
.actor-dialogue-modal > footer button:disabled :is(b,small,span,i),
:is(:is(.ming-folio-body, .system-detail),.settings-panel,.save-panel,.account-auth-shell) button:disabled :is(b,small,span,i) { color: var(--ming-disabled-ink); }
.campaign-shell .free-action-composer button:disabled > i { background: transparent; box-shadow: none; }
:is(.system-focus-panel .ming-folio-body, .system-dock .system-detail) .quantity-action button:disabled { color: var(--ming-disabled-ink); background: var(--ming-disabled-paper); opacity: 1; }
:is(.system-focus-panel .ming-folio-body, .system-dock .system-detail) button.blocked-action-explorable { opacity: 1; background: var(--ming-paper-raised); color: var(--ming-muted); }
:is(.system-focus-panel .ming-folio-body, .system-dock .system-detail) button.blocked-action-explorable :is(span,b,small) { color: var(--ming-muted); }
:is(.system-focus-panel .ming-folio-body, .system-dock .system-detail) button.blocked-action-explorable::after { color: var(--ming-muted); background: var(--ming-paper-shade); border-color: var(--ming-rule); }

/* Short labels use one line; prose wraps without shrinking the glyphs. */
.campaign-sidebar .resource-cell { display: grid; grid-template-columns: minmax(0,1fr); gap: 3px; align-content: center; }
.campaign-sidebar .resource-cell span { white-space: nowrap; }
.campaign-sidebar .resource-cell strong { font-variant-numeric: tabular-nums; }
.campaign-shell .turn-recap-body > button { color: #f5ead4; background: #393327; border: 1px solid #a28a60; padding: 10px 14px; align-self: start; min-height: 44px; }
@media (max-width:760px) {
  :is(.save-panel,.settings-panel,.game-menu-panel,.archive-drawer) > header { gap: 12px; }
  :is(.save-panel,.settings-panel,.game-menu-panel,.archive-drawer) > header button { min-width: 68px; padding: 9px 12px; }
  .system-focus-panel .inventory-ledger-card { grid-template-columns: 64px minmax(0,1fr); gap: 12px; }
  .system-focus-panel .inventory-ledger-card > figure { width: 64px; height: 64px; }
  .system-focus-panel .inventory-ledger-card > figure img { width: 60px; height: 60px; }
  .system-focus-panel .inventory-item-actions { margin-top: 12px; }
}

/* Secondary ledgers obey the same contract as their parent folio. */
:is(.system-focus-panel .ming-folio-body, .system-dock .system-detail) :is(.trade-journey-ledger,.trade-journey-ledger > summary,.trade-journey-net,
.courier-commission-ledger,.courier-commission-route > span,.courier-commission-facts > span,
.courier-commission-progress > li,.household-service-commission-progress > li,
.actor-hostile-panel,.actor-body-condition,.common-building-blueprint,.building-lifecycle-body,
.pottery-mountain-progress,.pottery-mountain-progress article,[data-polity-governance-readiness]) {
  background: var(--ming-paper-raised); color: var(--ming-ink); border-color: var(--ming-rule); box-shadow: none;
}
:is(.system-focus-panel .ming-folio-body, .system-dock .system-detail) :is(.trade-journey-ledger,.courier-commission-ledger,
.household-service-commission-ledger,.actor-hostile-panel,.actor-body-condition,
.population-military-ledger,.common-building-blueprint > div,.building-lifecycle-body,
.pottery-mountain-progress,.location-route-registry,.polity-governance-council)
:is(h3,h4,h5,p,span,small,b,strong,em,i,dt,dd,summary,footer) { color: var(--ming-ink); text-shadow: none; }
:is(.system-focus-panel .ming-folio-body, .system-dock .system-detail) :is(.trade-journey-ledger,.courier-commission-ledger,
.household-service-commission-ledger,.actor-hostile-panel,.actor-body-condition,
.population-military-ledger,.common-building-blueprint > div,.building-lifecycle-body,
.pottery-mountain-progress,.location-route-registry,.polity-governance-council)
:is(p,small,em,dt,footer) { color: var(--ming-muted); }
:is(.system-focus-panel .ming-folio-body, .system-dock .system-detail) :is(.trade-journey-ledger,.courier-commission-ledger,.actor-hostile-panel) button {
  background: var(--ming-paper-raised); color: var(--ming-ink); border-color: var(--ming-rule);
}
:is(.system-focus-panel .ming-folio-body, .system-dock .system-detail) .actor-hostile-panel button > i { background: var(--ming-paper-shade); border-color: var(--ming-rule); }
:is(.system-focus-panel .ming-folio-body, .system-dock .system-detail) .actor-hostile-panel button.lethal { background: var(--ming-danger-paper); border-color: var(--ming-vermilion); }
:is(.system-focus-panel .ming-folio-body, .system-dock .system-detail) .actor-hostile-panel button.lethal :is(b,small,i) { color: var(--ming-vermilion); }
:is(.system-focus-panel .ming-folio-body, .system-dock .system-detail) .home-enter-button { background: var(--ming-paper-shade); border-color: var(--ming-rule); }
:is(.system-focus-panel .ming-folio-body, .system-dock .system-detail) .home-enter-button :is(b,small) { color: var(--ming-ink); }
:is(.system-focus-panel .ming-folio-body, .system-dock .system-detail) [data-polity-governance-confirm]:disabled {
  opacity: 1; background: var(--ming-disabled-paper); color: var(--ming-disabled-ink);
}
:is(.system-focus-panel .ming-folio-body, .system-dock .system-detail) [data-polity-governance-confirm]:disabled :is(b,small) { color: var(--ming-disabled-ink); }
:is(.system-focus-panel .ming-folio-body, .system-dock .system-detail) .location-breadcrumb i { color: var(--ming-muted); }
:is(.system-focus-panel .ming-folio-body, .system-dock .system-detail) .vehicle-ledger-card > figure figcaption { background: #252a21; }
:is(.system-focus-panel .ming-folio-body, .system-dock .system-detail) .vehicle-ledger-card > figure figcaption :is(b,small) { color: var(--ming-scene-ink); }
:is(.system-focus-panel .ming-folio-body, .system-dock .system-detail) button.blocked-action-explorable::after {
  position: static; display: block; align-self: start; width: fit-content;
  grid-column: 1 / -1; margin-top: 6px; padding: 2px 6px; white-space: normal;
}
:is(.system-focus-panel .ming-folio-body, .system-dock .system-detail) .crafting-recipe-card .personal-action-button.blocked-action-explorable { flex-wrap: wrap; }

/* The archive is a continuous paper record, including expanded result details. */
.archive-drawer :is(.inference-report,.resolution-details,.resolution-details > div,
.outcome-basis,.archive-entry,.archive-entry-aside,.chronicle-ledger) {
  background: var(--ming-paper-raised); color: var(--ming-ink); border-color: var(--ming-rule); box-shadow: none;
}
.archive-drawer :is(.inference-report,.chronicle-ledger,.archive-entry,.archive-tabs)
:is(h3,h4,p,span,small,b,strong,em,summary) { color: var(--ming-ink); text-shadow: none; }
.archive-drawer :is(.inference-report,.chronicle-ledger,.archive-entry,.archive-tabs)
:is(p,small,em) { color: var(--ming-muted); }
.archive-drawer .resolution-time { color: var(--ming-muted); background: var(--ming-paper-shade); }
.archive-drawer :is(.outcome-basis > span,.resolution-verdict,.archive-outcome,.archive-entry-changes span,.change-list span) {
  background: var(--ming-paper-shade); border-color: var(--ming-rule); color: var(--ming-ink);
}
.archive-drawer :is(.archive-entry-changes,.change-list) .negative { color: var(--ming-vermilion); background: var(--ming-danger-paper); }
.archive-drawer :is(.archive-entry-changes,.change-list) .positive { color: var(--ming-success); background: var(--ming-success-paper); }
.archive-drawer .archive-entry-changes span b { color: inherit; }
.archive-drawer :is(.archive-tab,.archive-tabs button) b { background: var(--ming-paper-shade); color: var(--ming-ink); }
.game-menu-panel > header h2 { color: var(--ming-ink); }
.game-menu-panel .game-menu-actions button:not(.primary) :is(i,b) { color: var(--ming-copper); background: transparent; }
.settings-panel .byok-price-grid del { color: var(--ming-muted); }
.settings-panel :is(footer,.settings-save-actions) button { background: var(--ming-paper-raised); color: var(--ming-ink); border-color: var(--ming-rule); }
.settings-panel :is(footer,.settings-save-actions) button.primary { background: var(--ming-vermilion); color: #fff1d7; }
:is(.system-focus-panel .ming-folio-body, .system-dock .system-detail) .vehicle-registry-visual figcaption { background: #252a21; }
:is(.system-focus-panel .ming-folio-body, .system-dock .system-detail) .vehicle-registry-visual figcaption :is(b,small) { color: var(--ming-scene-ink); }
:is(.system-focus-panel .ming-folio-body, .system-dock .system-detail) .courier-commission-ledger > header > strong { color: var(--ming-ink); background: var(--ming-paper-shade); border-color: var(--ming-rule); }
/* Match the legacy !important return-button rule without changing its action. */
:is(.system-focus-panel .ming-folio-body, .system-dock .system-detail) .home-return-button,
:is(.system-focus-panel .ming-folio-body, .system-dock .system-detail) .home-return-button:hover,
:is(.system-focus-panel .ming-folio-body, .system-dock .system-detail) .home-return-button:focus-visible { background: var(--ming-paper-shade) !important; border-color: var(--ming-copper) !important; }
:is(.system-focus-panel .ming-folio-body, .system-dock .system-detail) [data-polity-governance-preview] { background: var(--ming-danger-paper); }
:is(.system-focus-panel .ming-folio-body, .system-dock .system-detail) [data-polity-governance-preview].is-ready { background: var(--ming-success-paper); }
.archive-drawer .archive-view-tabs button small { color: var(--ming-muted); }
.archive-drawer .archive-category-filters button b { color: var(--ming-ink); background: var(--ming-paper-shade); }
.archive-drawer .archive-view-tabs button[aria-pressed="true"] small { color: #fff1d7; }
.archive-drawer .archive-category-filters button[aria-pressed="true"] b { color: #fff1d7; background: #673324; }
:is(.system-focus-panel .ming-folio-body, .system-dock .system-detail) .home-unverified-ledger { background: var(--ming-paper-raised); border-color: var(--ming-rule); }
:is(.system-focus-panel .ming-folio-body, .system-dock .system-detail) .home-unverified-ledger :is(h3,h4,p,span,b,small) { color: var(--ming-ink); text-shadow: none; }
:is(.system-focus-panel .ming-folio-body, .system-dock .system-detail) .home-unverified-ledger :is(p,small) { color: var(--ming-muted); }
:is(.system-focus-panel .ming-folio-body, .system-dock .system-detail) .home-unverified-ledger > header > b { color: var(--ming-vermilion); background: var(--ming-danger-paper); border-color: var(--ming-rule); }
:is(.system-focus-panel .ming-folio-body, .system-dock .system-detail) .home-unverified-body > i { color: var(--ming-copper); background: var(--ming-paper-shade); border-color: var(--ming-rule); }
:is(.system-focus-panel .ming-folio-body, .system-dock .system-detail) .vehicle-registry-visual .vehicle-status-seal { color: var(--ming-ink); background: var(--ming-paper-raised); border-color: var(--ming-rule); }

/* Active and disabled writing states both have an explicit foreground. */
.campaign-shell .free-action-panel .free-action-composer button:not(:disabled) { background: var(--ming-vermilion); color: #fff1d7; border-color: var(--ming-vermilion); }
.campaign-shell .free-action-panel .free-action-composer button:not(:disabled) :is(b,small,span,i) { color: #fff1d7; }
.campaign-shell .free-action-panel .free-action-composer button:not(:disabled) > i { background: transparent; box-shadow: none; }
.account-gate-player .account-auth-shell .account-phone-send-row button:disabled { opacity: 1; background: var(--ming-disabled-paper); color: var(--ming-disabled-ink); }
:is(.system-focus-panel .ming-folio-body, .system-dock .system-detail) .case-route-chapter.status-locked { opacity: 1; border-style: dashed; }
.archive-drawer .yearbook-page-status { background: var(--ming-paper-shade); border-color: var(--ming-rule); }
.archive-drawer .yearbook-page-status :is(span,p,b) { color: var(--ming-ink); }

/* Keep the facts beside scene artwork light; inset buttons remain paper. */
:is(.system-focus-panel .ming-folio-body, .system-dock .system-detail) .market-shop-hero :is(dt,dd,p,h3,span,b,strong) { color: var(--ming-scene-ink); }
:is(.system-focus-panel .ming-folio-body, .system-dock .system-detail) .market-shop-hero button { background: var(--ming-paper-raised); border-color: var(--ming-rule); }
:is(.system-focus-panel .ming-folio-body, .system-dock .system-detail) .market-shop-hero button :is(b,small,span) { color: var(--ming-ink); }
:is(.system-focus-panel .ming-folio-body, .system-dock .system-detail) .quantity-action :is(.quantity-action-note,.quantity-action-reason) { color: var(--ming-muted); }
:is(.system-focus-panel .ming-folio-body, .system-dock .system-detail) :is(.market-sell-panel,.market-goods-group) > header span { color: var(--ming-copper); }

/* A job may offer cash and goods. Each offer gets its own full-width row. */
.actor-dialogue-main .actor-dialogue-livelihood-card article.work { grid-template-columns: 32px minmax(0,1fr); align-items: start; gap: 12px; }
.actor-dialogue-main .actor-dialogue-livelihood-card article.work > i { grid-column: 1; grid-row: 1; }
.actor-dialogue-main .actor-dialogue-livelihood-card article.work > span { grid-column: 2; grid-row: 1; }
.actor-dialogue-main .actor-dialogue-livelihood-card article.work > button { grid-column: 2; width: 100%; min-width: 0; min-height: 48px; padding: 12px; }
.actor-dialogue-main .actor-dialogue-livelihood-card article.work > button :is(b,small) { display: block; white-space: normal; overflow-wrap: anywhere; }
.actor-dialogue-main :is(.actor-body-condition,.actor-dialogue-body-status) { background: var(--ming-paper-raised); border-color: var(--ming-rule); }
.actor-dialogue-main :is(.actor-body-condition,.actor-dialogue-body-status) :is(i,b,small,span) { color: var(--ming-ink); }
.actor-dialogue-main button:disabled { opacity: 1; background: var(--ming-disabled-paper); color: var(--ming-disabled-ink); }
.actor-dialogue-main button:disabled :is(b,small,span) { color: var(--ming-disabled-ink); }
.actor-dialogue-current-line { background: var(--ming-paper); }
.actor-dialogue-current-line > header > i { color: var(--ming-copper); border-color: var(--ming-rule); }

@media (max-width:760px) {
  .campaign-shell .campaign-header { flex-direction: column; align-items: stretch; gap: 8px; padding: 10px 12px; }
  .campaign-header .campaign-brand { width: 100%; justify-content: flex-start; }
  .campaign-header .campaign-actions { width: 100%; justify-content: space-between; gap: 6px; }
  .campaign-header .campaign-actions .archive-button { display: inline-flex; align-items: center; justify-content: center; min-width: 52px; min-height: 44px; padding: 8px; }
  .campaign-header .archive-button > span { display: none; }
  .campaign-header .archive-button > small { display: block; font-size: 14px; }
  .campaign-shell .location-context-card .event-heading h2 { text-wrap: balance; }
  .campaign-shell .location-context-card .event-side { display: flex; flex-wrap: wrap; flex-direction: row; align-items: center; justify-content: space-between; gap: 8px; width: 100%; }
  .campaign-shell .location-context-card .event-origin { display: flex; flex-direction: row; align-items: center; }
  .campaign-shell .location-context-card .location-scene-seal { width: auto; margin: 0; }
}
:is(.system-focus-panel .ming-folio-body, .system-dock .system-detail) .market-stock-ledger > header span { color: var(--ming-copper); }
.actor-dialogue-main .actor-body-ledger > header :is(span,b) { color: var(--ming-ink); }

/* Yearbook pages use the archive's paper, including empty and selected pages. */
.release-notes-panel { background: var(--ming-paper-fill); color: var(--ming-ink); border-color: var(--ming-rule); box-shadow: 0 24px 70px #0005; }
.release-notes-panel :is(.release-notes-heading,.release-notes-section,.release-notes-completed-item,
.release-notes-roadmap-item,.release-detail-section,.release-detail-notes,.release-detail-item,
.release-detail-notes li,.release-notes-section.excluded li) { background: var(--ming-paper-raised); border-color: var(--ming-rule); }
.release-notes-panel :is(h2,h3,h4,p,span,small,b,strong,li,i) { color: var(--ming-ink); text-shadow: none; }
.release-notes-panel :is(p,small,li) { color: var(--ming-muted); line-height: 1.65; }
.release-notes-panel :is(.release-notes-section,.release-detail-section,.release-detail-notes) > header > span { color: var(--ming-copper); }
.release-notes-panel .release-notes-section > header::before { color: var(--ming-copper); background: var(--ming-paper-shade); border-color: var(--ming-rule); }
.release-notes-panel :is(.release-notes-completed-item,.release-notes-roadmap-item) > span { color: var(--ming-copper); }
.release-notes-panel :is(.release-notes-heading > div > span,.release-notes-heading p,.release-notes-section > header > small,
.release-notes-completed-item p,.release-notes-roadmap-item p,.release-detail-item p) { color: var(--ming-muted); }
.release-notes-panel .release-notes-section.completed { border-left-color: var(--ming-success); }
.release-notes-panel :is(.release-notes-section.excluded,.release-detail-notes) { border-left-color: var(--ming-vermilion); }
.release-notes-panel button { min-height: 44px; padding: 10px 14px; font: 16px/1.5 var(--font-body); color: var(--ming-ink); background: var(--ming-paper-raised); border-color: var(--ming-rule); }
.release-notes-panel button:hover { background: var(--ming-paper-shade); color: var(--ming-ink); }
.release-notes-panel button:focus-visible { outline: 3px solid var(--ming-vermilion); outline-offset: 2px; }
.release-notes-panel :is(.release-notes-detail-trigger span,.release-notes-detail-trigger i,.release-notes-heading h2) { color: var(--ming-ink); }
.release-notes-panel > footer { background: var(--ming-paper-shade); border-color: var(--ming-rule); }
.release-notes-panel > footer :is(span,strong) { color: var(--ming-muted); }
.release-notes-panel :is(.release-detail-section,.release-detail-notes) > header h3 { color: var(--ming-ink); }
.release-notes-panel .release-notes-section.excluded li { color: var(--ming-muted); }
@media (max-width:480px) {
  .release-notes-panel .release-notes-heading { grid-template-columns: minmax(0,1fr); }
  .release-notes-panel .release-notes-heading > button { justify-self: start; }
  .release-notes-panel .release-notes-heading h2 { font-size: 26px; }
}
.archive-drawer :is(.yearbook-decade,.yearbook-empty,.yearbook-decade-list > p,
.yearbook-focus-note,.yearbook-entry,.yearbook-year-button,.yearbook-load-more) {
  background: var(--ming-paper-raised); color: var(--ming-ink); border-color: var(--ming-rule);
}
.archive-drawer li.yearbook-entry { background: var(--ming-paper-raised); }
.archive-drawer :is(.yearbook-decade,.yearbook-heading,.yearbook-focus-note,.yearbook-entry,.yearbook-load-more)
:is(h3,h4,p,span,small,b,strong) { color: var(--ming-ink); }
.archive-drawer :is(.yearbook-decade,.yearbook-heading,.yearbook-focus-note,.yearbook-entry,.yearbook-load-more)
:is(p,small) { color: var(--ming-muted); }
.archive-drawer :is(.yearbook-page-source,.yearbook-end) { color: var(--ming-muted); }
.archive-drawer .yearbook-decade > summary:hover { background: var(--ming-paper-shade); }
.archive-drawer .yearbook-year-button[aria-pressed="true"] { background: var(--ming-vermilion); color: #fff1d7; }
.archive-drawer .yearbook-year-button[aria-pressed="true"] :is(b,span) { color: #fff1d7; }
.archive-drawer .yearbook-entry-aside b { color: var(--ming-success); }
.archive-drawer .yearbook-entry.tone-failed .yearbook-entry-aside b { color: var(--ming-vermilion); }

/* The entered house has its own nested ledgers; their controls share the paper. */
:is(.system-focus-panel .ming-folio-body, .system-dock .system-detail) :is(.home-interior-ledger,.home-interior-actions,
.home-rename-editor,.home-rename-editor > div,.home-interior-nav a,.home-action-card,
.cooking-recipe-card,.cooking-recipe-flow > section,.provision-preservation-process,
.provision-preservation-batch,.provision-preservation-materials > span,.provision-preservation-result,
.family-initiative-board,.family-initiative-actions button) {
  background: var(--ming-paper-raised); color: var(--ming-ink); border-color: var(--ming-rule);
}
:is(.system-focus-panel .ming-folio-body, .system-dock .system-detail) :is(.home-interior-ledger > header,.home-interior-actions > header,
.home-interior-nav,.home-rename-editor,.home-action-card,.cooking-recipe-flow,
.provision-preservation-process,.provision-preservation-batch,.family-initiative-copy,.family-initiative-actions)
:is(h3,h4,h5,b,p,small,span,strong,blockquote) { color: var(--ming-ink); text-shadow: none; }
:is(.system-focus-panel .ming-folio-body, .system-dock .system-detail) :is(.home-interior-ledger > header,.home-interior-nav,
.home-rename-editor,.home-action-card,.cooking-resource,.provision-preservation-process,
.provision-preservation-batch,.family-initiative-actions) :is(p,small) { color: var(--ming-muted); }
:is(.system-focus-panel .ming-folio-body, .system-dock .system-detail) .home-action-card.unavailable { opacity: 1; filter: none; border-style: dashed; }
:is(.system-focus-panel .ming-folio-body, .system-dock .system-detail) .home-interior-ledger > header > b { color: var(--ming-success); background: var(--ming-success-paper); }
:is(.system-focus-panel .ming-folio-body, .system-dock .system-detail) .home-rename-editor :is(input,button) { color: var(--ming-ink); background: var(--ming-paper-raised); }
:is(.system-focus-panel .ming-folio-body, .system-dock .system-detail) .home-rename-editor summary::after { color: var(--ming-copper); }
:is(.system-focus-panel .ming-folio-body, .system-dock .system-detail) .home-action-card footer button { color: var(--ming-ink); background: var(--ming-paper-raised); }
:is(.system-focus-panel .ming-folio-body, .system-dock .system-detail) :is(.cooking-resource.missing,.provision-preservation-materials .missing) :is(b,small) { color: var(--ming-vermilion); }
:is(.system-focus-panel .ming-folio-body, .system-dock .system-detail) .cooking-resource b { white-space: normal; overflow: visible; text-overflow: clip; }
:is(.system-focus-panel .ming-folio-body, .system-dock .system-detail) .family-initiative-actions .accept { background: var(--ming-vermilion); border-color: var(--ming-vermilion); }
:is(.system-focus-panel .ming-folio-body, .system-dock .system-detail) .family-initiative-actions .accept :is(b,small) { color: #fff1d7; }
:is(.system-focus-panel .ming-folio-body, .system-dock .system-detail) .household-interactions .actor-ledger-copy > p b { color: var(--ming-ink); }
:is(.system-focus-panel .ming-folio-body, .system-dock .system-detail) .family-bond-glance > p > b { color: var(--ming-ink); }
:is(.system-focus-panel .ming-folio-body, .system-dock .system-detail) .home-rename-editor summary > em { color: var(--ming-success); }
:is(.system-focus-panel .ming-folio-body, .system-dock .system-detail) .cooking-recipe-card :is(h4,p,span,small,b,strong,em,i) { color: var(--ming-ink); }
:is(.system-focus-panel .ming-folio-body, .system-dock .system-detail) .cooking-recipe-card :is(p,small,i) { color: var(--ming-muted); }
:is(.system-focus-panel .ming-folio-body, .system-dock .system-detail) .cooking-recipe-card .cooking-resource.missing :is(b,small) { color: var(--ming-vermilion); }
:is(.system-focus-panel .ming-folio-body, .system-dock .system-detail) .provision-preservation-process > figure figcaption { color: var(--ming-muted); background: var(--ming-paper-shade); }
:is(.system-focus-panel .ming-folio-body, .system-dock .system-detail) .provision-preservation-environment { color: var(--ming-muted) !important; }
:is(.system-focus-panel .ming-folio-body, .system-dock .system-detail) .home-scope-boundary > span { background: var(--ming-paper-shade); }

/* Person memory is the same readable record as the campaign archive. */
.actor-memory-ledger-modal {
  --folio-ink: var(--ming-ink); --folio-muted: var(--ming-muted); --folio-card: var(--ming-paper-raised);
  --paper-100: var(--ming-ink); --paper-200: var(--ming-ink); --paper-300: var(--ming-muted);
  color: var(--ming-ink); background: var(--ming-paper); border-color: var(--ming-rule); color-scheme: light;
}
.actor-memory-ledger-modal :is(div,section,article,aside,details,dl,nav,header,footer) {
  background: transparent; border-color: var(--ming-rule);
}
.actor-memory-ledger-modal :is(.actor-memory-ledger-heading,.actor-memory-ledger-summary,.actor-memory-ledger-boundary) { background: var(--ming-paper-shade); }
.actor-memory-ledger-modal :is(.actor-memory-ledger-card,.actor-memory-source-grid > span,.actor-memory-account-source,.actor-memory-replacement,.actor-dialogue-transcript) { background: var(--ming-paper-raised); }
.actor-memory-ledger-modal :is(h2,h3,h4,h5,p,small,span,b,strong,i,em,label,summary) { color: var(--ming-ink); text-shadow: none; }
.actor-memory-ledger-modal :is(div,section,article,nav,header,footer,button,p) :is(h2,h3,h4,b,strong,span,i) { color: var(--ming-ink); }
.actor-memory-ledger-modal :is(div,section,article,nav,header,footer,button) :is(p,small,em) { color: var(--ming-muted); }
.actor-memory-ledger-modal :is(button,input,textarea,summary) { min-height: 44px; color: var(--ming-ink); background: var(--ming-paper-raised); border-color: var(--ming-rule); font-family: var(--font-body); }
.actor-memory-ledger-modal button.active { background: var(--ming-vermilion); color: #fff1d7; border-color: var(--ming-vermilion); }
.actor-memory-ledger-modal button.active :is(small,b,span) { color: #fff1d7; }
.actor-memory-ledger-modal button:focus-visible { outline: 3px solid var(--ming-vermilion); outline-offset: 2px; }
.actor-memory-ledger-modal button:disabled { opacity: 1; color: var(--ming-disabled-ink); background: var(--ming-disabled-paper); }
.actor-memory-ledger-modal .actor-memory-ledger-card.confirmed { border-left-color: var(--ming-success); }
.actor-memory-ledger-modal .actor-memory-ledger-card.rejected { border-left-color: var(--ming-vermilion); }
.jinyi-ending-archive-panel .jinyi-ending-archive-entry.locked > figure { background: var(--ming-paper-shade); }
.jinyi-ending-archive-panel .jinyi-ending-archive-entry.locked > figure i { color: var(--ming-vermilion); border-color: var(--ming-vermilion); }
.jinyi-ending-archive-panel .jinyi-ending-archive-entry.locked > figure span { color: var(--ming-muted); }

/* Columns respond to the available card width, including the tablet layout. */
:is(.system-focus-panel .ming-folio-body, .system-dock .system-detail) :is(.actor-action-grid,.actor-hostile-grid) {
  grid-template-columns: repeat(auto-fit,minmax(min(100%,160px),1fr));
}
:is(.system-focus-panel .ming-folio-body, .system-dock .system-detail) .actor-action-grid .system-action-seed { flex-direction: column; align-items: stretch; }
:is(.system-focus-panel .ming-folio-body, .system-dock .system-detail) .actor-dialogue-panel > header { flex-wrap: wrap; }
:is(.system-focus-panel .ming-folio-body, .system-dock .system-detail) .actor-dialogue-panel > header .actor-memory-ledger-open { flex: 1 0 160px; margin-left: 0; }
:is(.system-focus-panel .ming-folio-body, .system-dock .system-detail) .actor-hostile-panel > header { flex-wrap: wrap; }
:is(.system-focus-panel .ming-folio-body, .system-dock .system-detail) .actor-hostile-panel > header > div { flex: 1 0 160px; }
:is(.system-focus-panel .ming-folio-body, .system-dock .system-detail) .pottery-practice-card header { grid-template-columns: minmax(0,1fr); }
:is(.system-focus-panel .ming-folio-body, .system-dock .system-detail) .pottery-practice-card header b { grid-column: 1; grid-row: auto; }
@media (max-width:980px) {
  :is(.system-focus-panel .ming-folio-body, .system-dock .system-detail) .actor-list { grid-template-columns: minmax(0,1fr); }
}
@media (max-width:480px) {
  :is(.system-focus-panel .ming-folio-body, .system-dock .system-detail) .market-directory-grid.is-single .market-directory-card dl { grid-template-columns: 1fr; }
  :is(.system-focus-panel .ming-folio-body, .system-dock .system-detail) .actor-dialogue-panel > header .actor-memory-ledger-open { flex-basis: 100%; }
}
/* One paper theme from the account gate to the campaign and every folio.
   Illustrations remain artwork; the surrounding interface never changes theme. */
:root {
  color-scheme: light;
  --paper-100: var(--ming-ink);
  --paper-200: #40372b;
  --paper-300: var(--ming-muted);
  --paper-400: var(--ming-muted);
  --paper-500: var(--ming-muted);
  --gold-200: var(--ming-copper);
  --gold-300: var(--ming-copper);
  --gold-400: var(--ming-copper);
  --jade-200: var(--ming-success);
  --jade-300: var(--ming-success);
  --jade-400: var(--ming-success);
  --line: #b7a58780;
  --line-strong: var(--ming-rule);
  --folio-ink: var(--ming-ink);
  --folio-muted: var(--ming-muted);
  --folio-card: var(--ming-paper-raised);
  --folio-hover: #fff6e1;
  --folio-rule: var(--ming-rule);
  --folio-selected-surface: var(--ming-paper-shade);
  --folio-danger: var(--ming-vermilion);
  --folio-success: var(--ming-success);
  --folio-danger-surface: var(--ming-danger-paper);
  --folio-success-surface: var(--ming-success-paper);
}
html, body, .app-shell, .campaign-shell.commoner-campaign,
.main-menu-shell {
  color: var(--ming-ink); background: var(--ming-paper-fill);
}
.campaign-shell .campaign-header, .campaign-shell .world-strip,
.campaign-shell .character-state-card, .campaign-shell .system-dock,
.campaign-shell .turn-recap, .system-focus-panel, .system-focus-heading.system-focus-hero,
.actor-dialogue-heading, .famous-roster {
  color: var(--ming-ink); background: var(--ming-paper-raised);
  border-color: var(--ming-rule); box-shadow: none;
}
.campaign-shell .campaign-header { border-bottom: 1px solid var(--ming-rule); }
.campaign-shell :is(.campaign-header,.world-strip,.character-state-card,.system-dock,.turn-recap,
.ai-event-card,.system-focus-heading,.actor-dialogue-heading,.main-menu-shell,
.account-gate-art,.famous-roster) :is(h1,h2,h3,h4,p,span,small,b,strong,em,i,dt,dd,label,summary,time,mark) {
  color: inherit; text-shadow: none;
}
.campaign-shell :is(.campaign-header,.world-strip,.character-state-card,.system-dock,.turn-recap,
.ai-event-card,.system-focus-heading,.actor-dialogue-heading,.main-menu-shell,
.account-gate-art,.famous-roster) :is(small,em,dt) { color: var(--ming-muted); }
:is(.campaign-header,.world-strip,.character-state-card,.system-dock,.turn-recap,
.ai-event-card,.system-focus-heading,.actor-dialogue-heading,.main-menu-shell,
.famous-roster) :is(button,input,textarea,select) {
  color: var(--ming-ink); background: var(--ming-paper-raised);
  border-color: var(--ming-rule); box-shadow: none;
}
:is(.campaign-header,.world-strip,.character-state-card,.system-dock,.turn-recap,
.ai-event-card,.system-focus-heading,.actor-dialogue-heading,.main-menu-shell,
.famous-roster) button:hover:not(:disabled) { background: var(--folio-hover); border-color: var(--ming-copper); }
:is(.campaign-header,.world-strip,.character-state-card,.system-dock,.turn-recap,
.ai-event-card,.system-focus-heading,.actor-dialogue-heading,.main-menu-shell,
.famous-roster) button:disabled {
  opacity: 1; color: var(--ming-disabled-ink); background: var(--ming-disabled-paper);
}

/* Status labels have their own row, so two Chinese characters never form a column. */
.campaign-shell .need-cell { grid-template-columns: minmax(0,1fr); gap: 4px; background: var(--ming-paper); border-color: var(--ming-rule); }
.campaign-shell .need-cell > span { white-space: nowrap; font-size: 14px; }
.campaign-shell .need-cell > strong { font-size: 18px; line-height: 1.3; }
.campaign-shell .need-cell > .need-meter { grid-column: 1; }
.campaign-shell :is(.money-ledger > div,.character-body-condition,.character-overflow-hint,
.system-tabs,.system-overview-heading,.system-detail-preview,.world-condition-detail,
.event-origin > b,.ai-status,.event-state-read > span,.event-state-read > b,
.location-scene-seal,.location-scene-notice,.location-route-shortcuts > span,
.location-next-actions,.location-special-mechanism) {
  color: var(--ming-ink); background: var(--ming-paper); border-color: var(--ming-rule);
}
.campaign-shell :is(.system-tabs,.system-subtabs) button.active {
  color: var(--ming-vermilion); background: var(--ming-paper-shade); border-color: var(--ming-vermilion);
}
.campaign-shell .money-ledger > div:last-child strong,
.campaign-shell .need-cell.danger strong, .campaign-shell .turn-recap .negative { color: var(--ming-vermilion); }
.campaign-shell .need-cell.warning strong { color: var(--ming-copper); }
.campaign-shell .turn-recap .positive { color: var(--ming-success); }
.campaign-shell .turn-recap .neutral { color: var(--ming-muted); }
.campaign-shell .turn-recap-ledger span { background: var(--ming-paper); border-color: var(--ming-rule); }
.campaign-shell :is(.system-groups,.system-branches,.system-detail-disclosure,
.character-attribute-disclosure,.character-attributes > div,.trait-chip.burden,
.campaign-actions .currency-card,.turn-recap-body > button) {
  color: var(--ming-ink); background: var(--ming-paper); border-color: var(--ming-rule); box-shadow: none;
}
.campaign-shell :is(.system-groups,.system-branches) button.active { color: var(--ming-vermilion); background: var(--ming-paper-shade); }
.campaign-shell :is(.system-groups,.system-branches) button.active :is(span,small) { color: inherit; }
.campaign-shell .campaign-header .campaign-brand h1 small { color: var(--ming-muted); }
.campaign-shell .campaign-header .save-button.campaign small { color: var(--ming-ink); background: var(--ming-paper-raised); text-shadow: none; }
.campaign-shell .campaign-header .currency-card :is(small,em,strong) { color: var(--ming-ink); }
.campaign-shell .character-state-card :is(.need-cell,.money-ledger,.character-attribute-disclosure,.character-overflow-hint) :is(b,small,span,strong,em) { color: var(--ming-ink); }
.campaign-shell .character-state-card .money-ledger > div:last-child strong { color: var(--ming-vermilion); }
.campaign-shell .character-state-card .need-cell.danger strong { color: var(--ming-vermilion); }
.campaign-shell .character-state-card .need-cell.warning strong { color: var(--ming-copper); }
.campaign-shell .ai-event-card {
  color: var(--ming-ink); border-color: var(--ming-rule);
  background: var(--event-image, none) var(--event-focal, center) / cover no-repeat;
  box-shadow: none;
}
.campaign-shell .ai-event-card::before { background: none; }
.campaign-shell .ai-event-card .event-heading > div { padding: 12px 16px; color: var(--ming-ink); background: var(--ming-paper-raised); border-left: 3px solid var(--ming-vermilion); }
.campaign-shell .ai-event-card :is(.history-source,.scene-signature,.event-fortune,.ai-stream-label) { color: var(--ming-ink); background: var(--ming-paper-raised); border-color: var(--ming-rule); }
.campaign-shell .ai-event-card.has-showcase-image { background: var(--ming-paper-raised); }
.campaign-shell .ai-event-card .event-narrative { background: var(--ming-paper); }
.campaign-shell .ai-event-card .choice-list > button { color: var(--ming-ink); background: var(--ming-paper-raised); border-color: var(--ming-rule); }
.campaign-shell .ai-event-card .choice-list > button:hover:not(:disabled) { background: var(--ming-paper-shade); }
.campaign-shell .ai-event-card .choice-list :is(strong,small,span,em),
.campaign-shell .location-special-mechanism :is(small,b,em,i) { color: var(--ming-ink); }

/* A paper cover, with a small illustration on its right edge. */
.system-focus-heading .system-focus-art { inset: 0 0 0 auto; width: 30%; opacity: 1; filter: none; }
.system-focus-heading .system-focus-shade { background: linear-gradient(90deg, var(--ming-paper-raised) 69%, transparent 76%); }
.system-focus-heading :is(.system-focus-copy,.system-focus-close,.system-focus-seal,.system-focus-authority) {
  color: var(--ming-ink); text-shadow: none;
}
.system-focus-heading .system-focus-authority { background: var(--ming-paper); border-color: var(--ming-rule); }
.system-focus-heading .system-focus-close { background: var(--ming-paper-raised); border-color: var(--ming-rule); }
.system-focus-heading .system-focus-seal { color: var(--ming-vermilion); border-color: var(--ming-vermilion); background: var(--ming-paper-raised); opacity: 1; }

/* Restore the original landscape and its dark vignette behind paper navigation. */
.main-menu-shell, .main-menu-backgrounds { background: #101512; }
.main-menu-background { filter: saturate(.7); }
.main-menu-shell .main-menu-atmosphere {
  background: linear-gradient(90deg, rgba(21,19,15,.87), rgba(21,19,15,.24) 64%, rgba(21,19,15,.08));
}
.main-menu-shell :is(.main-menu-header,.main-menu-footer) { color: var(--ming-ink); text-shadow: none; }
.main-menu-shell .main-menu-action { background: var(--ming-paper-raised); border: 1px solid var(--ming-rule); }
.main-menu-shell .main-menu-action.primary { border-left: 4px solid var(--ming-vermilion); background: var(--ming-paper-shade); }
.main-menu-shell :is(.main-menu-action-mark,.main-menu-chapter-option,.main-menu-account,.main-menu-version) {
  color: var(--ming-ink); background: var(--ming-paper-raised); border-color: var(--ming-rule); box-shadow: none;
}
.main-menu-shell .main-menu-chapter-option.active { color: var(--ming-vermilion); background: var(--ming-paper-shade); }
/* The account scene keeps its original art and light lettering. Paper tokens
   belong to the form, not to a wash over the illustration. */
.account-gate-shell .account-gate-art {
  --folio-ink: #f3ead5;
  --folio-muted: #d9bd78;
  background: none;
}
.account-gate-shell .account-art-copy { color: #f3ead5; text-shadow: 0 3px 18px #000, 0 1px 4px #000; }
.account-gate-shell .account-entry-origin { color: #ecdfc3; background: transparent; }

/* Text and navigation retained by older chapter-specific selectors. */
:is(.main-menu-shell,.app-shell) :is(.main-menu-intro,.main-menu-brand,
.main-menu-token,.main-menu-action,.main-menu-chapter-option,.main-menu-footer,
.main-menu-mobile-manifesto,.account-art-copy,.account-entry-origin)
:is(h1,h2,h3,p,span,small,b,strong,em,i) { color: var(--ming-ink); text-shadow: none; }
.main-menu-shell[data-menu-chapter] :is(.main-menu-atmosphere) {
  background: linear-gradient(90deg, rgba(21,19,15,.87), rgba(21,19,15,.24) 64%, rgba(21,19,15,.08));
}
.main-menu-shell .main-menu-background { filter: none; }
.main-menu-shell .main-menu-footer { width: fit-content; padding: 8px 12px; background: var(--ming-paper); }
.main-menu-shell[data-menu-chapter] :is(.main-menu-chapter-switcher,.main-menu-mobile-manifesto) {
  color: var(--ming-ink); background: var(--ming-paper); border-color: var(--ming-rule); box-shadow: none;
}
.main-menu-shell[data-menu-chapter] :is(.main-menu-chapter-option.active,.main-menu-action.primary) {
  color: var(--ming-ink); background: var(--ming-paper-shade); border-color: var(--ming-vermilion); box-shadow: none;
}
.main-menu-shell[data-menu-chapter] .main-menu-chapter-option > i { color: var(--ming-copper); background: var(--ming-paper-raised); border-color: var(--ming-rule); }
.main-menu-shell .main-menu-chapter-option.locked { opacity: 1; }
.campaign-shell .character-state-card .money-ledger > div > span > small { color: var(--ming-muted); }
.campaign-shell .system-dock .system-detail { color: var(--ming-ink); background: var(--ming-paper-fill); }
.campaign-shell .system-dock .system-detail :is(.actor-list,.actor-action-grid,.actor-hostile-grid) { grid-template-columns: minmax(0,1fr); }
.campaign-shell .system-dock .system-detail .actor-ledger-card { grid-template-columns: 64px minmax(0,1fr); }
.campaign-shell .system-dock .system-detail .actor-hostile-grid button { grid-template-columns: 28px minmax(0,1fr); }
.campaign-shell .system-dock .system-detail .actor-hostile-grid button > span { min-width: 0; }
.campaign-shell .system-dock .system-detail .crafting-cost-chip { grid-template-columns: 32px minmax(0,1fr); }

/* The origin chooser uses the same paper rail and facts as the campaign. */
.app-shell :is(.prototype-header,.prototype-footer,.origin-rail,.rail-heading,.rail-note,
.method-tabs,.method-tab,.route-button,.route-icon,.roster-summary > span,.origin-card,
.origin-card-badge,.currency-card,.settings-button) {
  color: var(--ming-ink); background: var(--ming-paper-raised); border-color: var(--ming-rule); box-shadow: none;
}
.app-shell :is(.route-button.active,.method-tab.active,.origin-card.selected) { background: var(--ming-paper-shade); border-color: var(--ming-vermilion); }
.app-shell :is(.route-button,.method-tab,.origin-card) { opacity: 1; }
.app-shell :is(.prototype-header,.prototype-footer,.origin-rail,.rail-heading,.rail-note,
.method-tabs,.route-button,.roster-summary,.famous-roster,.dossier,.currency-card,.settings-button)
:is(h2,h3,p,span,small,b,strong,em,i) { color: var(--ming-ink); text-shadow: none; }
.app-shell .origin-card-copy .origin-card-theme { color: var(--ming-muted); background: var(--ming-paper-raised); }
/* A character card is an illustration with a caption, not a paper rectangle
   stretched over the portrait. Keep status labels separate from the name. */
.app-shell .origin-card .origin-card-copy {
  min-height: 174px; padding: 40px 32% 14px 14px; background: transparent;
}
.app-shell .origin-card,
.app-shell .origin-card:is(:hover,:focus-visible,.selected,.locked) { background: #101512; }
.app-shell .origin-card .origin-card-copy :is(strong,em) { color: #f3ead5; text-shadow: 0 1px 4px #000; }
.app-shell .origin-card .origin-card-copy small { color: #e4ca91; text-shadow: 0 1px 4px #000; }
.app-shell .origin-card .origin-card-copy :is(em,.origin-card-theme) { overflow: visible; text-overflow: clip; white-space: normal; }
.app-shell .origin-card .origin-card-copy .origin-card-theme {
  position: static; max-width: none; margin-top: 8px; padding: 0;
  color: #e4ca91; background: transparent; border: 0; text-shadow: 0 1px 4px #000;
  line-height: 1.5; letter-spacing: .04em;
}
.app-shell .origin-card .origin-card-badge { left: 12px; right: auto; }
.app-shell .famous-roster-grid { grid-template-columns: repeat(auto-fit,minmax(min(100%,230px),1fr)); }
.app-shell .currency-card { background: var(--ming-paper-raised); }
.account-gate-shell.account-gate-player .account-entry-origin :is(b,small,.account-v2-origin-label) { color: #ecdfc3; }
.main-menu-shell[data-menu-chapter] :is(.main-menu-kicker,.main-menu-brand strong,.main-menu-brand small,.main-menu-brand span,.main-menu-intro > p,#main-menu-title,#main-menu-title > span) {
  color: #f3ead5; text-shadow: 0 2px 8px #000;
}
.main-menu-shell[data-menu-chapter] :is(.main-menu-kicker,#main-menu-title > span) { color: #e4ca91; }
.app-shell .origin-hero .hero-kicker { color: #e4ca91; }
.app-shell .origin-hero .hero-identity { color: #e0d5bf; }
.app-shell[data-origin-chapter] :is(.topbar,.route-rail,.method-panel,.panel-heading,.dossier,.famous-roster-summary,
.famous-roster-summary > span,.roster-counts > span,.route-button,.route-button.active) {
  color: var(--ming-ink); background: var(--ming-paper-raised); border-color: var(--ming-rule); box-shadow: none;
}
.app-shell[data-origin-chapter] :is(.rail-heading,.rail-note,.route-button,.dossier,.panel-heading,.opening-state-ledger)
:is(h2,h3,p,span,small,b,strong,em,i) { color: var(--ming-ink); text-shadow: none; }
.app-shell .origin-card.locked .origin-card-badge { color: var(--ming-muted); background: var(--ming-paper-shade); border-color: var(--ming-rule); }
.app-shell[data-origin-chapter] .dossier .start-button :is(span,strong) { color: #fff1d7; }
.app-shell .opening-state-ledger > header strong.silver,
.app-shell .opening-state-ledger > header small { color: var(--ming-muted); }
.app-shell .famous-roster-tallies > span { background: var(--ming-paper); }
.app-shell .topbar :is(h1,h2,p,span,small,b,strong,em) { color: var(--ming-ink); text-shadow: none; }
.app-shell .topbar .brand-copy h1 small { color: var(--ming-muted); }
.app-shell .topbar .menu-home-button { color: var(--ming-ink); background: var(--ming-paper-raised); border-color: var(--ming-rule); }
.app-shell .origin-card.locked.preview-only { opacity: 1; filter: none; }
.campaign-shell .campaign-brand .campaign-mode-mark { color: var(--ming-ink); background: var(--ming-paper-raised); box-shadow: none; }
.start-modal { color: var(--ming-ink); background: var(--ming-paper-fill); border-color: var(--ming-rule); }
.start-modal :is(.modal-record > div,.modal-boundary,.opening-state-ledger > header,.opening-need) { color: var(--ming-ink); background: var(--ming-paper-raised); border-color: var(--ming-rule); }
.start-modal :is(h2,h3,h4,p,span,small,b,strong,em,i,dt,dd) { color: var(--ming-ink); text-shadow: none; }
.start-modal :is(button,input,select) { color: var(--ming-ink); background: var(--ming-paper-raised); border-color: var(--ming-rule); min-height: 44px; }
.start-modal .modal-actions button.primary { color: #fff1d7; background: var(--ming-vermilion); border-color: var(--ming-vermilion); }
.start-modal .opening-state-ledger > header strong.silver { color: var(--ming-muted); }
.start-modal .opening-state-ledger > header strong.debt,
.start-modal .opening-need.risk strong { color: var(--ming-vermilion); }
.app-shell .save-button.origin small { color: var(--ming-ink); background: var(--ming-paper-raised); text-shadow: none; }
.campaign-shell :is(.home-entry-disclosure,.home-enter-button) { color: var(--ming-ink); background: var(--ming-paper-raised); border-color: var(--ming-rule); }
.campaign-shell .character-attribute-disclosure .attribute-groups > section > div > div { background: var(--ming-paper); border-color: var(--ming-rule); }
.campaign-shell .world-strip .world-condition-chip > i { color: var(--ming-vermilion); background: var(--ming-paper); }
.campaign-shell .world-strip .world-condition-chip small { color: var(--ming-muted); }
.toast { color: var(--ming-ink); background: var(--ming-paper-raised); border-color: var(--ming-rule); box-shadow: 0 8px 24px #302b2440; }
.toast.success { border-left: 3px solid var(--ming-success); }
.toast.danger { border-left: 3px solid var(--ming-vermilion); }
.campaign-shell .campaign-brand :is(.jinyi-mode-lockup,.jinyi-mode-lockup span) { color: var(--ming-ink); background: var(--ming-paper); }
.campaign-shell .location-special-mechanism-copy > i { background: var(--ming-paper-raised); }
.campaign-shell .money-ledger > div { display: grid; grid-template-columns: minmax(0,1fr) auto; align-items: start; gap: 6px; padding: 8px; }
.campaign-shell .money-ledger > div > span { min-width: 0; }
.campaign-shell .money-ledger > div > strong { white-space: nowrap; }
.campaign-shell .system-dock .system-detail :is(.pottery-material-row,.pottery-practice-card,.crafting-recipe-card) { grid-template-columns: minmax(0,1fr); }
.campaign-shell .system-dock .system-detail .crafting-recipe-card > * { grid-column: 1; }
.campaign-shell .system-dock .system-detail .crafting-recipe-card > div { grid-template-columns: minmax(0,1fr); }
.campaign-shell .system-dock .system-detail .crafting-recipe-card > div > * { grid-column: 1; }
.campaign-shell .system-dock .system-detail .crafting-recipe-card footer { grid-row: 5; }
.campaign-shell .system-dock .system-detail .crafting-recipe-card .recipe-details { grid-row: 6; }
.campaign-shell .system-dock .system-detail .crafting-recipe-card .recipe-costs { grid-template-columns: repeat(3,minmax(0,1fr)); gap: 10px; }
.campaign-shell .system-dock .system-detail .pottery-material-row > span { grid-template-columns: auto minmax(0,1fr); }
.campaign-shell .system-dock .system-detail .pottery-practice-card > figure { max-width: 100%; }

/* Illustrated folios and picture captions keep their art, with paper for facts. */
.system-focus-panel .ming-folio-body :is(.market-shop-hero,.market-summary-card,.home-interior-summary,
.residence-ledger-card,figure figcaption) {
  color: var(--ming-ink); background: var(--ming-paper-raised); border-color: var(--ming-rule); box-shadow: none;
}
.system-focus-panel .ming-folio-body :is(.market-shop-hero,.home-interior-summary)::after {
  background: linear-gradient(90deg, #f8efdcfa 0%, #f8efdcee 60%, #f8efdccf 100%);
}
.system-focus-panel .ming-folio-body :is(.market-shop-hero,.market-summary-card,.home-interior-summary,
.residence-ledger-card,figure figcaption) :is(h2,h3,h4,p,span,b,strong,small,em,dt,dd) {
  color: var(--ming-ink); text-shadow: none;
}
.system-focus-panel .ming-folio-body :is(.market-shop-hero,.home-interior-summary) :is(dl > div,header > b) { background: var(--ming-paper); border-color: var(--ming-rule); }
.system-focus-panel .ming-folio-body .residence-ledger-card { background: linear-gradient(90deg,#f8efdc 55%,#f8efdccf),var(--residence-art,none) center / cover; }
.actor-dialogue-modal .actor-dialogue-scene { background: var(--actor-dialogue-scene-art,none) var(--actor-dialogue-scene-position,center) / cover; }
.actor-dialogue-modal .actor-dialogue-scene-shade { background: none; }
.actor-dialogue-modal .actor-dialogue-heading :is(h2,p,span,small,b,strong) { color: var(--ming-ink); text-shadow: none; }
:is(.ming-folio-body,.system-detail) :is(.market-summary-card dl > div,.actor-body-ledger > header,
.home-entry-disclosure,.home-enter-button,.home-interior-summary > header > b,.home-interior-summary .home-interior-metrics > span) {
  color: var(--ming-ink); background: var(--ming-paper); border-color: var(--ming-rule);
}
:is(.system-focus-panel .ming-folio-body,.system-dock .system-detail) :is(.market-summary-card,.actor-body-ledger > header,.home-entry-disclosure,.home-enter-button) :is(b,small,span,dt,dd) { color: var(--ming-ink); }
.campaign-shell :is(.ming-folio-body,.system-detail) .location-breadcrumb :is(span,i) { color: var(--ming-muted); }
.campaign-shell .system-dock .system-detail .market-summary-card::after { background: linear-gradient(180deg,transparent 0 100px,var(--ming-paper-raised) 140px); }
.campaign-shell .system-dock .system-detail .market-summary-card { color: var(--ming-ink); background: var(--ming-paper-raised); }
.campaign-shell :is(.ming-folio-body,.system-detail) .home-interior-status > span { background: var(--ming-paper-raised); }

/* Dim the world gently without turning the entire screen black when a folio opens. */
:is(.modal-backdrop,.system-focus-backdrop,.actor-dialogue-backdrop,.archive-backdrop,
.save-backdrop,.settings-backdrop,.game-menu-backdrop,.release-notes-backdrop,
.actor-memory-ledger-backdrop,.field-battle-planner-backdrop,.jinyi-ending-archive-backdrop,
.welcome-token-backdrop,.token-shortage-backdrop,.historical-notice-backdrop,
.blocked-action-backdrop,.jinyi-timeline-backdrop,.jinyi-daily-review-backdrop) { background: #63513b66; }

/* The action report is a paper sheet over the existing passage illustration. */
.turn-transition { --outcome-accent: var(--ming-copper); --outcome-soft: var(--ming-paper-shade); }
.turn-transition:is(.outcome-positive,.outcome-exceptional-positive) { --outcome-accent: var(--ming-success); }
.turn-transition:is(.outcome-negative,.outcome-catastrophic) { --outcome-accent: var(--ming-vermilion); }
.turn-transition .turn-transition-shade,
.turn-transition.revealed .turn-transition-shade { background: #63513b33; }
.turn-transition .turn-transition-copy { color: var(--ming-ink); background: var(--ming-paper-fill); border-color: var(--ming-rule); }
.turn-transition .turn-transition-copy :is(h2,h3,p,span,b,strong,small,em,i) { color: var(--ming-ink); text-shadow: none; }

/* The thinking guide and the weather observation follow the same paper contract:
   dark-era surfaces keep their layout but inherit shell ink, never dark-on-dark. */
.turn-transition .turn-thinking-guide {
  color: var(--ming-ink);
  border-color: var(--ming-rule);
  background: var(--ming-paper-raised);
  box-shadow: inset 3px 0 var(--ming-copper), 0 18px 45px #0003;
}
.turn-transition .turn-thinking-guide > p { color: var(--ming-muted); }
.turn-transition .turn-thinking-guide li { border-color: var(--ming-rule); background: var(--ming-paper-fill); }
.turn-transition .turn-thinking-guide li > i { color: var(--ming-copper); border-color: var(--ming-copper); }
.turn-transition .turn-thinking-guide li b { color: var(--ming-ink); }
.turn-transition .turn-thinking-guide li small { color: var(--ming-muted); }
.weather-location-cell .weather-observation-tooltip {
  color: var(--ming-ink);
  border-color: var(--ming-rule);
  background: var(--ming-paper-fill);
  box-shadow: 0 20px 44px #0005;
}
.campaign-shell .world-strip .weather-location-cell .weather-observation-tooltip { color: var(--ming-ink); }
.weather-location-cell .weather-observation-tooltip :is(p,dd,strong,small,span) { color: var(--ming-ink); text-shadow: none; }
.weather-location-cell .weather-observation-tooltip dt { color: var(--ming-copper); }
.weather-location-cell .weather-observation-tooltip .weather-observation-heading > i { color: var(--ming-copper); border-color: var(--ming-rule); }
.weather-location-cell .weather-observation-tooltip .weather-observation-heading small { color: var(--ming-muted); }
.turn-transition .turn-transition-copy span { letter-spacing: normal; }
.turn-transition .turn-transition-copy > span { letter-spacing: .2em; }
.turn-transition .turn-transition-copy :is(small,em) { color: var(--ming-muted); }
.turn-transition :is(.turn-time-ledger,.turn-time-duration,.turn-time-range,.turn-action-summary,
.turn-transition-copy blockquote,.turn-change-ledger,.turn-change-group,.turn-change-entry,
.turn-outcome-mark,.turn-outcome-basis i,.turn-thinking-guide li,.turn-thinking-guide li > i,
.turn-change-disclosure,.action-result-narrative,.farm-tool-wear-reminder > figure) {
  background: var(--ming-paper-raised); border-color: var(--ming-rule); box-shadow: none;
}
.turn-transition .turn-time-duration { border-left-color: var(--outcome-accent); }
.turn-transition .turn-time-duration { display: flex; flex-wrap: wrap; align-content: center; gap: 4px 8px; }
.turn-transition .turn-time-duration > small { flex-basis: 100%; }
.turn-transition .turn-time-duration > b { white-space: nowrap; }
.turn-transition .turn-transition-copy .turn-outcome-mark b { color: var(--outcome-accent); }
.turn-transition .turn-change-entry { grid-template-columns: 30px minmax(0,1fr); }
.turn-transition .turn-change-entry > figure { width: 30px; height: 30px; }
.turn-transition .turn-change-entry > figure img { width: 27px; height: 27px; }
.turn-transition .turn-change-entry :is(figure,figure i),
.turn-transition .turn-change-entry > i { color: var(--ming-copper); background: var(--ming-paper-shade); border-color: var(--ming-rule); }
.turn-transition .turn-change-entry.positive > i { color: var(--ming-success); background: var(--ming-success-paper); }
.turn-transition .turn-change-entry.negative > i { color: var(--ming-vermilion); background: var(--ming-danger-paper); }
.turn-transition .turn-transition-copy .turn-change-entry > span b { color: var(--ming-ink); white-space: normal; overflow: visible; text-overflow: clip; overflow-wrap: anywhere; }
.turn-transition .turn-transition-copy .turn-change-entry > span small { color: var(--ming-muted); }
.turn-transition.revealed:not(.has-personal-combat)::after { background: var(--ming-paper-raised); border-color: var(--ming-rule); box-shadow: 0 -4px 16px #302b2420; }
.turn-transition.revealed .turn-result-continue,
.turn-transition.revealed:not(.has-personal-combat) .turn-result-continue { color: #fff1d7; background: var(--ming-vermilion); border-color: var(--ming-vermilion); box-shadow: none; }

@media (min-width:1100px) {
  /* Reserve the full card width for the missing-material note and action. */
  .system-focus-panel .ming-folio-body .crafting-recipe-card footer { grid-column: 1 / -1; }
  .system-focus-panel .ming-folio-body .crafting-recipe-card .recipe-details { grid-column: 1 / -1; grid-row: 6; }
}

@media (max-width:760px) {
  .campaign-shell .campaign-header { display: flex; }
  .campaign-shell .campaign-header .campaign-actions { flex-wrap: wrap; }
  .system-focus-heading .system-focus-art { width: 36%; opacity: 1; }
  .system-focus-heading .system-focus-copy { background: var(--ming-paper-raised); padding: 6px; }
  .system-focus-heading .system-focus-copy > :is(span,h2,p) { color: var(--ming-ink); background: var(--ming-paper-raised); padding: 4px 6px; }
  .main-menu-shell[data-menu-chapter] .main-menu-atmosphere { background: linear-gradient(90deg,rgba(10,14,11,.8),rgba(10,14,11,.38)); }
  .main-menu-shell .main-menu-intro { background: transparent; padding: 14px; }
  .campaign-shell .ai-event-card .event-heading { min-height: 200px; align-content: space-between; }
  .campaign-shell .ai-event-card .event-heading > div { padding: 10px; }
  .campaign-shell .need-cell { padding: 8px 5px; }
  .campaign-shell .money-ledger { grid-template-columns: minmax(0,1fr); }
}

/* 自拟行动输入框：旧暗色主题的近黑底在暖纸壳下与深墨字叠加，聚焦后整框黑屏不可读。
   与天气浮层、思考引导同批补纸面覆盖：基础态、聚焦态都用纸面底 + 墨字，聚焦以铜色描边和左标识别。 */
.campaign-shell .free-action-composer textarea {
  color: var(--ming-ink);
  border-color: var(--ming-rule);
  background: var(--ming-paper-raised);
  box-shadow: none;
  caret-color: var(--ming-ink);
}
.campaign-shell .free-action-composer textarea::placeholder { color: var(--ming-muted); opacity: 1; }
.campaign-shell .free-action-composer textarea:focus-visible {
  border-color: var(--ming-copper);
  background: var(--ming-paper-raised);
  box-shadow: inset 3px 0 var(--ming-copper), 0 0 0 2px #b9802e26;
  outline: none;
}

/* 人物身体近况：全部上下文纸面化（人物名录整页此前只在弹窗内覆盖）。 */
.actor-body-ledger {
  color: var(--ming-ink);
  border-color: var(--ming-rule);
  background: var(--ming-paper-raised);
  box-shadow: none;
}
.actor-body-ledger > header :is(span) { color: var(--ming-copper); }
.actor-body-ledger > header :is(b) { color: var(--ming-ink); }
.actor-body-ledger .actor-body-condition {
  border-color: var(--ming-rule);
  background: var(--ming-paper-fill);
}
.actor-body-ledger .actor-body-condition :is(b, small, span) { color: var(--ming-ink); }
.actor-body-ledger .actor-body-condition > i {
  color: var(--ming-copper);
  border-color: var(--ming-rule);
  background: var(--ming-paper-shade);
}

/* 右下系统坞呼吸感：标签行与子页签加高留白，摘要行不再局促。 */
.system-groups button { min-height: 56px; padding: 8px 5px; }
.system-groups span { font-size: 26px; }
.system-groups small { letter-spacing: 0.08em; }
.system-branches button { min-height: 44px; }
/* Quiet navigation and a continuous story page; artwork has its own space. */
.campaign-shell .campaign-header { gap: 24px; padding-block: 12px; border-bottom-color: #b7a58780; }
.campaign-shell .campaign-header::after { display: none; }
.campaign-shell .campaign-header .campaign-actions { gap: 4px; }
.campaign-shell .campaign-header :is(.archive-button,.game-menu-button,.save-button) {
  display: flex; flex: 0 0 auto; flex-direction: row; align-items: center; justify-content: center;
  width: auto; min-width: 60px; height: 44px; min-height: 44px; padding: 8px 12px;
  color: var(--ming-ink); background: transparent; border: 0; border-radius: 0; box-shadow: none;
}
.campaign-shell .campaign-header :is(.archive-button > span,.game-menu-button > span,.save-button > img) { display: none; }
.campaign-shell .campaign-header :is(.archive-button,.game-menu-button,.save-button) > small {
  position: static; display: block; padding: 0; margin: 0; color: var(--ming-ink);
  background: transparent; font: 500 16px/1.5 var(--font-body); letter-spacing: .08em; text-shadow: none;
}
.campaign-shell .campaign-header .save-button > i { top: 7px; right: 6px; width: 4px; height: 4px; border: 0; box-shadow: none; background: var(--ming-vermilion); }
.campaign-shell .campaign-header :is(.archive-button,.game-menu-button,.save-button):hover,
.campaign-shell .campaign-header :is(.archive-button,.game-menu-button,.save-button):focus-visible {
  color: var(--ming-vermilion); background: #e0d2b84d; box-shadow: inset 0 -2px var(--ming-vermilion); transform: none;
}
.campaign-shell .campaign-header .campaign-wallets { display: flex; gap: 14px; align-items: center; margin-left: 14px; padding-left: 20px; border-left: 1px solid #b7a58780; }
.campaign-shell .campaign-header .currency-card {
  display: flex; flex: 0 1 auto; align-items: center; gap: 8px; width: auto; min-width: 0;
  height: 44px; min-height: 44px; padding: 4px; border: 0; border-radius: 0; background: transparent; box-shadow: none;
}
.campaign-shell .campaign-header .currency-card:hover { background: #e0d2b84d; }
.campaign-shell .campaign-header .currency-icon,
.campaign-shell .campaign-header .currency-icon img { display: block; width: 24px; height: 24px; min-width: 24px; filter: none; transform: none; }
.campaign-shell .campaign-header .currency-copy { display: block; overflow: visible; }
.campaign-shell .campaign-header .currency-copy small { display: block; overflow: visible; font: 500 14px/1.5 var(--font-body); white-space: nowrap; text-shadow: none; }
.campaign-shell .campaign-header .currency-copy em { display: none; }
.campaign-shell .campaign-header .currency-card > strong { font: 600 20px/1.2 var(--font-body); font-variant-numeric: tabular-nums; letter-spacing: 0; text-shadow: none; white-space: nowrap; }

/* Title, prose and the small ledger sit on one sheet beside a clean illustration. */
.campaign-shell .ai-event-card {
  display: grid; grid-template-columns: minmax(0,1fr) minmax(220px,36%); align-content: start;
  column-gap: 30px; row-gap: 18px; min-height: 0; padding: 28px;
  color: var(--ming-ink); background: var(--ming-paper-raised); border: 0; border-block: 1px solid #b7a58780; box-shadow: none;
}
.campaign-shell .ai-event-card > * { grid-column: 1 / -1; min-width: 0; }
.campaign-shell .ai-event-card::before {
  content: ''; position: static; inset: auto; z-index: auto; grid-column: 2; grid-row: 1 / span 3;
  align-self: stretch; width: 100%; min-height: 260px; margin: 0; border: 0;
  background: var(--event-image,none) var(--event-focal,center) / cover no-repeat;
}
.campaign-shell .ai-event-card .event-heading { grid-column: 1; grid-row: 1; display: flex; flex-direction: column; gap: 10px; min-height: 0; margin: 0; align-content: start; }
.campaign-shell .ai-event-card .event-heading > div { padding: 0; color: var(--ming-ink); background: transparent; border: 0; }
.campaign-shell .ai-event-card .event-heading > div > span { color: var(--ming-muted); font-size: 14px; letter-spacing: .12em; }
.campaign-shell .ai-event-card .event-heading h2 { max-width: none; margin: 8px 0 0; font-size: clamp(28px,2.5vw,38px); line-height: 1.35; text-wrap: pretty; }
.campaign-shell .ai-event-card .event-side { display: flex; flex-direction: row; flex-wrap: wrap; align-items: center; gap: 12px; width: 100%; }
.campaign-shell .ai-event-card .event-origin { display: flex; flex-direction: row; align-items: center; gap: 8px; }
.campaign-shell .ai-event-card :is(.event-origin > b,.ai-status) { padding: 0; color: var(--ming-muted); background: transparent; border: 0; border-radius: 0; font-size: 14px; font-weight: 500; }
.campaign-shell .ai-event-card .event-origin > b::after { content: '·'; margin-left: 8px; }
.campaign-shell .ai-event-card .location-scene-seal { display: none; }
.campaign-shell .ai-event-card .event-narrative { grid-column: 1; grid-row: 2; max-width: none; margin: 0; padding: 0; border: 0; color: var(--ming-ink); background: transparent; font-size: 16px; line-height: 1.9; text-shadow: none; }
.campaign-shell .ai-event-card .event-state-read { grid-column: 1; grid-row: 3; align-self: end; margin: 0; padding-top: 14px; border-top: 1px solid #b7a58766; gap: 5px 14px; }
.campaign-shell .ai-event-card .event-state-read :is(span,b) { padding: 0; color: var(--ming-muted); background: transparent; border: 0; border-radius: 0; font-size: 14px; line-height: 1.6; font-weight: 400; }
.campaign-shell .ai-event-card .event-state-read > span { flex-basis: 100%; font-size: 14px; }
.campaign-shell .ai-event-card > .choice-list { margin-top: 4px; }
.campaign-shell .ai-event-card .event-fortune { padding: 0; border: 0; background: transparent; box-shadow: none; }
.campaign-shell .ai-event-card .event-fortune > img { width: 28px; height: 28px; filter: none; }
.campaign-shell .ai-event-card.has-showcase-image::before { display: none; }
.campaign-shell .ai-event-card.has-showcase-image > .location-scene-showcase { grid-column: 2; grid-row: 1 / span 3; height: auto; min-height: 260px; margin: 0; border: 0; }
.campaign-shell .ai-event-card .location-scene-showcase img { filter: none; }
.campaign-shell .ai-event-card :is(.case-scene-signature,.case-scene-signature b,.case-continuity-ledger,.case-continuity-ledger b,.history-propagation) {
  color: var(--ming-ink); background: var(--ming-paper-shade); border-color: var(--ming-rule); box-shadow: none;
}
.campaign-shell .ai-event-card :is(.case-scene-signature,.case-continuity-ledger,.history-propagation) :is(span,b,p,i,em) { color: var(--ming-ink); }

.campaign-shell .home-interior-summary { color: var(--ming-ink); background: var(--ming-paper-raised); }
.campaign-shell .home-interior-summary :is(h3,p,span,b,small) { color: var(--ming-ink); }

/* Folio illustrations are fully visible above the facts, without a painted veil. */
.system-focus-panel .ming-folio-body .market-shop-hero,
.campaign-shell .home-interior-summary {
  display: grid; grid-template-columns: minmax(0,1fr); gap: 18px; padding: 24px; min-height: 0;
}
.system-focus-panel .ming-folio-body .market-shop-hero::before,
.campaign-shell .home-interior-summary::before {
  position: static; inset: auto; z-index: auto; grid-column: 1; grid-row: 1;
  width: 100%; height: clamp(180px,24vw,300px); opacity: 1; background-position: center; filter: none;
}
.system-focus-panel .ming-folio-body .market-shop-hero::after,
.campaign-shell .home-interior-summary::after { display: none; }
.system-focus-panel .ming-folio-body .market-shop-hero > *,
.campaign-shell .home-interior-summary > * {
  grid-column: 1; grid-row: auto; min-width: 0; max-width: none;
}
.system-focus-panel .ming-folio-body .market-shop-hero dl { grid-template-columns: repeat(3,minmax(0,1fr)); }
.system-focus-panel .ming-folio-body .market-shop-hero > button { justify-self: start; }

/* A folio cover uses the same separate text and image areas as the story page. */
.system-focus-panel > .system-focus-heading.system-focus-hero {
  grid-template-columns: minmax(0,1fr) minmax(140px,24%) auto; align-items: start;
  gap: 24px; padding: 24px; min-height: 0; background: var(--ming-paper-raised);
}
.system-focus-panel .system-focus-heading .system-focus-art {
  position: static; inset: auto; z-index: 0; grid-column: 2; grid-row: 1;
  width: 100%; height: 100%; min-height: 146px; max-height: 200px; opacity: 1; filter: none;
}
.system-focus-panel .system-focus-heading :is(.system-focus-shade,.system-focus-seal) { display: none; }
.system-focus-panel .system-focus-heading .system-focus-copy {
  display: block; grid-column: 1; grid-row: 1; align-self: center; width: 100%; max-width: none; padding: 0; background: transparent;
}
.system-focus-panel .system-focus-heading .system-focus-copy :is(span,h2,p,.system-focus-authority) { background: transparent; text-shadow: none; }
.system-focus-panel .system-focus-heading .system-focus-authority { border: 0; padding: 0; color: var(--ming-muted); }
.system-focus-panel .system-focus-heading .system-focus-close {
  position: static; grid-column: 3; grid-row: 1; min-height: 44px; align-self: start;
}

@media (max-width:1100px) {
  .campaign-shell .campaign-header { gap: 12px; }
  .campaign-shell .campaign-header .campaign-wallets { gap: 8px; margin-left: 8px; padding-left: 12px; }
  .campaign-shell .ai-event-card { column-gap: 24px; padding: 24px; grid-template-columns: minmax(0,1fr) 34%; }
}
@media (max-width:760px) {
  .campaign-shell .campaign-header { gap: 6px; padding: 10px 12px; }
  .campaign-shell .campaign-header .campaign-actions { display: flex; justify-content: flex-start; gap: 2px; flex-wrap: wrap; }
  .campaign-shell .campaign-header :is(.archive-button,.game-menu-button,.save-button) { min-width: 44px; padding: 8px 6px; }
  .campaign-shell .campaign-header :is(.archive-button,.game-menu-button,.save-button) > small { font-size: 14px; letter-spacing: 0; }
  .campaign-shell .campaign-header .mobile-action-jump { min-width: 60px; padding: 8px 6px; border: 0; background: transparent; font-size: 14px; }
  .campaign-shell .campaign-header .campaign-wallets { margin-left: auto; padding-left: 10px; gap: 0; }
  .campaign-shell .campaign-header .currency-card.fate { display: none; }
  .campaign-shell .campaign-header .currency-icon { display: none; }
  .campaign-shell .campaign-header .currency-card { padding: 4px 0; gap: 6px; }
  .campaign-shell .campaign-header .currency-card > strong { font-size: 18px; }
  .campaign-shell .ai-event-card { grid-template-columns: minmax(0,1fr); gap: 18px; padding: 20px; }
  .campaign-shell .ai-event-card::before { grid-column: 1; grid-row: 1; height: 190px; min-height: 0; }
  .campaign-shell .ai-event-card .event-heading { grid-column: 1; grid-row: 2; }
  .campaign-shell .ai-event-card .event-heading h2 { font-size: 28px; }
  .campaign-shell .ai-event-card .event-narrative { grid-column: 1; grid-row: 3; }
  .campaign-shell .ai-event-card .event-state-read { grid-column: 1; grid-row: 4; }
  .campaign-shell .ai-event-card.has-showcase-image > .location-scene-showcase { grid-column: 1; grid-row: 1; height: 190px; min-height: 0; }
  .system-focus-panel .ming-folio-body .market-shop-hero,
.campaign-shell .home-interior-summary { padding: 16px; }
  .system-focus-panel .ming-folio-body .market-shop-hero dl { grid-template-columns: minmax(0,1fr); }
  .system-focus-panel > .system-focus-heading.system-focus-hero { grid-template-columns: minmax(0,1fr); gap: 16px; padding: 16px; }
  .system-focus-panel .system-focus-heading .system-focus-art { grid-column: 1; grid-row: 2; height: 120px; min-height: 0; }
  .system-focus-panel .system-focus-heading .system-focus-copy { grid-column: 1; grid-row: 3; }
  .system-focus-panel .system-focus-heading .system-focus-close { position: static; grid-column: 1; grid-row: 1; justify-self: end; }
}
/* Complete the paper treatment for populated secondary views and terminal screens. */
.modal-backdrop:has(.start-modal) { padding: 16px; overflow: auto; align-items: center; }
.modal-backdrop .start-modal { min-height: 0; max-height: calc(100dvh - 32px); overflow-y: auto; overscroll-behavior: contain; padding: 24px; }
.modal-backdrop .start-modal .modal-actions {
  position: sticky; inset: auto; bottom: -24px; z-index: 6; width: auto; transform: none;
  margin: 20px -24px -24px; padding: 14px 24px; gap: 10px; flex-wrap: wrap;
  color: var(--ming-ink); background: var(--ming-paper-raised); border: 0; border-top: 1px solid var(--ming-rule); box-shadow: none;
}
.modal-backdrop .start-modal .modal-actions button { min-height: 44px; min-width: 0; padding-inline: 12px; white-space: nowrap; }
.modal-backdrop .start-modal .modal-actions button.secondary { flex: 0 0 auto; }
.modal-backdrop .start-modal .modal-actions button.primary { flex: 1 1 auto; }
.start-modal .opening-state-ledger { color: var(--ming-ink); background: var(--ming-paper-shade); border-color: var(--ming-rule); box-shadow: none; }
.main-menu-parent-logo { filter: none; opacity: 1; }
.app-shell .topbar .header-wallets { gap: 10px; align-items: center; flex-wrap: wrap; }
.app-shell .topbar :is(.menu-home-button,.settings-button,.save-button) {
 display: flex; flex: 0 0 auto; flex-direction: row; align-items: center; justify-content: center;
 width: auto; min-width: 48px; height: 44px; min-height: 44px; padding: 8px;
 color: var(--ming-ink); background: transparent; border: 0; box-shadow: none;
}
.app-shell .topbar :is(.menu-home-button > span,.settings-button > span,.save-button > img) { display: none; }
.app-shell .topbar :is(.menu-home-button,.settings-button,.save-button) > small {
 position: static; padding: 0; color: var(--ming-ink); background: transparent; font: 500 16px/1.5 var(--font-body); text-shadow: none;
}
.app-shell .topbar :is(.settings-button,.save-button) > i { top: 7px; right: 4px; width: 4px; height: 4px; border: 0; box-shadow: none; background: var(--ming-vermilion); }
.app-shell .topbar .currency-card { gap: 8px; min-width: 0; width: auto; height: 44px; padding: 4px; background: transparent; border: 0; box-shadow: none; }
.app-shell .topbar .currency-icon,.app-shell .topbar .currency-icon img { width: 24px; height: 24px; min-width: 24px; filter: none; transform: none; }
.app-shell .topbar .currency-copy { overflow: visible; }
.app-shell .topbar .currency-copy small { font: 500 14px/1.5 var(--font-body); white-space: nowrap; }
.app-shell .topbar .currency-copy em { display: none; }
.app-shell .topbar .currency-card > strong { font: 600 20px/1.2 var(--font-body); font-variant-numeric: tabular-nums; }
.settings-panel .tianji-mode-card:is(:hover,:focus-visible) { color: var(--ming-ink); background: var(--ming-paper-shade); border-color: var(--ming-vermilion); }
.settings-panel .tianji-mode-card.active:is(:hover,:focus-visible) { color: #fff1d7; background: var(--ming-vermilion); }
.campaign-shell :is(.market-shopkeeper-portrait,.venue-operator-portrait) { background: var(--ming-paper-shade); border-color: var(--ming-rule); }
.campaign-shell .ai-event-card::before,
.campaign-shell .ai-event-card.has-showcase-image > .location-scene-showcase {
 align-self: start; height: auto; min-height: 0; aspect-ratio: 16 / 9;
}
.campaign-shell .ai-event-card .location-scene-showcase img { object-fit: contain; }

/* Filled ledgers share the surfaces already used by their empty states. */
.campaign-shell :is(.progression-card,.family-farm-settlements,.employment-settlements,.building-ledger-progress,.industrial-construction-rail,.industrial-next-action,.industrial-action-preview),
.campaign-shell :is(.family-farm-settlements,.employment-settlements) :is(header,article),
.campaign-shell .industrial-construction-rail > span,
.campaign-shell .population-cohort-progress :is(li,i) {
 color: var(--ming-ink); background: var(--ming-paper-raised); border-color: var(--ming-rule); box-shadow: none;
}
.campaign-shell :is(.progression-card,.family-farm-settlements,.employment-settlements,.building-ledger-progress,.industrial-construction-rail,.industrial-next-action,.industrial-action-preview) :is(span,b,strong,small,em,i,h3,p) { color: var(--ming-ink); text-shadow: none; }
.campaign-shell .population-cohort-progress li.current,
.campaign-shell .industrial-construction-rail > span.current { background: var(--ming-paper-shade); box-shadow: inset 0 -2px var(--ming-vermilion); }
.campaign-shell .choice-cost .choice-approach { color: var(--ming-ink); background: var(--ming-paper-shade); border-color: var(--ming-rule); }
.campaign-shell .assignment-command-card { opacity: 1; }
.campaign-shell .actor-assignment-modal .actor-assignment-route > div > span { background: var(--ming-paper-shade); }
.campaign-shell .employment-settlements article > i { color: var(--ming-ink); background: var(--ming-paper-shade); border-color: var(--ming-rule); }
.campaign-shell .employment-settlements article.arrears > i { color: var(--ming-vermilion); background: var(--ming-danger-paper); border-color: var(--ming-vermilion); }
.campaign-shell .family-farm-settlements article > i { color: var(--ming-success); background: var(--ming-success-paper); border-color: var(--ming-rule); }
.campaign-shell .industrial-facility-card,
.campaign-shell .industrial-facility-card > div > section { color: var(--ming-ink); background: var(--ming-paper-raised); border-color: var(--ming-rule); box-shadow: none; }
.campaign-shell .industrial-facility-card :is(h4,p,b,small,span) { color: var(--ming-ink); text-shadow: none; }
.campaign-shell .industrial-facility-card > div > section > div > span { background: var(--ming-paper-shade); border-color: var(--ming-rule); }
.campaign-shell .industrial-facility-card > div > section > div > span.met small { color: var(--ming-success); }
.campaign-shell .industrial-facility-card > div > section > div > span.missing { color: var(--ming-vermilion); border-color: var(--ming-vermilion); }
.campaign-shell .industrial-facility-card > figure { display: flex; flex-direction: column; min-height: 0; background: var(--ming-paper-shade); }
.campaign-shell .industrial-facility-card > figure::after { display: none; }
.campaign-shell .industrial-facility-card > figure img { flex: 1 1 auto; min-height: 240px; height: 0; filter: none; }
.campaign-shell .industrial-facility-card figcaption { position: static; padding: 18px; background: var(--ming-paper-shade); }
.campaign-shell .progression-card > header { flex-wrap: wrap; }
.campaign-shell .progression-card > header > div { min-width: 0; flex: 1 1 120px; }
.campaign-shell .progression-card > :is(p,footer) :is(span,small),
.campaign-shell .progression-card > p { white-space: normal; overflow: visible; text-overflow: clip; -webkit-line-clamp: unset; }
.campaign-shell .field-battle-search-planner button { grid-template-columns: minmax(0,1fr); }
.campaign-shell .field-battle-search-planner button small { text-align: left; }
.campaign-shell .field-battle-board { background: url('/assets/art/combat/review/field-battle-sandtable-v1-candidate.png') center / cover no-repeat var(--ming-paper-shade); box-shadow: none; border-color: var(--ming-rule); }
.campaign-shell .field-battle-board::before,.campaign-shell .field-battle-board::after { display: none; }
.campaign-shell .field-battle-board > :is(header,footer) { padding: 10px; color: var(--ming-ink); background: var(--ming-paper-raised); }
.campaign-shell .field-battle-board > :is(header,footer) :is(span,b,em,i,small) { color: var(--ming-ink); text-shadow: none; }
.campaign-shell :is(.common-building-blueprint,.common-building-lifecycle-card) > figure { display: flex; flex-direction: column; background: var(--ming-paper-shade); min-height: 0; }
.campaign-shell :is(.common-building-blueprint,.common-building-lifecycle-card) > figure::after { display: none; }
.campaign-shell :is(.common-building-blueprint,.common-building-lifecycle-card) > figure img { flex: 1 1 auto; min-height: 220px; height: 0; filter: none; }
.campaign-shell :is(.common-building-blueprint,.common-building-lifecycle-card) figcaption { position: static; padding: 18px; color: var(--ming-ink); background: var(--ming-paper-shade); }
.campaign-shell :is(.common-building-blueprint,.common-building-lifecycle-card) figcaption :is(span,h3,b) { color: var(--ming-ink); background: transparent; text-shadow: none; }
.campaign-shell .actor-assignment-modal { color: var(--ming-ink); background: var(--ming-paper-raised); border-color: var(--ming-rule); box-shadow: none; }
.campaign-shell .actor-assignment-modal :is(header,section,article,aside,footer,figure,li,button,div[class]) { color: var(--ming-ink); background: var(--ming-paper-raised); border-color: var(--ming-rule); box-shadow: none; }
.campaign-shell .actor-assignment-modal :is(p,b,strong,small,em,i,span,dt,dd,h2,h3,h4) { color: var(--ming-ink); border-color: var(--ming-rule); text-shadow: none; }
.campaign-shell .actor-assignment-modal :is(small,dt) { font-size: 14px; }
.campaign-shell .actor-assignment-modal .actor-assignment-hero { min-height: 160px; background: var(--ming-paper-shade); }
.campaign-shell .actor-assignment-modal .actor-assignment-hero-shade { display: none; }
.campaign-shell .actor-assignment-modal .actor-assignment-loadout { background: var(--ming-paper-shade) !important; border-color: var(--ming-rule) !important; }
.campaign-shell .actor-assignment-modal :is(.actor-assignment-seal,.actor-assignment-overview,.actor-assignment-findings,.actor-assignment-recovery,.actor-assignment-step-rail li) { background: var(--ming-paper-shade); }
.campaign-shell .actor-assignment-modal :is(.actor-assignment-seal > i,.actor-assignment-step-rail i,.actor-assignment-footer > button > i) { color: var(--ming-vermilion); background: var(--ming-danger-paper); }
.campaign-shell .actor-assignment-modal button { min-height: 44px; }
.campaign-shell .actor-assignment-modal button:is(:hover,:focus-visible) { background: var(--ming-paper-shade); border-color: var(--ming-vermilion); }
.campaign-shell .actor-assignment-modal .actor-assignment-footer > button { background: var(--ming-danger-paper); border-color: var(--ming-vermilion); }
.campaign-shell .actor-assignment-modal .actor-assignment-route > div > span :is(b,small) { white-space: normal; overflow: visible; text-overflow: clip; }
@media(max-width:1100px) {
 .campaign-shell .progression-card-list { grid-template-columns: minmax(0,1fr); }
}
@media(max-width:980px) {
 .campaign-shell .actor-assignment-modal .actor-assignment-body { grid-template-columns: minmax(0,1fr); }
 .campaign-shell .actor-assignment-modal .actor-assignment-footer { grid-template-columns: minmax(0,1fr); }
}

/* Incidents use the same reading paper even when their illustrations depict darkness. */
.campaign-shell :is(.blocked-action-modal,.robbery-loot-panel,.money-house-page,.jinyi-daily-review,.actor-memory-ledger-modal) {
 color: var(--ming-ink); background: var(--ming-paper-raised); border-color: var(--ming-rule); box-shadow: none; scrollbar-color: var(--ming-rule) var(--ming-paper-shade);
}
.campaign-shell :is(.blocked-action-modal,.robbery-loot-panel,.money-house-page,.jinyi-daily-review,.actor-memory-ledger-modal) :is(header,section,article,aside,footer,figure,figcaption,li,button,div[class],dl,details,summary,label,input,select) {
 color: var(--ming-ink); background: var(--ming-paper-raised); border-color: var(--ming-rule); box-shadow: none;
}
.campaign-shell :is(.blocked-action-modal,.robbery-loot-panel,.money-house-page,.jinyi-daily-review,.actor-memory-ledger-modal) :is([class],p,b,strong,small,em,i,span,dt,dd,h2,h3,h4,time) {
 color: var(--ming-ink); border-color: var(--ming-rule); text-shadow: none;
}
.campaign-shell :is(.blocked-action-modal,.robbery-loot-panel,.money-house-page,.jinyi-daily-review) button { min-height: 44px; }
.campaign-shell :is(.blocked-action-modal,.robbery-loot-panel,.money-house-page,.jinyi-daily-review) button:is(:hover,:focus-visible) { background: var(--ming-paper-shade); border-color: var(--ming-vermilion); }
.campaign-shell :is(.blocked-action-modal,.robbery-loot-panel,.money-house-page,.jinyi-daily-review) button:disabled { color: var(--ming-disabled-ink); background: var(--ming-disabled-paper); opacity: 1; }
.campaign-shell :is(.blocked-action-modal,.robbery-loot-panel,.money-house-page,.jinyi-daily-review) button:disabled :is(b,span,small) { color: var(--ming-disabled-ink); }
.campaign-shell .blocked-action-modal .blocked-action-reason { background: var(--ming-danger-paper); border-left-color: var(--ming-vermilion); }
.campaign-shell .blocked-action-modal .blocked-action-remedies > button { background: var(--ming-paper-shade); }
.campaign-shell .robbery-loot-panel :is(.robbery-loot-target,.robbery-loot-item.selected,.robbery-loot-summary,.robbery-loot-actions) { background: var(--ming-paper-shade); }
.campaign-shell .robbery-loot-panel .robbery-loot-item.selected { border-color: var(--ming-vermilion); box-shadow: inset 3px 0 var(--ming-vermilion); }
.campaign-shell .robbery-loot-panel .robbery-loot-target > figure { display: flex; flex-direction: column; height: auto; min-height: 0; }
.campaign-shell .robbery-loot-panel .robbery-loot-target > figure img { height: 220px; min-height: 0; object-position: center 22%; filter: none; }
.campaign-shell .robbery-loot-panel .robbery-loot-target figcaption { position: static; padding: 12px; background: var(--ming-paper-shade); }
.campaign-shell .robbery-loot-panel .robbery-loot-target > p,
.campaign-shell .robbery-loot-panel .robbery-loot-item > figure b { background: var(--ming-danger-paper); color: var(--ming-ink); border-color: var(--ming-vermilion); }
.campaign-shell .robbery-loot-panel .robbery-loot-cash > figure img { filter: none; }
.campaign-shell .robbery-loot-panel .robbery-loot-summary > i { background: var(--ming-rule); }
.campaign-shell .robbery-loot-panel .robbery-loot-summary > i > b { background: var(--ming-success); }
.campaign-shell .robbery-loot-panel .robbery-loot-summary.blocked > i > b { background: var(--ming-vermilion); }
.campaign-shell .robbery-loot-panel .robbery-loot-actions button.primary { border-color: var(--ming-vermilion); background: var(--ming-danger-paper); }
.campaign-shell .money-house-page .money-house-reserve { background: var(--ming-paper-shade) !important; }
.campaign-shell .money-house-page .money-house-hero { min-height: 0; grid-template-columns: minmax(0,1fr) auto; align-items: start; background: var(--ming-paper-shade); }
.campaign-shell .money-house-page .money-house-hero > dl { grid-column: 1 / -1; }
.campaign-shell .money-house-page .money-house-hero > button { grid-column: 2; grid-row: 1; }
.campaign-shell .money-house-page .money-house-hero::before,.campaign-shell .money-house-page .money-house-hero::after { display: none; }
.campaign-shell .money-house-page :is(.money-house-live-quote,.money-house-rate-note,.money-house-receipt,.money-house-account-summary > aside,.money-house-account-receipt,.money-house-account-history > summary) { background: var(--ming-paper-shade); }
.campaign-shell .money-house-page .money-house-action :is(b,small) { color: var(--ming-ink); }
.campaign-shell .jinyi-daily-review > figure { display: flex; flex-direction: column; min-height: 0; }
.campaign-shell .jinyi-daily-review > figure::after { display: none; }
.campaign-shell .jinyi-daily-review > figure img { flex: 1 1 auto; height: 0; min-height: 220px; filter: none; }
.campaign-shell .jinyi-daily-review figcaption { position: static; padding: 24px; background: var(--ming-paper-shade); }
.campaign-shell .actor-dialogue-modal figcaption :is(h3,p,b,span,small) { text-shadow: none; }
.campaign-shell .trait-name > small { color: var(--ming-muted); background: var(--ming-paper-shade); }
@media(max-width:1100px) {
 .campaign-shell .robbery-loot-cash { grid-template-columns: 54px minmax(0,1fr); }
 .campaign-shell .robbery-loot-cash-controls { grid-column: 1 / -1; }
}
@media(max-width:760px) {
 .campaign-shell .actor-dialogue-command-actions { grid-template-columns: minmax(0,1fr); }
 .campaign-shell .actor-dialogue-command-actions small { display: block; }
 .campaign-shell .jinyi-daily-review { grid-template-columns: minmax(0,1fr); }
 .campaign-shell .jinyi-daily-review > figure { height: 360px; }
 .campaign-shell .robbery-loot-target { grid-template-columns: minmax(0,1fr); }
 .campaign-shell .robbery-loot-panel .robbery-loot-target > figure { display: grid; grid-template-columns: 100px minmax(0,1fr); }
 .campaign-shell .robbery-loot-panel .robbery-loot-target > figure img { height: 150px; object-fit: contain; }
 .campaign-shell .money-house-page .money-house-hero { grid-template-columns: minmax(0,1fr); }
 .campaign-shell .money-house-page .money-house-hero > button { grid-column: auto; grid-row: auto; }
 .campaign-shell .robbery-loot-panel .robbery-loot-cash-controls { grid-template-columns: repeat(2,minmax(44px,1fr)) minmax(56px,1.4fr) repeat(2,minmax(44px,1fr)); gap: 3px; }
 .campaign-shell .robbery-loot-panel .robbery-loot-actions { grid-template-columns: minmax(0,1fr); }
}
.campaign-shell .historical-notice-panel,
.campaign-shell .historical-notice-panel .historical-notice-copy {
 color: var(--ming-ink); background: var(--ming-paper-raised); border-color: var(--ming-rule); box-shadow: none;
}
.campaign-shell .historical-notice-panel .historical-notice-copy :is(header,article,section,aside,footer,dl,ul,li,div[class],button,i) {
 color: var(--ming-ink); background: var(--ming-paper-raised); border-color: var(--ming-rule); box-shadow: none; text-shadow: none;
}
.campaign-shell .historical-notice-panel .historical-notice-copy :is(p,b,strong,small,span,i,em,dt,dd,h2,h3,h4) {
 color: var(--ming-ink); border-color: var(--ming-rule); text-shadow: none;
}
.campaign-shell .historical-notice-panel .historical-notice-copy header :is(span,b,small) { color: var(--ming-ink); }
.campaign-shell .historical-notice-panel .historical-notice-copy :is(article,section,aside,dl,li) { background: var(--ming-paper-shade); }
.campaign-shell .historical-notice-panel :is(.fire-family-bucket-facts,.fire-water-supply-facts) > span { background: var(--ming-paper-raised); border-color: var(--ming-rule); }
.campaign-shell .historical-notice-panel .historical-notice-copy button.blocked-action-explorable { opacity: 1; }
.campaign-shell .historical-notice-panel .historical-notice-copy button { min-height: 44px; color: var(--ming-ink); background: var(--ming-paper-raised); border: 1px solid var(--ming-rule); }
.campaign-shell .historical-notice-panel .historical-notice-copy button.primary { color: var(--ming-vermilion); background: var(--ming-danger-paper); border-color: var(--ming-vermilion); }
.campaign-shell .historical-notice-panel .historical-notice-copy button.primary :is(b,small,span) { color: var(--ming-vermilion); }
.campaign-shell .historical-notice-panel .historical-notice-copy button:disabled { color: var(--ming-disabled-ink); background: var(--ming-disabled-paper); opacity: 1; }
.campaign-shell .historical-notice-panel .historical-notice-copy button:disabled :is(b,small,span) { color: var(--ming-disabled-ink); }
.campaign-shell .historical-notice-panel .historical-notice-copy :is(.historical-notice-rule,.fire-incident-rule,.environmental-incident-rule)::before { background: var(--ming-vermilion); }
.campaign-shell .historical-notice-panel > figure { display: flex; flex-direction: column; background: var(--ming-paper-shade); }
.campaign-shell .historical-notice-panel > figure::after { display: none; }
.campaign-shell .historical-notice-panel > figure > img { position: static; flex: 1 1 auto; min-height: 0; height: 0; filter: none; }
.campaign-shell .historical-notice-panel > figure > figcaption { position: static; flex: 0 0 auto; padding: 14px 20px; color: var(--ming-ink); background: var(--ming-paper-shade); border: 0; text-shadow: none; }
.campaign-shell .historical-notice-panel > figure > figcaption :is(span,small) { color: var(--ming-ink); text-shadow: none; }
.campaign-shell .historical-notice-copy::-webkit-scrollbar-track { background: var(--ming-paper-shade); box-shadow: none; }
.campaign-shell .historical-notice-copy::-webkit-scrollbar-thumb { border-color: var(--ming-paper-shade); background: var(--ming-rule); }
.campaign-shell :is(.free-action-fire-warning,.active-fire-alert,.environmental-incident-alert) { color: var(--ming-ink); background: var(--ming-paper-shade); border-color: var(--ming-rule); }
.campaign-shell :is(.free-action-fire-warning,.active-fire-alert,.environmental-incident-alert) :is(i,b,span,p,small,button) { color: var(--ming-ink); background: transparent; border-color: var(--ming-rule); text-shadow: none; }
@media (max-width:980px) {
 .campaign-shell .historical-notice-panel > figure { height: 270px; min-height: 0; }
 .campaign-shell .historical-notice-panel > figure > img { width: 100%; min-height: 180px; }
}
@media (max-width:430px) {
 .campaign-shell .historical-notice-panel .historical-notice-eyebrow { align-items: start; gap: 10px; flex-wrap: wrap; }
 .campaign-shell .historical-notice-panel .historical-notice-eyebrow em { flex-basis: 100%; }
 .campaign-shell .historical-notice-panel .historical-notice-copy :is(.fire-incident-damage,.fire-incident-actions,.environmental-incident-actions,.drought-response-actions) { grid-template-columns: minmax(0,1fr); }
}
@media (max-width:430px) {
  .modal-backdrop:has(.start-modal) { padding: 8px; }
  .modal-backdrop .start-modal { max-height: calc(100dvh - 16px); padding: 16px; }
  .modal-backdrop .start-modal .modal-actions { bottom: -16px; margin-inline: -16px; margin-bottom: -16px; padding: 12px 16px; }
}
:is(.system-focus-panel .ming-folio-body, .system-dock .system-detail) :is(
.trade-journey-blocked,.daily-activity-ledger,.daily-activity-ledger > header dl > div,.activity-boundary-strip > span,
.activity-section,.activity-water-forecast,.composting-process,.composting-process > div,
.composting-art-placeholder,.composting-materials > span,.composting-advice,.composting-advice > span,
.cooking-recipe-card > footer button,.action-plan-list > article,.gathering-source-status > span,
.inventory-quick-use-list figure) {
  color: var(--ming-ink); background: var(--ming-paper-raised); border-color: var(--ming-rule); box-shadow: none;
}
:is(.system-focus-panel .ming-folio-body,.system-dock .system-detail) .residential-construction-materials article { color: var(--ming-ink); background: var(--ming-paper-raised); border-color: var(--ming-rule); }
:is(.system-focus-panel .ming-folio-body,.system-dock .system-detail) .residential-construction-materials :is(b,small,em) { color: var(--ming-ink); white-space: normal; overflow: visible; text-overflow: clip; }
:is(.system-focus-panel .ming-folio-body, .system-dock .system-detail) :is(
.trade-journey-blocked,.daily-activity-ledger,.activity-boundary-strip,.activity-section,
.activity-water-forecast,.composting-process,.composting-advice,.action-plan-list,.gathering-source-status) :is(
h3,h4,p,b,strong,small,span,i,em,dt,dd) { color: var(--ming-ink); text-shadow: none; }
:is(.system-focus-panel .ming-folio-body, .system-dock .system-detail) button.blocked-action-explorable :is(span,b,small) { opacity: 1; }

/* Identity cards stay legible on phones, with the portrait beside the full labels. */
.start-modal .jinyi-role-choice { min-height: 104px; padding: 12px; gap: 12px; }
.start-modal .jinyi-role-choice-copy :is(small,em),
.start-modal .jinyi-role-choice-state,
.start-modal .jinyi-custom-portrait-choice small { font-size: 14px; line-height: 1.5; }
.start-modal .jinyi-role-choice-copy strong { font-size: 17px; line-height: 1.5; }
.start-modal .jinyi-role-choice-state { position: static; align-self: start; }
.start-modal .jinyi-custom-portrait-choice.selected { color: var(--ming-ink); background: var(--ming-paper-shade); border-color: var(--ming-vermilion); }
.start-modal .jinyi-custom-portrait-choice.selected :is(strong,small) { color: var(--ming-ink); }
@media (max-width:1100px) {
  .start-modal .jinyi-role-picker-grid { grid-template-columns: minmax(0,1fr); }
  .start-modal .jinyi-role-choice { display: grid; grid-template-columns: 60px minmax(0,1fr) auto; }
  .start-modal .jinyi-role-choice figure { width: 60px; height: 82px; }
  .start-modal .jinyi-role-choice.custom .jinyi-role-choice-copy { grid-template-columns: minmax(0,1fr); }
  .start-modal .jinyi-custom-portraits > div { grid-template-columns: minmax(0,1fr); }
}

/* Endings and previews retain the natural art and continue onto a light reading page. */
.jinyi-ending-terminal > figure,
.jinyi-ending-archive-detail-art { display: flex; flex-direction: column; min-height: 0; height: auto; background: var(--ming-paper-raised); }
.jinyi-ending-terminal > figure::after,
.jinyi-ending-archive-detail-art::after { display: none; }
.jinyi-ending-terminal > figure img,
.jinyi-ending-archive-detail-art > img { position: static; display: block; width: 100%; height: clamp(240px,35vw,480px); object-fit: cover; filter: none; }
.jinyi-ending-terminal > figure figcaption,
.jinyi-ending-archive-detail-art figcaption {
  position: static; inset: auto; padding: 24px; color: var(--ming-ink); background: var(--ming-paper-raised); text-shadow: none;
}
.jinyi-ending-terminal > figure figcaption :is(span,h2,p),
.jinyi-ending-archive-detail-art figcaption :is(span,h2,p) { color: var(--ming-ink); text-shadow: none; }
.jinyi-ending-archive-entry.unlocked > figure { height: auto; display: flex; flex-direction: column; background: var(--ming-paper-raised); }
.jinyi-ending-archive-entry.unlocked > figure::after { display: none; }
.jinyi-ending-archive-entry.unlocked > figure > img { height: 190px; filter: none; }
.jinyi-ending-archive-entry.unlocked > figure > figcaption { position: static; color: var(--ming-ink); background: var(--ming-paper-shade); padding: 10px 16px; }
.jinyi-ending-archive-entry.unlocked > figure > figcaption :is(span,b) { color: var(--ming-ink); }
.campaign-shell .campaign-death-terminal { display: grid; grid-template-columns: 38% minmax(0,1fr); height: auto; min-height: 0; background: var(--ming-paper-raised); border-color: var(--ming-rule); }
.campaign-shell .campaign-death-terminal-art { position: static; display: block; height: 100%; min-height: 280px; object-fit: cover; object-position: center; filter: none; }
.campaign-shell .campaign-death-terminal-shade { display: none; }
.campaign-shell .campaign-death-terminal-copy { width: auto; max-height: none; min-height: 0; margin: 0; padding: 28px; overflow: visible; background: var(--ming-paper-raised); }
.campaign-shell .campaign-death-terminal-copy :is(h2,p,b,strong,small,span,i) { color: var(--ming-ink); text-shadow: none; }
.campaign-shell .campaign-death-terminal-copy :is(.campaign-death-facts > span,.campaign-death-case,.campaign-death-history-boundary) { color: var(--ming-ink); background: var(--ming-paper-shade); border-color: var(--ming-rule); }
.campaign-shell .campaign-death-terminal-copy > footer button { color: var(--ming-ink); background: var(--ming-paper-raised); border-color: var(--ming-rule); }
.campaign-shell .campaign-death-terminal-copy > footer button:hover { background: var(--ming-paper-shade); }
.campaign-shell .campaign-death-terminal-copy > footer button.primary { color: var(--ming-vermilion); background: var(--ming-danger-paper); border-color: var(--ming-vermilion); }
.wondrous-teaser-panel .wondrous-teaser-copy { color: var(--ming-ink); background: var(--ming-paper-raised); }
.wondrous-teaser-panel .wondrous-teaser-copy :is(header,footer,article,.wondrous-teaser-tags > span,button,button:disabled) { color: var(--ming-ink); background: var(--ming-paper-raised); border-color: var(--ming-rule); opacity: 1; }
.wondrous-teaser-panel .wondrous-teaser-copy :is(span,p,small,b,strong,i,h2) { color: var(--ming-ink); text-shadow: none; }
.wondrous-teaser-panel .wondrous-teaser-copy h2 span { color: var(--ming-vermilion); }
.wondrous-teaser-panel .wondrous-teaser-copy > header > b { color: var(--ming-vermilion); background: var(--ming-danger-paper); border-color: var(--ming-rule); }
.jinyi-campaign .system-focus-body .case-overview-panel { --jinyi-readable-min: 14px; --jinyi-control-min: 14px; }
.jinyi-ending-terminal-copy { --jinyi-ending-readable-min: 14px; --jinyi-ending-control-min: 14px; }

/* A tablet has room for a page, but not for a desktop page's nested columns. */
@media (max-width:1100px) {
  .campaign-shell .campaign-header { display: flex; flex-direction: column; align-items: stretch; gap: 10px; }
  .campaign-shell .campaign-header .campaign-brand { width: 100%; }
  .campaign-shell .campaign-header .campaign-actions { justify-content: flex-start; flex-wrap: wrap; }
  .campaign-shell .case-world-strip { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .campaign-shell .case-world-strip > div { min-width: 0; }
  .campaign-shell .campaign-sidebar { grid-template-columns: minmax(0,1fr); }
  :is(.system-focus-panel .ming-folio-body,.system-dock .system-detail) :is(.inventory-card-list,.farm-tool-ledger-grid,.farm-tool-route,.composting-materials,.residential-construction-materials) { grid-template-columns: minmax(0,1fr); }
  :is(.system-focus-panel .ming-folio-body,.system-dock .system-detail) .inventory-fluid-source-card { grid-template-columns: 36px minmax(0,1fr); }
  :is(.system-focus-panel .ming-folio-body,.system-dock .system-detail) .inventory-fluid-source-actions { grid-column: 1 / -1; width: 100%; }
  :is(.system-focus-panel .ming-folio-body,.system-dock .system-detail) .market-directory-card dl { grid-template-columns: minmax(0,1fr); }
  .jinyi-ending-archive-copy > footer { flex-wrap: wrap; }
  .jinyi-ending-archive-copy > footer > small { flex: 1 0 100%; }
}
@media (max-width:430px) {
  :is(.system-focus-panel .ming-folio-body,.system-dock .system-detail) .inventory-fluid-source-actions { grid-template-columns: minmax(0,1fr); }
  :is(.system-focus-panel .ming-folio-body,.system-dock .system-detail) .residential-construction-materials article { grid-template-columns: 44px minmax(0,1fr); }
  :is(.system-focus-panel .ming-folio-body,.system-dock .system-detail) .residential-construction-materials article > em { grid-column: 2; }
}
@media (max-width:760px) {
  .campaign-shell .campaign-death-terminal { grid-template-columns: minmax(0,1fr); }
  .campaign-shell .campaign-death-terminal-art { height: 230px; min-height: 0; }
  .campaign-shell .campaign-death-terminal-copy { padding: 20px; }
  .campaign-shell .campaign-death-terminal-copy > header h2 { font-size: 34px; }
  .jinyi-ending-terminal > figure img,.jinyi-ending-archive-detail-art > img { height: 230px; }
  .jinyi-ending-terminal > figure figcaption,.jinyi-ending-archive-detail-art figcaption { padding: 20px; }
}
/* Exact commoner source whitelist; only market/venue square identity avatars.
   Full figures, memory portraits, case contacts and every Jinyi source are excluded.
   Dimensions and breakpoint rules remain owned by the existing UI CSS. */
:is(.market-shopkeeper-portrait,.venue-operator-portrait):has(> img:is(
  [src="/assets/portraits/commoners/commoner-elder-ferryman-v1.png"],[src="assets/portraits/commoners/commoner-elder-ferryman-v1.png"],
  [src="/assets/portraits/commoners/commoner-grain-merchant-v1.png"],[src="assets/portraits/commoners/commoner-grain-merchant-v1.png"],
  [src="/assets/portraits/commoners/commoner-landholder-v1.png"],[src="assets/portraits/commoners/commoner-landholder-v1.png"],
  [src="/assets/portraits/commoners/commoner-lijia-headman-v1.png"],[src="assets/portraits/commoners/commoner-lijia-headman-v1.png"],
  [src="/assets/portraits/commoners/commoner-market-woman-v1.png"],[src="assets/portraits/commoners/commoner-market-woman-v1.png"],
  [src="/assets/portraits/commoners/commoner-older-refugee-woman-v1.png"],[src="assets/portraits/commoners/commoner-older-refugee-woman-v1.png"],
  [src="/assets/portraits/commoners/commoner-refugee-man-v1.png"],[src="assets/portraits/commoners/commoner-refugee-man-v1.png"],
  [src="/assets/portraits/commoners/commoner-rural-girl-v1.png"],[src="assets/portraits/commoners/commoner-rural-girl-v1.png"],
  [src="/assets/portraits/commoners/commoner-rural-healer-v1.png"],[src="assets/portraits/commoners/commoner-rural-healer-v1.png"],
  [src="/assets/portraits/commoners/commoner-rural-mother-v1.png"],[src="assets/portraits/commoners/commoner-rural-mother-v1.png"],
  [src="/assets/portraits/commoners/commoner-village-carpenter-v1.png"],[src="assets/portraits/commoners/commoner-village-carpenter-v1.png"],
  [src="/assets/portraits/commoners/commoner-weaver-woman-v1.png"],[src="assets/portraits/commoners/commoner-weaver-woman-v1.png"],
  [src="/assets/portraits/commoners/commoner-young-boatwoman-v1.png"],[src="assets/portraits/commoners/commoner-young-boatwoman-v1.png"],
  [src="/assets/portraits/commoners/commoner-young-clerk-v1.png"],[src="assets/portraits/commoners/commoner-young-clerk-v1.png"],
  [src="/assets/portraits/commoners/commoner-young-farmhand-v1.png"],[src="assets/portraits/commoners/commoner-young-farmhand-v1.png"],
  [src="/assets/portraits/commoners/commoner-young-wife-v1.png"],[src="assets/portraits/commoners/commoner-young-wife-v1.png"],
  [src="/assets/portraits/commoners/review/dongbian-boiled-water-seller-ge-sao-1627-v1-candidate.png"],[src="assets/portraits/commoners/review/dongbian-boiled-water-seller-ge-sao-1627-v1-candidate.png"],
  [src="/assets/portraits/commoners/review/dongbian-bucket-basin-seller-wei-sanniang-1627-v1-candidate.png"],[src="assets/portraits/commoners/review/dongbian-bucket-basin-seller-wei-sanniang-1627-v1-candidate.png"],
  [src="/assets/portraits/commoners/review/dongbian-cake-seller-lu-erniang-1627-v1-candidate.png"],[src="assets/portraits/commoners/review/dongbian-cake-seller-lu-erniang-1627-v1-candidate.png"],
  [src="/assets/portraits/commoners/review/dongbian-cloth-seller-qian-suniang-1627-v1-candidate.png"],[src="assets/portraits/commoners/review/dongbian-cloth-seller-qian-suniang-1627-v1-candidate.png"],
  [src="/assets/portraits/commoners/review/dongbian-firewood-seller-song-laoliu-1627-v1-candidate.png"],[src="assets/portraits/commoners/review/dongbian-firewood-seller-song-laoliu-1627-v1-candidate.png"],
  [src="/assets/portraits/commoners/review/dongbian-footwear-mender-zhou-wuniang-1627-v1-candidate.png"],[src="assets/portraits/commoners/review/dongbian-footwear-mender-zhou-wuniang-1627-v1-candidate.png"],
  [src="/assets/portraits/commoners/review/dongbian-gate-sergeant-luo-cheng-1627-v1-candidate.png"],[src="assets/portraits/commoners/review/dongbian-gate-sergeant-luo-cheng-1627-v1-candidate.png"],
  [src="/assets/portraits/commoners/review/dongbian-grain-grocer-zhao-shoucheng-1627-v1-candidate.png"],[src="assets/portraits/commoners/review/dongbian-grain-grocer-zhao-shoucheng-1627-v1-candidate.png"],
  [src="/assets/portraits/commoners/review/dongbian-innkeeper-chen-guiniang-1627-v1-candidate.png"],[src="assets/portraits/commoners/review/dongbian-innkeeper-chen-guiniang-1627-v1-candidate.png"],
  [src="/assets/portraits/commoners/review/dongbian-vegetable-seller-feng-sanniang-1627-v1-candidate.png"],[src="assets/portraits/commoners/review/dongbian-vegetable-seller-feng-sanniang-1627-v1-candidate.png"],
  [src="/assets/portraits/commoners/review/guo-matou-boat-material-dealer-liang-ershun-v1.png"],[src="assets/portraits/commoners/review/guo-matou-boat-material-dealer-liang-ershun-v1.png"],
  [src="/assets/portraits/commoners/review/innkeeper-he-youshun-1627-v1.png"],[src="assets/portraits/commoners/review/innkeeper-he-youshun-1627-v1.png"],
  [src="/assets/portraits/commoners/review/linxian-periodic-vendor-han-ersao-1629-v1.png"],[src="assets/portraits/commoners/review/linxian-periodic-vendor-han-ersao-1629-v1.png"],
  [src="/assets/portraits/commoners/review/linxian-road-warden-guo-shouchuan-1629-v1.png"],[src="assets/portraits/commoners/review/linxian-road-warden-guo-shouchuan-1629-v1.png"],
  [src="/assets/portraits/commoners/review/linxian-well-keeper-sun-jingsao-1629-v1.png"],[src="assets/portraits/commoners/review/linxian-well-keeper-sun-jingsao-1629-v1.png"],
  [src="/assets/portraits/commoners/review/mizhi-blacksmith-liu-tieshuan-1629-v1.png"],[src="assets/portraits/commoners/review/mizhi-blacksmith-liu-tieshuan-1629-v1.png"],
  [src="/assets/portraits/commoners/review/mizhi-fodder-seller-du-siniang-1629-v1.png"],[src="assets/portraits/commoners/review/mizhi-fodder-seller-du-siniang-1629-v1.png"],
  [src="/assets/portraits/commoners/review/shuntian-carpenter-cao-mingshan-v1.png"],[src="assets/portraits/commoners/review/shuntian-carpenter-cao-mingshan-v1.png"],
  [src="/assets/portraits/commoners/review/shuntian-livestock-broker-xing-wucheng-v1.png"],[src="assets/portraits/commoners/review/shuntian-livestock-broker-xing-wucheng-v1.png"],
  [src="/assets/portraits/commoners/review/suide-innkeeper-ma-sanhuai-1629-v1.png"],[src="assets/portraits/commoners/review/suide-innkeeper-ma-sanhuai-1629-v1.png"],
  [src="/assets/portraits/commoners/review/suide-yamen-clerk-he-maocai-1629-v1.png"],[src="assets/portraits/commoners/review/suide-yamen-clerk-he-maocai-1629-v1.png"],
  [src="/assets/portraits/commoners/review/tongzhou-provisioner-zhou-liuniang-v1.png"],[src="assets/portraits/commoners/review/tongzhou-provisioner-zhou-liuniang-v1.png"],
  [src="/assets/portraits/commoners/review/wubao-boatman-cao-hesheng-1629-v2.png"],[src="assets/portraits/commoners/review/wubao-boatman-cao-hesheng-1629-v2.png"],
  [src="/assets/portraits/commoners/review/yamen-clerk-luo-wenbing-1627-v1.png"],[src="assets/portraits/commoners/review/yamen-clerk-luo-wenbing-1627-v1.png"],
  [src="/assets/portraits/commoners/review/zhangjiawan-rope-dealer-song-achuan-v1.png"],[src="assets/portraits/commoners/review/zhangjiawan-rope-dealer-song-achuan-v1.png"]
)) { position: relative; }
:is(.market-shopkeeper-portrait,.venue-operator-portrait) > img:is(
  [src="/assets/portraits/commoners/commoner-elder-ferryman-v1.png"],[src="assets/portraits/commoners/commoner-elder-ferryman-v1.png"],
  [src="/assets/portraits/commoners/commoner-grain-merchant-v1.png"],[src="assets/portraits/commoners/commoner-grain-merchant-v1.png"],
  [src="/assets/portraits/commoners/commoner-landholder-v1.png"],[src="assets/portraits/commoners/commoner-landholder-v1.png"],
  [src="/assets/portraits/commoners/commoner-lijia-headman-v1.png"],[src="assets/portraits/commoners/commoner-lijia-headman-v1.png"],
  [src="/assets/portraits/commoners/commoner-market-woman-v1.png"],[src="assets/portraits/commoners/commoner-market-woman-v1.png"],
  [src="/assets/portraits/commoners/commoner-older-refugee-woman-v1.png"],[src="assets/portraits/commoners/commoner-older-refugee-woman-v1.png"],
  [src="/assets/portraits/commoners/commoner-refugee-man-v1.png"],[src="assets/portraits/commoners/commoner-refugee-man-v1.png"],
  [src="/assets/portraits/commoners/commoner-rural-girl-v1.png"],[src="assets/portraits/commoners/commoner-rural-girl-v1.png"],
  [src="/assets/portraits/commoners/commoner-rural-healer-v1.png"],[src="assets/portraits/commoners/commoner-rural-healer-v1.png"],
  [src="/assets/portraits/commoners/commoner-rural-mother-v1.png"],[src="assets/portraits/commoners/commoner-rural-mother-v1.png"],
  [src="/assets/portraits/commoners/commoner-village-carpenter-v1.png"],[src="assets/portraits/commoners/commoner-village-carpenter-v1.png"],
  [src="/assets/portraits/commoners/commoner-weaver-woman-v1.png"],[src="assets/portraits/commoners/commoner-weaver-woman-v1.png"],
  [src="/assets/portraits/commoners/commoner-young-boatwoman-v1.png"],[src="assets/portraits/commoners/commoner-young-boatwoman-v1.png"],
  [src="/assets/portraits/commoners/commoner-young-clerk-v1.png"],[src="assets/portraits/commoners/commoner-young-clerk-v1.png"],
  [src="/assets/portraits/commoners/commoner-young-farmhand-v1.png"],[src="assets/portraits/commoners/commoner-young-farmhand-v1.png"],
  [src="/assets/portraits/commoners/commoner-young-wife-v1.png"],[src="assets/portraits/commoners/commoner-young-wife-v1.png"],
  [src="/assets/portraits/commoners/review/dongbian-boiled-water-seller-ge-sao-1627-v1-candidate.png"],[src="assets/portraits/commoners/review/dongbian-boiled-water-seller-ge-sao-1627-v1-candidate.png"],
  [src="/assets/portraits/commoners/review/dongbian-bucket-basin-seller-wei-sanniang-1627-v1-candidate.png"],[src="assets/portraits/commoners/review/dongbian-bucket-basin-seller-wei-sanniang-1627-v1-candidate.png"],
  [src="/assets/portraits/commoners/review/dongbian-cake-seller-lu-erniang-1627-v1-candidate.png"],[src="assets/portraits/commoners/review/dongbian-cake-seller-lu-erniang-1627-v1-candidate.png"],
  [src="/assets/portraits/commoners/review/dongbian-cloth-seller-qian-suniang-1627-v1-candidate.png"],[src="assets/portraits/commoners/review/dongbian-cloth-seller-qian-suniang-1627-v1-candidate.png"],
  [src="/assets/portraits/commoners/review/dongbian-firewood-seller-song-laoliu-1627-v1-candidate.png"],[src="assets/portraits/commoners/review/dongbian-firewood-seller-song-laoliu-1627-v1-candidate.png"],
  [src="/assets/portraits/commoners/review/dongbian-footwear-mender-zhou-wuniang-1627-v1-candidate.png"],[src="assets/portraits/commoners/review/dongbian-footwear-mender-zhou-wuniang-1627-v1-candidate.png"],
  [src="/assets/portraits/commoners/review/dongbian-gate-sergeant-luo-cheng-1627-v1-candidate.png"],[src="assets/portraits/commoners/review/dongbian-gate-sergeant-luo-cheng-1627-v1-candidate.png"],
  [src="/assets/portraits/commoners/review/dongbian-grain-grocer-zhao-shoucheng-1627-v1-candidate.png"],[src="assets/portraits/commoners/review/dongbian-grain-grocer-zhao-shoucheng-1627-v1-candidate.png"],
  [src="/assets/portraits/commoners/review/dongbian-innkeeper-chen-guiniang-1627-v1-candidate.png"],[src="assets/portraits/commoners/review/dongbian-innkeeper-chen-guiniang-1627-v1-candidate.png"],
  [src="/assets/portraits/commoners/review/dongbian-vegetable-seller-feng-sanniang-1627-v1-candidate.png"],[src="assets/portraits/commoners/review/dongbian-vegetable-seller-feng-sanniang-1627-v1-candidate.png"],
  [src="/assets/portraits/commoners/review/guo-matou-boat-material-dealer-liang-ershun-v1.png"],[src="assets/portraits/commoners/review/guo-matou-boat-material-dealer-liang-ershun-v1.png"],
  [src="/assets/portraits/commoners/review/innkeeper-he-youshun-1627-v1.png"],[src="assets/portraits/commoners/review/innkeeper-he-youshun-1627-v1.png"],
  [src="/assets/portraits/commoners/review/linxian-periodic-vendor-han-ersao-1629-v1.png"],[src="assets/portraits/commoners/review/linxian-periodic-vendor-han-ersao-1629-v1.png"],
  [src="/assets/portraits/commoners/review/linxian-road-warden-guo-shouchuan-1629-v1.png"],[src="assets/portraits/commoners/review/linxian-road-warden-guo-shouchuan-1629-v1.png"],
  [src="/assets/portraits/commoners/review/linxian-well-keeper-sun-jingsao-1629-v1.png"],[src="assets/portraits/commoners/review/linxian-well-keeper-sun-jingsao-1629-v1.png"],
  [src="/assets/portraits/commoners/review/mizhi-blacksmith-liu-tieshuan-1629-v1.png"],[src="assets/portraits/commoners/review/mizhi-blacksmith-liu-tieshuan-1629-v1.png"],
  [src="/assets/portraits/commoners/review/mizhi-fodder-seller-du-siniang-1629-v1.png"],[src="assets/portraits/commoners/review/mizhi-fodder-seller-du-siniang-1629-v1.png"],
  [src="/assets/portraits/commoners/review/shuntian-carpenter-cao-mingshan-v1.png"],[src="assets/portraits/commoners/review/shuntian-carpenter-cao-mingshan-v1.png"],
  [src="/assets/portraits/commoners/review/shuntian-livestock-broker-xing-wucheng-v1.png"],[src="assets/portraits/commoners/review/shuntian-livestock-broker-xing-wucheng-v1.png"],
  [src="/assets/portraits/commoners/review/suide-innkeeper-ma-sanhuai-1629-v1.png"],[src="assets/portraits/commoners/review/suide-innkeeper-ma-sanhuai-1629-v1.png"],
  [src="/assets/portraits/commoners/review/suide-yamen-clerk-he-maocai-1629-v1.png"],[src="assets/portraits/commoners/review/suide-yamen-clerk-he-maocai-1629-v1.png"],
  [src="/assets/portraits/commoners/review/tongzhou-provisioner-zhou-liuniang-v1.png"],[src="assets/portraits/commoners/review/tongzhou-provisioner-zhou-liuniang-v1.png"],
  [src="/assets/portraits/commoners/review/wubao-boatman-cao-hesheng-1629-v2.png"],[src="assets/portraits/commoners/review/wubao-boatman-cao-hesheng-1629-v2.png"],
  [src="/assets/portraits/commoners/review/yamen-clerk-luo-wenbing-1627-v1.png"],[src="assets/portraits/commoners/review/yamen-clerk-luo-wenbing-1627-v1.png"],
  [src="/assets/portraits/commoners/review/zhangjiawan-rope-dealer-song-achuan-v1.png"],[src="assets/portraits/commoners/review/zhangjiawan-rope-dealer-song-achuan-v1.png"]
) {
  position: absolute; display: block;
  width: var(--commoner-square-image-width); height: var(--commoner-square-image-height);
  left: var(--commoner-square-image-left); top: var(--commoner-square-image-top);
  right: auto; bottom: auto; min-width: 0; min-height: 0; max-width: none; max-height: none;
  object-fit: fill; object-position: 0 0; transform: none;
}
:is(.market-shopkeeper-portrait,.venue-operator-portrait) > img:is([src="/assets/portraits/commoners/commoner-elder-ferryman-v1.png"],[src="assets/portraits/commoners/commoner-elder-ferryman-v1.png"]) {
  --commoner-square-image-width: 196.078431%; --commoner-square-image-height: 196.078431%;
  --commoner-square-image-left: -31.568627%; --commoner-square-image-top: -1.960784%;
}
:is(.market-shopkeeper-portrait,.venue-operator-portrait) > img:is([src="/assets/portraits/commoners/commoner-grain-merchant-v1.png"],[src="assets/portraits/commoners/commoner-grain-merchant-v1.png"]) {
  --commoner-square-image-width: 147.552491%; --commoner-square-image-height: 156.250000%;
  --commoner-square-image-left: -20.530091%; --commoner-square-image-top: 0.000000%;
}
:is(.market-shopkeeper-portrait,.venue-operator-portrait) > img:is([src="/assets/portraits/commoners/commoner-landholder-v1.png"],[src="assets/portraits/commoners/commoner-landholder-v1.png"]) {
  --commoner-square-image-width: 104.064941%; --commoner-square-image-height: 156.250000%;
  --commoner-square-image-left: -2.032471%; --commoner-square-image-top: 0.000000%;
}
:is(.market-shopkeeper-portrait,.venue-operator-portrait) > img:is([src="/assets/portraits/commoners/commoner-lijia-headman-v1.png"],[src="assets/portraits/commoners/commoner-lijia-headman-v1.png"]) {
  --commoner-square-image-width: 100.911459%; --commoner-square-image-height: 151.515152%;
  --commoner-square-image-left: -0.455729%; --commoner-square-image-top: 0.000000%;
}
:is(.market-shopkeeper-portrait,.venue-operator-portrait) > img:is([src="/assets/portraits/commoners/commoner-market-woman-v1.png"],[src="assets/portraits/commoners/commoner-market-woman-v1.png"]) {
  --commoner-square-image-width: 227.272727%; --commoner-square-image-height: 227.272727%;
  --commoner-square-image-left: -78.409091%; --commoner-square-image-top: -4.090909%;
}
:is(.market-shopkeeper-portrait,.venue-operator-portrait) > img:is([src="/assets/portraits/commoners/commoner-older-refugee-woman-v1.png"],[src="assets/portraits/commoners/commoner-older-refugee-woman-v1.png"]) {
  --commoner-square-image-width: 208.333333%; --commoner-square-image-height: 208.333333%;
  --commoner-square-image-left: -55.208333%; --commoner-square-image-top: -2.083333%;
}
:is(.market-shopkeeper-portrait,.venue-operator-portrait) > img:is([src="/assets/portraits/commoners/commoner-refugee-man-v1.png"],[src="assets/portraits/commoners/commoner-refugee-man-v1.png"]) {
  --commoner-square-image-width: 104.064941%; --commoner-square-image-height: 156.250000%;
  --commoner-square-image-left: -4.064941%; --commoner-square-image-top: 0.000000%;
}
:is(.market-shopkeeper-portrait,.venue-operator-portrait) > img:is([src="/assets/portraits/commoners/commoner-rural-girl-v1.png"],[src="assets/portraits/commoners/commoner-rural-girl-v1.png"]) {
  --commoner-square-image-width: 137.992528%; --commoner-square-image-height: 144.927536%;
  --commoner-square-image-left: -18.996264%; --commoner-square-image-top: 0.000000%;
}
:is(.market-shopkeeper-portrait,.venue-operator-portrait) > img:is([src="/assets/portraits/commoners/commoner-rural-healer-v1.png"],[src="assets/portraits/commoners/commoner-rural-healer-v1.png"]) {
  --commoner-square-image-width: 121.093750%; --commoner-square-image-height: 181.818182%;
  --commoner-square-image-left: -11.152343%; --commoner-square-image-top: 0.000000%;
}
:is(.market-shopkeeper-portrait,.venue-operator-portrait) > img:is([src="/assets/portraits/commoners/commoner-rural-mother-v1.png"],[src="assets/portraits/commoners/commoner-rural-mother-v1.png"]) {
  --commoner-square-image-width: 123.969184%; --commoner-square-image-height: 138.888889%;
  --commoner-square-image-left: -11.984592%; --commoner-square-image-top: 0.000000%;
}
:is(.market-shopkeeper-portrait,.venue-operator-portrait) > img:is([src="/assets/portraits/commoners/commoner-village-carpenter-v1.png"],[src="assets/portraits/commoners/commoner-village-carpenter-v1.png"]) {
  --commoner-square-image-width: 208.333333%; --commoner-square-image-height: 208.333333%;
  --commoner-square-image-left: -48.958333%; --commoner-square-image-top: -4.166667%;
}
:is(.market-shopkeeper-portrait,.venue-operator-portrait) > img:is([src="/assets/portraits/commoners/commoner-weaver-woman-v1.png"],[src="assets/portraits/commoners/commoner-weaver-woman-v1.png"]) {
  --commoner-square-image-width: 200.000000%; --commoner-square-image-height: 200.000000%;
  --commoner-square-image-left: -49.000000%; --commoner-square-image-top: -4.000000%;
}
:is(.market-shopkeeper-portrait,.venue-operator-portrait) > img:is([src="/assets/portraits/commoners/commoner-young-boatwoman-v1.png"],[src="assets/portraits/commoners/commoner-young-boatwoman-v1.png"]) {
  --commoner-square-image-width: 200.000000%; --commoner-square-image-height: 200.000000%;
  --commoner-square-image-left: -53.000000%; --commoner-square-image-top: -3.600000%;
}
:is(.market-shopkeeper-portrait,.venue-operator-portrait) > img:is([src="/assets/portraits/commoners/commoner-young-clerk-v1.png"],[src="assets/portraits/commoners/commoner-young-clerk-v1.png"]) {
  --commoner-square-image-width: 232.558140%; --commoner-square-image-height: 232.558140%;
  --commoner-square-image-left: -63.255814%; --commoner-square-image-top: -4.186047%;
}
:is(.market-shopkeeper-portrait,.venue-operator-portrait) > img:is([src="/assets/portraits/commoners/commoner-young-farmhand-v1.png"],[src="assets/portraits/commoners/commoner-young-farmhand-v1.png"]) {
  --commoner-square-image-width: 208.333333%; --commoner-square-image-height: 208.333333%;
  --commoner-square-image-left: -52.083333%; --commoner-square-image-top: -3.125000%;
}
:is(.market-shopkeeper-portrait,.venue-operator-portrait) > img:is([src="/assets/portraits/commoners/commoner-young-wife-v1.png"],[src="assets/portraits/commoners/commoner-young-wife-v1.png"]) {
  --commoner-square-image-width: 102.463942%; --commoner-square-image-height: 153.846154%;
  --commoner-square-image-left: -0.719651%; --commoner-square-image-top: 0.000000%;
}
:is(.market-shopkeeper-portrait,.venue-operator-portrait) > img:is([src="/assets/portraits/commoners/review/dongbian-boiled-water-seller-ge-sao-1627-v1-candidate.png"],[src="assets/portraits/commoners/review/dongbian-boiled-water-seller-ge-sao-1627-v1-candidate.png"]) {
  --commoner-square-image-width: 202.020202%; --commoner-square-image-height: 303.030303%;
  --commoner-square-image-left: -51.010101%; --commoner-square-image-top: 0.000000%;
}
:is(.market-shopkeeper-portrait,.venue-operator-portrait) > img:is([src="/assets/portraits/commoners/review/dongbian-bucket-basin-seller-wei-sanniang-1627-v1-candidate.png"],[src="assets/portraits/commoners/review/dongbian-bucket-basin-seller-wei-sanniang-1627-v1-candidate.png"]) {
  --commoner-square-image-width: 208.333333%; --commoner-square-image-height: 312.500000%;
  --commoner-square-image-left: -55.208333%; --commoner-square-image-top: 0.000000%;
}
:is(.market-shopkeeper-portrait,.venue-operator-portrait) > img:is([src="/assets/portraits/commoners/review/dongbian-cake-seller-lu-erniang-1627-v1-candidate.png"],[src="assets/portraits/commoners/review/dongbian-cake-seller-lu-erniang-1627-v1-candidate.png"]) {
  --commoner-square-image-width: 196.078431%; --commoner-square-image-height: 294.117647%;
  --commoner-square-image-left: -50.000000%; --commoner-square-image-top: 0.000000%;
}
:is(.market-shopkeeper-portrait,.venue-operator-portrait) > img:is([src="/assets/portraits/commoners/review/dongbian-cloth-seller-qian-suniang-1627-v1-candidate.png"],[src="assets/portraits/commoners/review/dongbian-cloth-seller-qian-suniang-1627-v1-candidate.png"]) {
  --commoner-square-image-width: 196.078431%; --commoner-square-image-height: 294.117647%;
  --commoner-square-image-left: -48.039216%; --commoner-square-image-top: 0.000000%;
}
:is(.market-shopkeeper-portrait,.venue-operator-portrait) > img:is([src="/assets/portraits/commoners/review/dongbian-firewood-seller-song-laoliu-1627-v1-candidate.png"],[src="assets/portraits/commoners/review/dongbian-firewood-seller-song-laoliu-1627-v1-candidate.png"]) {
  --commoner-square-image-width: 202.020202%; --commoner-square-image-height: 303.030303%;
  --commoner-square-image-left: -56.060606%; --commoner-square-image-top: 0.000000%;
}
:is(.market-shopkeeper-portrait,.venue-operator-portrait) > img:is([src="/assets/portraits/commoners/review/dongbian-footwear-mender-zhou-wuniang-1627-v1-candidate.png"],[src="assets/portraits/commoners/review/dongbian-footwear-mender-zhou-wuniang-1627-v1-candidate.png"]) {
  --commoner-square-image-width: 196.078431%; --commoner-square-image-height: 294.117647%;
  --commoner-square-image-left: -48.039216%; --commoner-square-image-top: 0.000000%;
}
:is(.market-shopkeeper-portrait,.venue-operator-portrait) > img:is([src="/assets/portraits/commoners/review/dongbian-gate-sergeant-luo-cheng-1627-v1-candidate.png"],[src="assets/portraits/commoners/review/dongbian-gate-sergeant-luo-cheng-1627-v1-candidate.png"]) {
  --commoner-square-image-width: 196.078431%; --commoner-square-image-height: 294.117647%;
  --commoner-square-image-left: -47.058824%; --commoner-square-image-top: 0.000000%;
}
:is(.market-shopkeeper-portrait,.venue-operator-portrait) > img:is([src="/assets/portraits/commoners/review/dongbian-grain-grocer-zhao-shoucheng-1627-v1-candidate.png"],[src="assets/portraits/commoners/review/dongbian-grain-grocer-zhao-shoucheng-1627-v1-candidate.png"]) {
  --commoner-square-image-width: 196.078431%; --commoner-square-image-height: 294.117647%;
  --commoner-square-image-left: -46.078431%; --commoner-square-image-top: 0.000000%;
}
:is(.market-shopkeeper-portrait,.venue-operator-portrait) > img:is([src="/assets/portraits/commoners/review/dongbian-innkeeper-chen-guiniang-1627-v1-candidate.png"],[src="assets/portraits/commoners/review/dongbian-innkeeper-chen-guiniang-1627-v1-candidate.png"]) {
  --commoner-square-image-width: 196.078431%; --commoner-square-image-height: 294.117647%;
  --commoner-square-image-left: -50.000000%; --commoner-square-image-top: 0.000000%;
}
:is(.market-shopkeeper-portrait,.venue-operator-portrait) > img:is([src="/assets/portraits/commoners/review/dongbian-vegetable-seller-feng-sanniang-1627-v1-candidate.png"],[src="assets/portraits/commoners/review/dongbian-vegetable-seller-feng-sanniang-1627-v1-candidate.png"]) {
  --commoner-square-image-width: 196.078431%; --commoner-square-image-height: 294.117647%;
  --commoner-square-image-left: -46.078431%; --commoner-square-image-top: 0.000000%;
}
:is(.market-shopkeeper-portrait,.venue-operator-portrait) > img:is([src="/assets/portraits/commoners/review/guo-matou-boat-material-dealer-liang-ershun-v1.png"],[src="assets/portraits/commoners/review/guo-matou-boat-material-dealer-liang-ershun-v1.png"]) {
  --commoner-square-image-width: 202.020202%; --commoner-square-image-height: 303.030303%;
  --commoner-square-image-left: -59.090909%; --commoner-square-image-top: 0.000000%;
}
:is(.market-shopkeeper-portrait,.venue-operator-portrait) > img:is([src="/assets/portraits/commoners/review/innkeeper-he-youshun-1627-v1.png"],[src="assets/portraits/commoners/review/innkeeper-he-youshun-1627-v1.png"]) {
  --commoner-square-image-width: 138.888889%; --commoner-square-image-height: 208.333333%;
  --commoner-square-image-left: -15.277778%; --commoner-square-image-top: 0.000000%;
}
:is(.market-shopkeeper-portrait,.venue-operator-portrait) > img:is([src="/assets/portraits/commoners/review/linxian-periodic-vendor-han-ersao-1629-v1.png"],[src="assets/portraits/commoners/review/linxian-periodic-vendor-han-ersao-1629-v1.png"]) {
  --commoner-square-image-width: 111.111111%; --commoner-square-image-height: 166.666667%;
  --commoner-square-image-left: -9.444444%; --commoner-square-image-top: 0.000000%;
}
:is(.market-shopkeeper-portrait,.venue-operator-portrait) > img:is([src="/assets/portraits/commoners/review/linxian-road-warden-guo-shouchuan-1629-v1.png"],[src="assets/portraits/commoners/review/linxian-road-warden-guo-shouchuan-1629-v1.png"]) {
  --commoner-square-image-width: 113.636364%; --commoner-square-image-height: 113.636364%;
  --commoner-square-image-left: -7.954545%; --commoner-square-image-top: 0.000000%;
}
:is(.market-shopkeeper-portrait,.venue-operator-portrait) > img:is([src="/assets/portraits/commoners/review/linxian-well-keeper-sun-jingsao-1629-v1.png"],[src="assets/portraits/commoners/review/linxian-well-keeper-sun-jingsao-1629-v1.png"]) {
  --commoner-square-image-width: 116.279070%; --commoner-square-image-height: 116.279070%;
  --commoner-square-image-left: -12.790698%; --commoner-square-image-top: 0.000000%;
}
:is(.market-shopkeeper-portrait,.venue-operator-portrait) > img:is([src="/assets/portraits/commoners/review/mizhi-blacksmith-liu-tieshuan-1629-v1.png"],[src="assets/portraits/commoners/review/mizhi-blacksmith-liu-tieshuan-1629-v1.png"]) {
  --commoner-square-image-width: 202.020202%; --commoner-square-image-height: 303.030303%;
  --commoner-square-image-left: -53.030303%; --commoner-square-image-top: 0.000000%;
}
:is(.market-shopkeeper-portrait,.venue-operator-portrait) > img:is([src="/assets/portraits/commoners/review/mizhi-fodder-seller-du-siniang-1629-v1.png"],[src="assets/portraits/commoners/review/mizhi-fodder-seller-du-siniang-1629-v1.png"]) {
  --commoner-square-image-width: 196.078431%; --commoner-square-image-height: 294.117647%;
  --commoner-square-image-left: -51.960784%; --commoner-square-image-top: 0.000000%;
}
:is(.market-shopkeeper-portrait,.venue-operator-portrait) > img:is([src="/assets/portraits/commoners/review/shuntian-carpenter-cao-mingshan-v1.png"],[src="assets/portraits/commoners/review/shuntian-carpenter-cao-mingshan-v1.png"]) {
  --commoner-square-image-width: 121.212121%; --commoner-square-image-height: 181.818182%;
  --commoner-square-image-left: -7.575758%; --commoner-square-image-top: -2.727273%;
}
:is(.market-shopkeeper-portrait,.venue-operator-portrait) > img:is([src="/assets/portraits/commoners/review/shuntian-livestock-broker-xing-wucheng-v1.png"],[src="assets/portraits/commoners/review/shuntian-livestock-broker-xing-wucheng-v1.png"]) {
  --commoner-square-image-width: 196.078431%; --commoner-square-image-height: 294.117647%;
  --commoner-square-image-left: -55.882353%; --commoner-square-image-top: 0.000000%;
}
:is(.market-shopkeeper-portrait,.venue-operator-portrait) > img:is([src="/assets/portraits/commoners/review/suide-innkeeper-ma-sanhuai-1629-v1.png"],[src="assets/portraits/commoners/review/suide-innkeeper-ma-sanhuai-1629-v1.png"]) {
  --commoner-square-image-width: 128.205128%; --commoner-square-image-height: 192.307692%;
  --commoner-square-image-left: -14.102564%; --commoner-square-image-top: 0.000000%;
}
:is(.market-shopkeeper-portrait,.venue-operator-portrait) > img:is([src="/assets/portraits/commoners/review/suide-yamen-clerk-he-maocai-1629-v1.png"],[src="assets/portraits/commoners/review/suide-yamen-clerk-he-maocai-1629-v1.png"]) {
  --commoner-square-image-width: 111.111111%; --commoner-square-image-height: 166.666667%;
  --commoner-square-image-left: -6.666667%; --commoner-square-image-top: 0.000000%;
}
:is(.market-shopkeeper-portrait,.venue-operator-portrait) > img:is([src="/assets/portraits/commoners/review/tongzhou-provisioner-zhou-liuniang-v1.png"],[src="assets/portraits/commoners/review/tongzhou-provisioner-zhou-liuniang-v1.png"]) {
  --commoner-square-image-width: 196.078431%; --commoner-square-image-height: 294.117647%;
  --commoner-square-image-left: -48.039216%; --commoner-square-image-top: 0.000000%;
}
:is(.market-shopkeeper-portrait,.venue-operator-portrait) > img:is([src="/assets/portraits/commoners/review/wubao-boatman-cao-hesheng-1629-v2.png"],[src="assets/portraits/commoners/review/wubao-boatman-cao-hesheng-1629-v2.png"]) {
  --commoner-square-image-width: 119.047619%; --commoner-square-image-height: 178.571429%;
  --commoner-square-image-left: -5.952381%; --commoner-square-image-top: -4.464286%;
}
:is(.market-shopkeeper-portrait,.venue-operator-portrait) > img:is([src="/assets/portraits/commoners/review/yamen-clerk-luo-wenbing-1627-v1.png"],[src="assets/portraits/commoners/review/yamen-clerk-luo-wenbing-1627-v1.png"]) {
  --commoner-square-image-width: 114.942529%; --commoner-square-image-height: 172.413793%;
  --commoner-square-image-left: -6.321839%; --commoner-square-image-top: 0.000000%;
}
:is(.market-shopkeeper-portrait,.venue-operator-portrait) > img:is([src="/assets/portraits/commoners/review/zhangjiawan-rope-dealer-song-achuan-v1.png"],[src="assets/portraits/commoners/review/zhangjiawan-rope-dealer-song-achuan-v1.png"]) {
  --commoner-square-image-width: 133.333333%; --commoner-square-image-height: 200.000000%;
  --commoner-square-image-left: -16.666667%; --commoner-square-image-top: 0.000000%;
}
/* One local music control beside the existing menu actions. */
body .music-controls { display: inline-flex; align-items: center; gap: 6px; flex: 0 0 auto; max-width: 100%; }
body .music-volume { position: relative; color: #392f21; font: 500 14px/1.4 var(--font-body); }
body .music-volume > summary { display: flex; align-items: center; justify-content: center; gap: 4px; min-height: 44px; padding: 7px 9px; box-sizing: border-box; cursor: pointer; list-style: none; background: #f8efdc; border: 1px solid #b19a70; white-space: nowrap; }
body .music-volume > summary::-webkit-details-marker { display: none; }
body .music-volume > summary:focus-visible { outline: 2px solid #8e422f; outline-offset: 3px; }
body .music-volume .music-volume-panel { display: grid; position: absolute; right: 0; top: calc(100% + 6px); z-index: 20; width: 220px; max-width: calc(100vw - 40px); box-sizing: border-box; padding: 14px; gap: 8px; background: #f8efdc; color: #392f21; border: 1px solid #b19a70; box-shadow: 0 8px 24px #0005; }
body .music-volume input[type="range"] { display: block; width: 100%; min-width: 0; height: 44px; margin: 0; padding: 0; cursor: pointer; accent-color: #8e422f; }
body .music-volume span, body .music-volume small { color: inherit; text-shadow: none; }
body .music-volume small { font: 12px/1.5 var(--font-body); }
body .music-toggle {
  display: inline-flex; align-items: center; justify-content: center; gap: 7px;
  flex: 0 0 auto; min-width: 102px; min-height: 44px; padding: 7px 10px;
  color: #392f21; background: #f8efdc; border: 1px solid #b19a70;
  font: 500 14px/1.4 var(--font-body); cursor: pointer; box-shadow: none;
}

/* A dated account book: charge amounts lead, model usage stays secondary. */
.settings-panel .token-charge-history { margin: 18px 0; border: 1px solid #b8a27d; background: #f8efdc; color: #392f21; }
.settings-panel .token-charge-history summary { cursor: pointer; list-style: none; min-height: 44px; }
.settings-panel .token-charge-history summary::-webkit-details-marker { display: none; }
.settings-panel .token-charge-history summary:focus-visible { outline: 2px solid #873d2d; outline-offset: -3px; }
.settings-panel .token-ledger-trigger { display: flex; align-items: center; gap: 12px; padding: 16px; }
.settings-panel .token-ledger-seal { display: grid; place-items: center; flex: 0 0 40px; width: 40px; height: 46px; border: 1px solid #a0885f; color: #713423; font: 26px/1 var(--font-brush); }
.settings-panel .token-ledger-title { display: grid; gap: 4px; flex: 1; min-width: 0; }
.settings-panel .token-ledger-title strong { font: 700 22px/1.3 var(--font-body); }
.settings-panel .token-ledger-title small { color: #64543c; font: 14px/1.5 var(--font-body); }
.settings-panel .token-ledger-toggle { display: flex; align-items: center; gap: 8px; color: #713423; font: 14px/1.5 var(--font-body); }
.settings-panel .token-ledger-toggle i,.settings-panel .token-charge-day summary > i { font: 20px/1 system-ui,sans-serif; transition: transform .15s; }
.settings-panel .token-charge-history:not([open]) .when-open,.settings-panel .token-charge-history[open] .when-closed { display: none; }
.settings-panel .token-charge-history[open] .token-ledger-toggle i,.settings-panel .token-charge-day[open] summary > i { transform: rotate(180deg); }
.settings-panel .token-ledger-body { border-top: 1px solid #d2c09f; padding: 18px 16px 14px; }
.settings-panel .token-ledger-total { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding-bottom: 16px; }
.settings-panel .token-ledger-total > div { min-width: 0; }
.settings-panel .token-ledger-total > div > span { color: #64543c; font: 14px/1.5 var(--font-body); }
.settings-panel .token-ledger-total strong { display: flex; flex-wrap: wrap; align-items: baseline; gap: 8px; margin-top: 8px; color: #713423; font: 600 32px/1.2 system-ui,sans-serif; font-variant-numeric: tabular-nums; overflow-wrap: anywhere; }
.settings-panel .token-ledger-total strong small { color: #64543c; font: 14px/1.5 var(--font-body); }
.settings-panel .token-ledger-stamp { flex: 0 0 auto; padding: 6px 9px; border: 1px solid #b7806c; color: #713423; font: 16px/1.4 var(--font-body); letter-spacing: 3px; transform: rotate(-5deg); }
.settings-panel .token-ledger-note { margin: 0 0 12px; color: #64543c; font: 14px/1.7 var(--font-body); }
.settings-panel .token-charge-day { margin-top: 10px; border: 1px solid #c8b48f; background: #fff7e6; }
.settings-panel .token-charge-day > summary { display: grid; grid-template-columns: minmax(0,1fr) auto 16px; align-items: center; gap: 10px; padding: 12px; background: #eadcbe; }
.settings-panel .token-charge-day-date { display: grid; gap: 3px; min-width: 0; }
.settings-panel .token-charge-day-date strong { color: #392f21; font: 700 16px/1.5 var(--font-body); overflow-wrap: anywhere; }
.settings-panel .token-charge-day-date small { color: #64543c; font: 14px/1.5 var(--font-body); }
.settings-panel .token-charge-day-total { text-align: right; }
.settings-panel .token-charge-day-total strong { display: block; color: #713423; font: 600 20px/1.4 system-ui,sans-serif; font-variant-numeric: tabular-nums; }
.settings-panel .token-charge-day-total small { color: #64543c; font: 14px/1.5 var(--font-body); }
.settings-panel .token-charge-day > ol { list-style: none; margin: 0; padding: 0 12px; }
.settings-panel .token-charge-row { padding: 14px 0; }
.settings-panel .token-charge-row + .token-charge-row { border-top: 1px dashed #c8b48f; }
.settings-panel .token-charge-row-heading { display: flex; align-items: flex-start; justify-content: space-between; flex-wrap: wrap; gap: 8px; }
.settings-panel .token-charge-row-heading > div { display: grid; gap: 3px; min-width: 0; flex: 1 1 160px; }
.settings-panel .token-charge-row-heading time { color: #64543c; font: 14px/1.4 system-ui,sans-serif; font-variant-numeric: tabular-nums; }
.settings-panel .token-charge-row-heading > div > span { color: #392f21; font: 600 16px/1.6 var(--font-body); overflow-wrap: anywhere; }
.settings-panel .token-charge-row-heading > strong { color: #713423; font: 600 18px/1.5 system-ui,sans-serif; font-variant-numeric: tabular-nums; }
.settings-panel .token-charge-row-heading strong small { margin-left: 5px; color: #64543c; font: 14px/1.5 var(--font-body); }
.settings-panel .token-charge-meter { margin-top: 10px; padding: 10px; background: #f1e7d0; }
.settings-panel .token-charge-meter > span { display: block; color: #64543c; font: 14px/1.5 var(--font-body); }
.settings-panel .token-charge-meter > span small { margin-left: 5px; font: 14px/1.5 system-ui,sans-serif; }
.settings-panel .token-charge-meter dl { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 8px; margin: 8px 0 0; }
.settings-panel .token-charge-meter dt { color: #64543c; font: 14px/1.5 var(--font-body); }
.settings-panel .token-charge-meter dd { margin: 2px 0 0; color: #392f21; font: 500 14px/1.6 system-ui,sans-serif; font-variant-numeric: tabular-nums; overflow-wrap: anywhere; }
.settings-panel .token-ledger-older > summary { display: flex; justify-content: center; align-items: center; margin-top: 12px; color: #713423; border: 1px dashed #b8a27d; font: 14px/1.5 var(--font-body); }
.settings-panel .token-ledger-footnote { margin: 16px 0 0; padding-top: 12px; border-top: 1px solid #d2c09f; color: #64543c; font: 14px/1.8 var(--font-body); }
.settings-panel .token-ledger-empty { padding: 12px 0 16px; text-align: center; }
.settings-panel .token-ledger-empty strong { color: #713423; font: 700 22px/1.5 var(--font-body); }
.settings-panel .token-ledger-empty p { margin: 8px 0 0; color: #64543c; font: 14px/1.8 var(--font-body); }
@media (max-width: 420px) {
  body .music-volume .music-volume-panel { width: 180px; }
  .settings-panel .token-ledger-trigger { padding: 12px; gap: 8px; }
  .settings-panel .token-ledger-seal { flex-basis: 32px; width: 32px; height: 40px; }
  .settings-panel .token-ledger-body { padding: 14px 10px 12px; }
  .settings-panel .token-charge-day > summary { padding: 10px 8px; gap: 6px; }
  .settings-panel .token-charge-day > ol { padding: 0 8px; }
  .settings-panel .token-charge-row-heading > div { flex-basis: 110px; }
  .settings-panel .token-charge-meter { padding: 8px; }
}
body .music-toggle span { color: inherit; text-shadow: none; }
body .music-toggle[aria-pressed="true"] { color: #713423; border-color: #8e422f; }
body .music-toggle:hover { background: #e9ddc2; }
body .music-toggle:focus-visible { outline: 2px solid #8e422f; outline-offset: 3px; }
body .music-toggle-icon { font: 700 23px/1 Georgia,serif; }
.main-menu-shell .main-menu-token-group { flex-wrap: wrap; }
@media (max-width: 760px) {
  .main-menu-shell .main-menu-header { flex-wrap: wrap; gap: 12px; }
  .main-menu-shell .main-menu-token-group { margin-left: auto; max-width: 100%; }
  .app-shell .topbar:has(.music-toggle) { grid-template-columns: minmax(0,1fr); gap: 10px; }
  .app-shell .topbar:has(.music-toggle) .brand-copy h1 small { white-space: normal; }
  .app-shell .topbar:has(.music-toggle) .header-wallets { justify-content: flex-end; }
  .settings-panel > header:has(.music-toggle) { display: grid; grid-template-columns: 1fr 1fr; }
  .settings-panel > header:has(.music-toggle) > div { grid-column: 1 / -1; }
  .settings-panel > header:has(.music-toggle) > .music-controls { justify-self: end; }
}
