/*
 * Tuile de carte — identité Éther.
 *
 * L'illustration et le pied forment un seul volume (lueur + rareté sur
 * le stage). La grille d'accueil est .cards-grid.
 *
 * Structure :
 *   .card-tile--sceau.card-tile--{rareté} > .card-tile__stage
 *       > .card-tile__img-wrap > .card-tile__img
 *       + .card-tile__foot
 */

.card-tile--sceau {
    background: transparent;
    border: none;
    overflow: visible;
    --rarity-ring: rgba(180, 190, 255, 0.22);
    --rarity-glow: rgba(120, 130, 255, 0.16);
}

.card-tile--sceau:hover {
    z-index: 2;
}

.card-tile--sceau.card-tile--common { --rarity-ring: #8b929c; --rarity-glow: rgba(140, 146, 156, 0.14); }
.card-tile--sceau.card-tile--uncommon { --rarity-ring: var(--rarity-uncommon); --rarity-glow: rgba(107, 155, 209, 0.32); }
.card-tile--sceau.card-tile--rare { --rarity-ring: var(--rarity-rare); --rarity-glow: rgba(201, 162, 39, 0.32); }
.card-tile--sceau.card-tile--mythic { --rarity-ring: var(--rarity-mythic); --rarity-glow: rgba(232, 93, 4, 0.35); }

.card-tile__stage {
    display: flex;
    flex-direction: column;
    overflow: hidden;
    border-radius: var(--radius-card-art);
    background: #0e0c14;
    box-shadow:
        0 0 0 1px var(--rarity-ring),
        0 14px 30px rgba(0, 0, 0, 0.6),
        0 0 calc(34px * var(--glow-strength)) var(--rarity-glow);
    transition:
        transform 0.4s cubic-bezier(0.22, 1, 0.36, 1),
        box-shadow 0.4s ease;
}

.card-tile__img-wrap {
    position: relative;
    aspect-ratio: 488 / 680;
    margin: 0;
    background: var(--surface);
    overflow: hidden;
    isolation: isolate;
    border-radius: 0;
    box-shadow: none;
}

.card-tile__img-wrap::before {
    display: none;
}

.card-tile--sceau:hover .card-tile__stage {
    transform: translateY(-8px);
    box-shadow:
        0 0 0 1px rgba(200, 210, 255, 0.38),
        0 22px 42px rgba(0, 0, 0, 0.62),
        0 0 calc(52px * var(--glow-strength)) var(--rarity-glow);
}

.card-tile--over-committed .card-tile__stage {
    box-shadow:
        0 0 0 2px var(--warn),
        0 14px 30px rgba(0, 0, 0, 0.6),
        0 0 calc(28px * var(--glow-strength)) var(--tint-warn-strong);
}

.card-tile--in-deck .card-tile__stage {
    box-shadow:
        0 0 0 1px var(--rarity-ring),
        0 0 0 3px var(--edge-deck),
        0 14px 30px rgba(0, 0, 0, 0.6),
        0 0 calc(34px * var(--glow-strength)) var(--rarity-glow);
}

/*
 * En registre travail le miroitement est figé : la carte reste identifiable
 * comme foil, mais rien ne bouge pendant qu'on trie une collection entière.
 */
.card-tile--foil .card-tile__img-wrap::after {
    content: '';
    position: absolute;
    inset: 0;
    background: linear-gradient(
        125deg,
        transparent 30%,
        rgba(255, 200, 255, 0.12) 42%,
        rgba(180, 255, 255, 0.18) 50%,
        rgba(255, 220, 180, 0.12) 58%,
        transparent 70%
    );
    background-size: 200% 200%;
    animation: var(--foil-animation);
    opacity: var(--foil-opacity);
    pointer-events: none;
    z-index: 2;
    border-radius: 0;
}

@keyframes card-foil-shimmer {
    0%, 100% { background-position: 0% 50%; }
    50% { background-position: 100% 50%; }
}

.card-tile__img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center top;
    display: block;
    position: relative;
    z-index: 1;
    border-radius: 0;
}

