/* Decision copy has its own readable floor. Window height can compress the
   scene, but must not silently cancel the player's text-scale preference. */
:root {
  --decision-text: max(12px, calc(clamp(12px, .8vw, 18px) * var(--user-scale)));
  --decision-heading: max(14px, calc(clamp(14px, 1vw, 22px) * var(--user-scale)));
}
.game-shell:not(.fusion-mode) .equipment-list > .equipped-item p {
  font-size: var(--decision-text); line-height: 1.6;
  grid-template-columns: 1fr;
}
.game-shell:not(.fusion-mode) .equipment-list > .equipped-item p > span { white-space: normal; overflow-wrap: anywhere; }
.game-shell:not(.fusion-mode) .equipment-list > .equipped-item .equipment-depth {
  font-size: var(--decision-text); line-height: 1.5; flex-wrap: wrap;
}
.game-shell:not(.fusion-mode) .equipment-list > .equipped-item h3 { font-size: var(--decision-heading); overflow-wrap: anywhere; }
.game-shell:not(.fusion-mode) .equipment-list > .equipped-item :is(.item-meta strong, h3 small) { font-size: var(--decision-text); }
.game-shell:not(.fusion-mode) .right-rail > .equipment-list { flex: 0 0 auto; grid-template-rows: none; grid-auto-rows: auto; overflow: visible; }
.game-shell:not(.fusion-mode) .equipment-list > .equipped-item { min-height: 100px; padding: .65rem; }
.game-shell:not(.fusion-mode) .equipment-list > .empty-slot { min-height: 48px; }
@media (min-width: 1100px) {
  .game-shell:not(.fusion-mode) .right-rail { overflow-y: auto; scrollbar-gutter: stable; }
}
.game-shell:not(.fusion-mode) .item-card > p,
.game-shell:not(.fusion-mode) .inventory-list .item-card > p,
.game-shell:not(.fusion-mode) :is(.item-origin, .item-level-line, .inventory-guidance, .inventory-reclaim, .inventory-lock-note, .inventory-pagination),
.game-shell:not(.fusion-mode) .item-card .item-actions button,
.game-shell:not(.fusion-mode) .item-comparison :is(small, dt, dd),
.game-dialog .item-comparison :is(small, dt, dd) {
  font-size: var(--decision-text); line-height: 1.6;
}
.game-shell:not(.fusion-mode) .item-card :is(h3, h3 small) { font-size: var(--decision-heading); }
.game-shell:not(.fusion-mode) .inventory-reclaim { align-items: center; gap: .75rem; }
.game-shell:not(.fusion-mode) .inventory-reclaim > span { font-size: var(--decision-text); line-height: 1.6; }
.game-shell:not(.fusion-mode) .inventory-reclaim button { font-size: var(--decision-text); flex-shrink: 0; }
.game-shell:not(.fusion-mode) .inventory-guidance > p,
.game-shell:not(.fusion-mode) .inventory-guidance > span { font-size: var(--decision-text); line-height: 1.6; }
.game-shell:not(.fusion-mode) .primary-control > small { font-size: var(--decision-text); }
.game-shell:not(.fusion-mode) .item-comparison { overflow-wrap: anywhere; }
.game-shell:not(.fusion-mode) .inventory-list .item-card { min-width: 0; }
.game-shell:not(.fusion-mode) .inventory-list .item-actions { flex-wrap: wrap; }
/* Short desktop windows scroll the tools with the cards, so readable copy
   cannot leave only a sliver of inventory. Pagination remains reachable. */
