/* ================= Shared game-detail modal shell =================
   The dialog game-dropdown.js renders into: openPopModal() fills #popModalBody with
   formatChildRows() output (Population Report / VGP Estimate / shopping links / Recent Sales).

   These rules were written inline in collect.html and copied verbatim into showcase.html. This
   file is the third consumer's copy, hoisted so /aplusplus doesn't add a fourth. The other two
   pages still carry their inline versions ON PURPOSE:
     * collect.html's .pop-modal-* is the shell for FIVE dialogs on that page (pop report, edit
       item, price, registry, chart info) with page-specific overrides interleaved between the
       shared rules -- moving them is its own change with its own verification, not a side effect
       of an A++ card redesign.
     * showcase.html's is a verbatim copy of collect.html's and follows whatever collect does.
   When those two are consolidated, they link this file and delete their blocks; the values here
   are byte-identical to theirs, so nothing needs re-deciding.

   Do NOT add a mobile full-screen override, a border-radius or a sticky header. The first
   showcase version had all three and the modal read as a different component on a phone than the
   one on /collection. */
.pop-modal-overlay {
    display: none; position: fixed; inset: 0; z-index: 2000;
    background: rgba(0,0,0,0.8); align-items: flex-start; justify-content: center;
    padding: 40px 16px; overflow-y: auto;
}
.pop-modal-overlay.visible { display: flex; }
.pop-modal {
    background: #0f0f0f; border: 1px solid var(--neon-green);
    max-width: 900px; width: 100%; max-height: 90vh; overflow: hidden; overflow-y: auto;
}
.pop-modal-header {
    display: flex; align-items: center; justify-content: space-between;
    padding: 14px 18px; border-bottom: 1px solid rgba(var(--green-rgb),0.3);
}
.pop-modal-header h3 { margin: 0; color: var(--neon-green); font-size: 1rem; }
.pop-modal-close { position: relative; flex: 0 0 auto; width: 28px; height: 28px; padding: 0; box-sizing: border-box; border-radius: 50%; background: rgba(255,255,255,0.06); border: 1px solid rgba(255,255,255,0.22); color: var(--text, #e6ebf0); font-size: 0; cursor: pointer; transition: background .12s, border-color .12s, color .12s, transform .2s cubic-bezier(.34,1.2,.5,1); }
.pop-modal-close::before, .pop-modal-close::after { content: ""; position: absolute; top: 50%; left: 50%; width: 44%; height: 2px; border-radius: 2px; background: currentColor; }
.pop-modal-close::before { transform: translate(-50%, -50%) rotate(45deg); }
.pop-modal-close::after { transform: translate(-50%, -50%) rotate(-45deg); }
.pop-modal-close:hover { background: var(--ui-accent); border-color: var(--ui-accent); color: var(--accent-fg); transform: rotate(90deg); }
.pop-modal-close:active { transform: rotate(90deg) scale(.88); }
body.work-mode .pop-modal-close { background: rgba(0,0,0,0.05); border-color: rgba(0,0,0,0.22); color: #1c1c1c; }
.pop-modal-body { padding: 15px; }
body.work-mode .pop-modal { background: #fff; border-color: #d1d5db; }
body.work-mode .pop-modal-header { border-color: var(--border); }
body.work-mode .pop-modal-header h3 { color: #111; }
body.work-mode .pop-modal-body .variant-info-line { color: #555; }
.pop-modal-msg { color: #888; padding: 20px; text-align: center; }