/* Badge quantité de repli, quand le compteur interactif n'est pas rendu. */
.card-tile__qty {
    position: absolute;
    top: 0.6rem;
    right: 0.6rem;
    z-index: 3;
    min-width: 1.7rem;
    height: 1.45rem;
    padding: 0.12rem 0.45rem;
    display: grid;
    place-items: center;
    border-radius: var(--radius-pill);
    background: rgba(12, 12, 26, 0.78);
    backdrop-filter: blur(8px);
    border: 1px solid rgba(180, 190, 255, 0.22);
    box-shadow: none;
    font-family: var(--font-heading);
    font-size: var(--fs-2xs);
    font-weight: 600;
    color: var(--gold-bright);
    text-shadow: none;
    pointer-events: none;
    letter-spacing: 0.02em;
}

.card-tile__foot {
    --loc-accent: #9eb0ff;
    --pill-ink: #c8d8ff;
    --pill-page: #7ef0dc;
    --pill-slot: #c8b4ff;
    --foot-name: #f4f6ff;
    --foot-qty: #ffd45a;
    --foot-meta: #c8d4e8;
    --foot-price: #ffd45a;
    --foot-decks: #7ec8ff;
    --foot-remove: #ff8a82;
    display: flex;
    flex-direction: column;
    align-items: stretch;
    gap: 0.22rem;
    margin: -0.7rem 0 0;
    padding: 0.65rem 0.6rem 0.4rem 0.7rem;
    position: relative;
    z-index: 2;
    border-radius: 0.55rem 0.55rem 0 0;
    border: 0;
    background: linear-gradient(180deg, rgba(14, 12, 22, 0.9) 0%, rgba(10, 8, 16, 0.96) 100%);
    box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.1);
    backdrop-filter: blur(12px);
}

