/* Shared library: existing panel material, badges and standard button family. */
#loadGameModal .modal-dialog { max-width: 760px; margin: 5vh auto; padding: 0 1rem; }
#loadGameModal .save-modal-content,
.in-game-load-panel {
    display: flex;
    flex-direction: column;
    max-height: 90dvh;
    height: min(80dvh, 760px);
    overflow: hidden;
}
/* Like person/resource details, fade the overlay without moving the panel. */
#loadGameModal.fade .modal-dialog,
#loadGameModal.show .modal-dialog,
#inGameLoadOverlay .in-game-load-panel,
#inGameLoadOverlay.open .in-game-load-panel {
    transform: none;
    transition: none;
    opacity: 1;
}
#loadGameModal .save-modal-content,
#inGameLoadOverlay .in-game-load-panel {
    background: rgba(12, 17, 24, .98);
    border: 1px solid rgba(255, 255, 255, .12);
    border-radius: 16px;
    box-shadow: 0 24px 64px rgba(0, 0, 0, .6), 0 0 0 1px rgba(255,255,255,.04) inset;
    backdrop-filter: none;
    -webkit-backdrop-filter: none;
}
#loadGameModal.fade,
#inGameLoadOverlay {
    transition: opacity .18s ease;
    background: rgba(2, 7, 13, .76);
    backdrop-filter: blur(9px);
    -webkit-backdrop-filter: blur(9px);
}
.in-game-load-panel { width: min(760px, calc(100vw - 2rem)); padding: 0; }
#loadGameModal .save-modal-header,
.in-game-load-panel .settings-modal-header { padding: 1.25rem 1.5rem; margin: 0; flex-shrink: 0; border-bottom: 1px solid var(--border-color); }
#loadGameModal .modal-title,
.in-game-load-panel .settings-modal-title { font-size: 1.25rem; font-weight: 700; }
#loadGameModal .save-modal-body,
.in-game-load-panel .settings-modal-body { padding: 1rem; flex: 1; min-height: 0; max-height: none; overflow-y: auto; overflow-x: hidden; overscroll-behavior: contain; scrollbar-gutter: stable; }
#savedGamesList, #inGameSavedGamesList { display: grid; gap: .75rem; min-width: 0; }
.save-library-row { min-width: 0; padding: 1.25rem; border: 1px solid var(--border-color); border-radius: var(--radius-card); background: rgba(0,0,0,.24); box-shadow: var(--shadow-sm); transition: border-color .15s ease; }
.save-library-row:focus-within, .save-library-row:hover { border-color: var(--color-neutral); }
.save-library-row.is-current { border-color: var(--primary-color); }
.save-library-beat { margin: -.25rem 0 .4rem auto; max-width: 65%; text-align: right; text-shadow: 0 2px 10px rgba(0,0,0,.5); }
.save-library-beat span { display: block; color: var(--text-muted); font-size: .65rem; font-weight: 700; text-transform: uppercase; letter-spacing: .06em; }
.save-library-beat strong { display: block; color: var(--text-primary); font-size: .95rem; line-height: 1.4; overflow-wrap: anywhere; }
@media (max-width: 480px) { .save-library-beat { max-width: 100%; } }
.save-library-row { position: relative; isolation: isolate; overflow: hidden; }
.save-library-art {
    position: absolute;
    z-index: -1;
    inset: 0 0 0 auto;
    width: 65%;
    height: 100%;
    object-fit: cover;
    pointer-events: none;
    opacity: .45;
    mask-image: linear-gradient(to right, transparent, #000 85%);
    -webkit-mask-image: linear-gradient(to right, transparent, #000 85%);
}
.save-library-identity { display: flex; align-items: center; gap: .85rem; min-width: 0; }
.save-library-flag { width: 54px; height: 36px; object-fit: contain; flex-shrink: 0; border: 1px solid var(--border-color); border-radius: var(--radius-tag); }
.save-library-copy { min-width: 0; flex: 1; }
.save-library-title { display: flex; flex-wrap: wrap; gap: .5rem; align-items: center; }
.save-library-title h3 { margin: 0; font-size: 1.1rem; font-weight: 700; overflow-wrap: anywhere; }
.save-library-copy p { margin: .2rem 0 0; color: var(--text-muted); font-size: .85rem; overflow-wrap: anywhere; }
.save-library-context { display: flex; align-items: center; flex-wrap: wrap; gap: .75rem; margin: 1rem 0; color: var(--text-secondary); font-size: .85rem; }
.save-library-context > span { display: inline-flex; align-items: center; gap: .4rem; }
.save-library-footer { display: flex; justify-content: space-between; align-items: flex-end; gap: .75rem; }
.save-library-footer small { color: var(--text-muted); font-size: .75rem; }
.save-library-controls { display: flex; align-items: center; gap: .5rem; flex-shrink: 0; }
.save-library-controls .btn { display: inline-flex; align-items: center; justify-content: center; gap: .5rem; min-height: 40px; padding: .5rem .8rem; font-size: .85rem; box-shadow: none; }
.save-library-controls .save-library-delete { color: var(--color-negative); border: 1px solid var(--color-negative-border); background: transparent; }
.save-library-controls .save-library-delete:hover { color: var(--color-negative); border-color: var(--color-negative); background: var(--color-negative-bg); }
@media (max-width: 480px) {
    .save-library-row { padding: 1rem; }
    .save-library-footer { align-items: flex-start; flex-direction: column; }
    .save-library-controls { align-self: flex-end; }
    #loadGameModal .save-modal-header, .in-game-load-panel .settings-modal-header { padding: 1rem; }
}
