/* Catalog styles stay scoped so the main compositor keeps its existing geometry. */
.card-library{margin-top:34px;scroll-margin-top:24px}
.card-library-heading{display:flex;justify-content:space-between;align-items:flex-end;gap:20px;margin-bottom:17px}
.card-library-heading .eyebrow{font-size:9px;margin-bottom:6px}
.card-library-heading h2{font-size:19px;font-weight:500;letter-spacing:-.04em;margin:0}
.card-library-intro{color:var(--muted,#a2a49b);font-size:11px;margin:0 0 2px}
.card-library-filters{display:grid;grid-template-columns:minmax(180px,2fr) minmax(110px,1fr) minmax(110px,1fr) auto;gap:12px;align-items:end;padding:17px 18px;border:1px solid var(--line,#343930);border-radius:10px;background:var(--panel,#191e19)}
.card-library-filters label{min-width:0;font-size:11px;color:#bcc2b6}
.card-library-filters input,.card-library-filters select{display:block;width:100%;height:39px;margin-top:5px;padding:0 11px;border:1px solid #414a3c;border-radius:6px;background:#222a22;color:var(--ink,#ece9e2);font-size:12px}
.card-library-filters input::placeholder{color:#8c9684}
.card-library-filters input::-webkit-search-cancel-button{cursor:pointer}
.card-library-reset{min-height:39px;padding:7px 12px;border:1px solid #4b5141;border-radius:6px;background:#2b3125;color:#d0ccb9;font-size:11px;white-space:nowrap}
.card-library-reset:disabled{cursor:default;color:#75806c;border-color:#343d2e;background:transparent}
.card-library-status{display:flex;justify-content:space-between;align-items:baseline;gap:14px;margin:12px 2px 14px;min-height:19px}
.card-library-count{flex:none;margin:0;font-size:12px;color:#d0c3a4;font-variant-numeric:tabular-nums}
.card-library-selection{margin:0;font-size:10px;color:#a8b29d;text-align:right;overflow-wrap:anywhere}
.card-library-grid{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:17px 14px}
.card-library-card{display:flex;flex-direction:column;min-width:0;padding:0;overflow:hidden;border:1px solid #36412f;border-radius:9px;background:#192017;text-align:left;color:var(--ink,#ece9e2);cursor:pointer;transition:border-color .16s,background .16s}
.card-library-card:hover{border-color:#a18f68;background:#222a1d}
.card-library-card[aria-pressed=true]{border-color:#d2b679;background:#2c3423;box-shadow:0 0 0 1px #bfa56c66}
.card-library-card:active{transform:none}
.card-library-card:focus-visible{outline:2px solid #e0c386;outline-offset:4px}
.card-library-portrait{display:block;position:relative;aspect-ratio:2/3;width:100%;overflow:hidden;background:#293027;border-bottom:1px solid #36412f}
.card-library-portrait img{display:block;width:100%;height:100%;object-fit:cover;user-select:none;pointer-events:none}
.card-library-portrait.is-unavailable::before{content:'원화 확인 중';position:absolute;inset:0;display:grid;place-items:center;color:#a9b29f;font-size:11px}
.card-library-badges{position:absolute;display:flex;justify-content:space-between;align-items:center;left:7px;right:7px;top:7px;gap:5px;pointer-events:none}
.card-library-rarity-badge,.card-library-type-badge{display:block;border:1px solid #c1b08366;border-radius:4px;background:#172017e8;box-shadow:0 1px 4px #0004;color:#e5d9b8;line-height:1.35}
.card-library-rarity-badge{padding:3px 6px;font-family:Bitter,Georgia,serif;font-weight:700;font-size:12px;font-variant-numeric:tabular-nums}
.card-library-type-badge{padding:4px 6px;font-size:10px;font-weight:500}
.card-library-card[data-rarity=UR] .card-library-rarity-badge{color:#f4d47a;border-color:#d4af55b3}
.card-library-card[data-rarity=SR] .card-library-rarity-badge{color:#d7c3e7;border-color:#a99bb391}
.card-library-card[data-rarity=R] .card-library-rarity-badge{color:#b6cddd;border-color:#8babbc91}
.card-library-card-body{display:flex;flex:1;flex-direction:column;gap:4px;width:100%;padding:10px 10px 9px}
.card-library-name{font-size:12px;font-weight:650;line-height:1.5;word-break:keep-all;overflow-wrap:anywhere;color:#e5e3d7}
.card-library-identity{font-size:10px;line-height:1.5;color:#a7b29a}
.card-library-stats{display:flex;flex-wrap:wrap;gap:2px 9px;margin-top:3px;font-size:10px;line-height:1.6;color:#cbbd9d;font-variant-numeric:tabular-nums}
.card-library-id{margin-top:auto;padding-top:7px;font-size:9px;letter-spacing:.035em;color:#819074;overflow-wrap:anywhere}
.card-library-card[aria-pressed=true] .card-library-id{color:#a0ac91}
.card-library-empty{padding:42px 20px;border:1px dashed #46513d;border-radius:10px;background:#171e15;text-align:center}
.card-library-empty strong{font-size:14px;font-weight:500;color:#ddd7c6}
.card-library-empty p{margin:8px 0 0;color:#99a78b;font-size:12px}
@media(max-width:1150px){.card-library-grid{grid-template-columns:repeat(5,minmax(0,1fr))}}
@media(max-width:950px){.card-library-grid{grid-template-columns:repeat(4,minmax(0,1fr))}.card-library-heading{display:block}.card-library-intro{margin-top:6px}}
@media(max-width:760px){.card-library-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.card-library-filters{grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:10px 12px;padding:13px}.card-library-search-label{grid-column:1/-1}.card-library-reset{grid-column:1/-1;justify-self:end;min-height:32px;padding:5px 11px}.card-library-status{align-items:flex-start}}
@media(max-width:540px){.card-library{margin-top:28px}.card-library-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:13px 10px}.card-library-intro{font-size:10px}.card-library-selection{max-width:68%}.card-library-card-body{padding:9px}.card-library-name{font-size:12px}.card-library-filters label{font-size:10px}.card-library-filters input,.card-library-filters select{font-size:11px;height:37px}.card-library-badges{left:6px;right:6px;top:6px}}
@media(prefers-reduced-motion:reduce){.card-library-card{transition:none}}