.card-tile__foot.card-tile__loc--rouge { --loc-accent: #b04038; --pill-ink: #ffe4a8; }
.card-tile__foot.card-tile__loc--bleu { --loc-accent: #1c6ea8; --pill-ink: #ffe08a; }
.card-tile__foot.card-tile__loc--turquoise { --loc-accent: #0e7a6c; --pill-ink: #fff4c4; }
.card-tile__foot.card-tile__loc--vert { --loc-accent: #1c7a44; --pill-ink: #ffe08a; }
.card-tile__foot.card-tile__loc--blanc { --loc-accent: #f2f0ea; --pill-ink: #3a4a9a; --pill-page: #0c6e66; --pill-slot: #5a3d9c; }
.card-tile__foot.card-tile__loc--noir { --loc-accent: #2c2c30; --pill-ink: #ffd45a; }
.card-tile__foot.card-tile__loc--artifact { --loc-accent: #6e5a28; --pill-ink: #ffe9b0; }
.card-tile__foot.card-tile__loc--generic { --loc-accent: #3a4480; --pill-ink: #ffe08a; }
.card-tile__foot.card-tile__loc--none { --loc-accent: #3a3a58; --pill-ink: #c8d0ff; }

.card-tile__loc-row {
    display: flex;
    align-items: flex-start;
    gap: 0.5rem;
}

.card-tile__foot-row {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 0.3rem;
}

.card-tile__location {
    flex: 1 1 auto;
    min-width: 0;
    display: flex;
    flex-wrap: wrap;
    align-items: baseline;
    column-gap: 0.4rem;
    row-gap: 0.06rem;
    box-sizing: border-box;
    padding: 0;
    border: 0;
    border-radius: 0;
    background: transparent;
    box-shadow: none;
    font-family: var(--font-body);
    font-size: var(--fs-xs);
    line-height: 1.25;
    color: var(--text-card);
    text-align: left;
    cursor: pointer;
}

.card-tile__location:hover .card-tile__loc-binder {
    filter: brightness(1.12);
    text-decoration: underline;
    text-underline-offset: 0.15em;
}

.card-tile__loc-binder {
    min-width: 0;
    font-family: var(--font-heading);
    font-size: var(--fs-sm);
    font-weight: 700;
    letter-spacing: 0.02em;
    color: var(--foot-name);
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.card-tile__loc-qty {
    padding: 0;
    border: 0;
    background: none;
    color: var(--foot-qty);
    font-weight: 700;
    font-size: 0.8rem;
    line-height: 1.2;
    white-space: nowrap;
}

.card-tile__loc-meta {
    flex: 1 0 100%;
    display: flex;
    flex-wrap: nowrap;
    align-items: center;
    justify-content: center;
    gap: 0.28rem;
    overflow: hidden;
    color: var(--foot-meta);
}

.card-tile__loc-sep {
    display: none;
}

.card-tile__loc-detail {
    padding: 0.14rem 0.48rem;
    border-radius: 999px;
    border: 1px solid color-mix(in srgb, var(--loc-accent) 70%, #000);
    background: var(--loc-accent);
    color: var(--pill-ink);
    font-weight: 700;
    font-size: 0.72rem;
    letter-spacing: 0.01em;
    white-space: nowrap;
}

.card-tile__loc-detail--page {
    color: var(--pill-page);
}

.card-tile__loc-detail--slot {
    color: var(--pill-slot);
}

.card-tile__loc-text {
    padding: 0.14rem 0.48rem;
    border-radius: 999px;
    border: 1px dashed color-mix(in srgb, var(--loc-accent) 55%, #fff);
    background: var(--loc-accent);
    font-weight: 600;
    font-size: 0.75rem;
    font-style: italic;
    color: var(--pill-ink);
    white-space: nowrap;
}

.card-tile__loc-detail + .card-tile__loc-detail::before {
    content: none;
}

.card-tile__loc-detail--warn {
    --loc-accent: #6a5420;
    --pill-ink: #ffe08a;
}

.card-tile__loc--none .card-tile__loc-text {
    font-size: 0.75rem;
}

.card-tile__decks {
    flex: 1 1 auto;
    min-width: 0;
    padding: 0;
    font-family: var(--font-heading);
    font-size: var(--fs-xs);
    font-weight: 700;
    line-height: 1.3;
    color: var(--foot-decks);
    background: none;
    border: 0;
    overflow-wrap: anywhere;
}

.card-tile__decks--warn {
    background: none;
    border: 0;
    color: #fde68a;
}

.card-tile__price {
    flex: 0 0 auto;
    align-self: start;
    min-width: 0;
    min-height: 0;
    margin: 0;
    padding: 0.05rem 0 0;
    display: flex;
    align-items: flex-start;
    justify-content: flex-end;
    border-radius: 0;
    background: none;
    border: 0;
    box-shadow: none;
    font-family: var(--font-heading);
    font-size: var(--fs-sm);
    font-weight: 700;
    color: var(--foot-price);
    line-height: 1.2;
    white-space: nowrap;
    cursor: pointer;
    text-decoration: none;
    text-shadow: none;
}

.card-tile__price--link {
    text-decoration: none;
}

.card-tile__price:hover {
    filter: brightness(1.12);
}

.card-tile__remove-btn {
    width: 100%;
    margin: 0.12rem 0 0;
    min-height: 0;
    padding: 0.38rem 0 0.08rem;
    border: 0;
    border-top: 1px solid rgba(255, 255, 255, 0.1);
    border-radius: 0;
    background: none;
    box-shadow: none;
    color: var(--foot-remove);
    font-family: var(--font-body);
    font-size: var(--fs-xs);
    font-weight: 700;
    font-style: normal;
    letter-spacing: 0.04em;
    cursor: pointer;
    clip-path: none;
}

.card-tile__remove-btn--inline {
    width: auto;
    margin-left: 0.35rem;
    margin-top: 0;
    min-height: 1.85rem;
    border-top: 0;
    border-radius: var(--radius-sm);
    font-size: 0.75rem;
    padding: 0.3rem 0.55rem;
    background-color: #2a1218;
    color: #ffc4c0;
}

.card-tile__remove-btn:hover {
    filter: brightness(1.12);
    background: none;
    box-shadow: none;
}

.card-tile__remove-btn--inline:hover {
    background-color: #3a1820;
}

.card-tile__tags {
    display: flex;
    flex-wrap: wrap;
    gap: 0.2rem;
    margin: 0.1rem 0 0;
}

.card-tag {
    font-size: var(--fs-2xs);
    padding: 0.1rem 0.4rem;
    border-radius: var(--radius-pill);
    background: color-mix(in srgb, var(--tag-color, #7c4dff) 25%, transparent);
    border: 1px solid var(--tag-color, #7c4dff);
}

/* Emplacement d'image vide : garde la place pour ne pas faire sauter la grille. */
.card-placeholder {
    width: 100%;
    height: 100%;
    display: grid;
    place-items: center;
    color: var(--text-muted);
    font-size: 0.75rem;
    text-align: center;
    padding: 0.5rem;
    border-radius: 0;
    background: var(--surface);
}