@media (min-width: 1100px) and (max-height: 900px) {
  .game-shell:not(.fusion-mode) .inventory-screen { overflow-y: auto; scrollbar-gutter: stable; scroll-padding-block: 8px 52px; }
  .game-shell:not(.fusion-mode) .inventory-screen > * { flex-shrink: 0; }
  .game-shell:not(.fusion-mode) .inventory-screen .inventory-list { flex: 0 0 auto; max-height: none; overflow: visible; }
  .game-shell:not(.fusion-mode) .inventory-pagination { position: sticky; bottom: 0; background: #080d13; z-index: 2; }
}
.game-shell .talent-readiness,
.game-shell .talent-preview :is(.talent-preview-note, .talent-preview-values b) { font-size: var(--decision-text); }
.game-shell .talent-preview { height: clamp(174px, 12rem, 240px); }
.talent-benefit { margin-top: 8px; font-size: var(--decision-text); line-height: 1.6; color: #d7dee3; }
.talent-benefit > strong { color: #f4d28c; }
.talent-benefit dl, .equip-health-review dl { margin: 4px 0; font-variant-numeric: tabular-nums; }
.talent-benefit dl > div, .equip-health-review dl > div { display: flex; flex-wrap: wrap; justify-content: space-between; gap: 4px 16px; }
.talent-benefit dd, .equip-health-review dd { margin: 0; }
.talent-benefit p { margin: 4px 0; }
.talent-benefit .talent-benefit-warning { color: #f4d28c; }
.talent-preview:focus-visible { outline: 2px solid #f4d28c; outline-offset: -2px; }
.talent-preview-heading { position: sticky; top: -.65rem; z-index: 2; padding-block: .3rem; background: #0d1116; }
.talent-preview-heading [data-action="talent-invest"] { flex-shrink: 0; min-height: 36px; font-size: var(--decision-text); }
.destiny-screen [data-talent-preview][aria-pressed="true"] { outline: 2px solid #f4d28c; outline-offset: 4px; }
.destiny-screen [data-investment="0"] .talent-node-investment { color: #bac3ca; border-color: #626a70; background: #0d1116; }
.game-dialog:has(.save-replacement-review) { width: min(680px, calc(100vw - 32px)); max-width: none; }
.save-replacement-review { font-size: var(--decision-text); line-height: 1.7; color: #d7dee3; overflow-wrap: anywhere; }
.save-replacement-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 20px; }
.save-replacement-grid h3 { color: #f4dfb3; font-size: var(--decision-heading); margin: 0 0 8px; }
.save-replacement-grid dl { margin: 0; font-variant-numeric: tabular-nums; }
.save-replacement-grid dl > div { display: flex; flex-wrap: wrap; justify-content: space-between; gap: 4px 12px; }
.save-replacement-grid dd { margin: 0; }
.save-replacement-backup { padding-top: 12px; border-top: 1px solid #626a70; }
.save-replacement-backup button { min-height: 40px; font-size: var(--decision-text); }
.save-replacement-backup p { margin-bottom: 0; }
.game-dialog:has(.save-replacement-review) .dialog-buttons { flex-wrap: wrap; gap: 8px; }
@media (max-width: 600px) {
  .save-replacement-grid { grid-template-columns: minmax(0, 1fr); gap: 16px; }
  .talent-preview-heading [data-action="talent-invest"], .save-replacement-backup button { min-height: 44px; }
}
.game-dialog:has(.equip-health-review) { width: min(620px, calc(100vw - 32px)); max-width: none; }
.game-dialog .equip-health-review { font-size: var(--decision-text); line-height: 1.7; overflow-wrap: anywhere; }
.game-dialog:has(.equip-health-review) .dialog-buttons { flex-wrap: wrap; gap: 8px; }
.game-dialog:has(.equip-health-review) .dialog-buttons button { white-space: normal; }

/* The existing protected confirmation, with native checkboxes and disclosure
   controls. Paging rebuilds only the rows; selection lives in the review. */
.game-dialog:has(.salvage-review-list) { width: min(760px, calc(100vw - 32px)); max-width: none; padding: 20px; }
.game-dialog:has(.salvage-review-list) .confirmation-copy { margin: 12px 0; font-size: var(--decision-text); color: #c8d3dc; }
.salvage-list.salvage-review-list { list-style: none; max-height: 44svh; padding: 0 8px 0 0; font-size: var(--decision-text); }
.salvage-review-item { padding: 12px 0; border-bottom: 1px solid #46525c; }
.salvage-review-item > label { display: flex; align-items: flex-start; gap: 10px; min-height: 28px; cursor: pointer; color: #e8eef2; }
.salvage-review-item input { flex: 0 0 auto; width: 20px; height: 20px; margin: 1px 0 0; accent-color: #dfbd77; }
.salvage-review-item input:focus-visible,
.salvage-review-item summary:focus-visible { outline: 2px solid #dfbd77; outline-offset: 3px; }
.salvage-review-item details { margin: 4px 0 0 30px; }
.salvage-review-item summary { cursor: pointer; min-height: 28px; color: #d2bc8b; }
.salvage-review-item details > p { color: #c8d3dc; margin: 6px 0; overflow-wrap: anywhere; }
.salvage-review-item .item-comparison { display: block; }
#salvage-review-summary { border-top: 1px solid #657581; margin-top: 12px; padding-top: 10px; }
.game-dialog:has(.salvage-review-list) :is(.review-pagination, .dialog-buttons) { flex-wrap: wrap; gap: 8px; }
.game-dialog:has(.salvage-review-list) button { font-size: var(--decision-text); min-height: 36px; }
@media (max-width: 600px) {
  .game-shell:not(.fusion-mode) .inventory-reclaim { flex-wrap: wrap; }
  .game-dialog:has(.salvage-review-list) { padding: 16px; }
  .salvage-review-item > label, .salvage-review-item summary { min-height: 44px; }
}
