/* Collections Pokémon GO - Front
   S'appuie sur les classes et variables du système CSS (FRONT_CSS.md, CSS_RULES.md, CSS_SYSTEM.md).
   Variables globales front : css/variables.css (--me5rine-lab-*). Pas de --admin-lab-* ici (réservé admin).
   Utilise me5rine-lab-dashboard, me5rine-lab-title-*, me5rine-lab-form-*, me5rine-lab-card, etc.
   Ce fichier ne définit que le spécifique : grille cartes 16:9, overlay carte, modal, tuiles Pokémon, légende, bloc recherche GO in-game (copy-paste). */

:root {
    --pokehub-collections-card-gradient-start: var(--me5rine-lab-primary, #2c5282);
    --pokehub-collections-card-gradient-mid: var(--me5rine-lab-secondary, #2b6cb0);
    --pokehub-collections-card-gradient-end: var(--me5rine-lab-secondary, #3182ce);
    --pokehub-collections-card-overlay: rgba(0, 0, 0, 0.7);
    --pokehub-collections-modal-backdrop: rgba(0, 0, 0, 0.5);
    /* Fond sprite des tuiles : gris bleuté léger pour faire ressortir halo Obscur / Purifié / Dynamax. */
    --pokehub-collection-tile-figure-bg: #e4eaf2;
    --pokehub-collection-tile-figure-bg-bottom: #d6dee8;
    /* Contour tuile : un peu plus lisible que --me5rine-lab-border seul. */
    --pokehub-collection-tile-border-width: 2px;
    --pokehub-collection-tile-border: color-mix(in srgb, var(--me5rine-lab-text-muted, #8896a6) 24%, var(--me5rine-lab-border, #dee5ec));
    --pokehub-collection-tile-border-hover: color-mix(in srgb, var(--me5rine-lab-text-muted, #8896a6) 38%, var(--me5rine-lab-border-light, #b5c2cf));
    /* Pastille lisible derrière chromatique, méga, dynamax, etc. */
    --pokehub-collection-tile-badge-bubble-bg: rgba(255, 255, 255, 0.94);
    --pokehub-collection-tile-badge-bubble-ring: rgba(15, 23, 42, 0.16);
    --pokehub-collection-tile-badge-bubble-shadow: 0 1px 3px rgba(15, 23, 42, 0.16);
}

/* --- Masquage conditionnel (JS) --- */
.pokehub-collections-anonymous-banner.is-hidden,
.pokehub-collections-options-additive.is-hidden,
#pokehub-collection-content-filter-wrap.is-hidden,
#pokehub-collection-content-filter-wrap label[data-collections-control].is-hidden,
.pokehub-collections-form-edit label[data-collections-control].is-hidden,
.pokehub-collections-options-specific-hint.is-hidden,
.pokehub-collection-filter-empty-hint.is-hidden,
.pokehub-collection-display-filter-empty-hint.is-hidden,
.pokehub-collection-name-search-loading-hint.is-hidden,
.pokehub-collection-name-search-empty-hint.is-hidden,
.pokehub-collection-search-index-error.is-hidden,
#pokehub-collection-refine-block.is-hidden,
.pokehub-collections-drawer-body .me5rine-lab-form-field.is-hidden {
    display: none;
}

/* --- Page liste : dashboard --- */
.pokehub-collections-wrapper.me5rine-lab-dashboard {
    margin: var(--me5rine-lab-spacing-xl) 0;
    padding: 0 var(--me5rine-lab-spacing-xl);
    box-sizing: border-box;
    overflow: visible;
}

@media (max-width: 1024px) {
    .pokehub-collections-wrapper.me5rine-lab-dashboard {
        margin: 0;
        padding: var(--me5rine-lab-spacing-lg, 1.25rem);
    }
}

@media (max-width: 782px) {
    .pokehub-collections-wrapper.me5rine-lab-dashboard {
        margin: 0;
        padding: 0;
    }
}

.pokehub-collections-wrapper .pokehub-collection-view-wrap {
    overflow: visible;
}

.pokehub-collections-wrap.me5rine-lab-dashboard {
    max-width: 1200px;
    margin: var(--me5rine-lab-spacing-xl) auto;
}

/* Header liste collections : Module Intro (global) + meta (quotas/CTA) */
.pokehub-collections-wrap .me5rine-lab-module-intro {
    margin-bottom: var(--me5rine-lab-spacing-md, 1rem);
}

.pokehub-collections-home-hero__subtitle {
    margin: 0;
    text-align: left;
    text-transform: none;
    letter-spacing: normal;
}

.pokehub-collections-account-quotas--compact {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 0.3rem;
    padding: 0;
    margin: 0;
    border: 0;
    border-radius: 0;
    background: transparent;
    font-size: 0.8125rem;
    line-height: 1.3;
    color: var(--me5rine-lab-text, #24292f);
    overflow: visible;
}

.pokehub-collections-account-quotas--compact .pokehub-collections-account-quotas__heading {
    margin: 0;
    font-size: 0.6875rem;
    font-weight: 700;
    line-height: 1.2;
    letter-spacing: 0.06em;
    text-transform: uppercase;
    color: var(--me5rine-lab-text-light, #656d76);
    white-space: nowrap;
}

.pokehub-collections-account-quotas--compact .pokehub-collections-account-quotas__list {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.3rem;
    margin: 0;
    padding: 0;
    list-style: none;
    width: 100%;
    max-width: 100%;
}

.pokehub-collections-account-quotas--compact .pokehub-collections-account-quotas__pill {
    display: inline-flex;
    align-items: center;
    margin: 0;
    padding: 0.15rem 0.5rem;
    font-size: 0.71875rem;
    font-weight: 600;
    line-height: 1.35;
    border-style: solid;
    border-width: 1px;
    border-radius: 999px;
    white-space: nowrap;
}

.pokehub-collections-account-quotas--compact .pokehub-collections-account-quotas__pill.is-ok {
    background: var(--lab-ds-status-ok-bg, var(--me5rine-lab-success-bg, #edfaef));
    color: var(--lab-ds-status-ok, var(--me5rine-lab-success, #00a32a));
    border-color: var(--lab-ds-status-ok, var(--me5rine-lab-success, #00a32a));
}

.pokehub-collections-account-quotas--compact .pokehub-collections-account-quotas__pill.is-warning {
    background: var(--lab-ds-status-warning-bg, var(--me5rine-lab-warning-bg, #fff8e5));
    color: var(--lab-ds-status-warning, var(--me5rine-lab-warning, #dba617));
    border-color: var(--lab-ds-status-warning, var(--me5rine-lab-warning, #dba617));
}

.pokehub-collections-account-quotas--compact .pokehub-collections-account-quotas__pill.is-danger,
.pokehub-collections-account-quotas--compact .pokehub-collections-account-quotas__pill.is-limited {
    background: var(--lab-ds-status-error-bg, var(--me5rine-lab-error-bg, #fcf0f1));
    color: var(--lab-ds-status-error, var(--me5rine-lab-error, #d63638));
    border-color: var(--lab-ds-status-error, var(--me5rine-lab-error, #d63638));
}

.pokehub-collections-account-quotas--compact .pokehub-collections-account-quotas__cta {
    margin: 0 !important;
    flex: 0 0 auto;
    white-space: nowrap;
}

.pokehub-collections-guest-home-notice.me5rine-lab-form-message {
    align-items: flex-start;
    margin-bottom: 0 !important;
}

.pokehub-collections-guest-home-notice__inner {
    flex: 1;
    min-width: 0;
}

.pokehub-collections-guest-home-notice__inner > p,
.pokehub-collections-guest-home-notice__inner [data-guest-notice="limited"] > p {
    margin: 0;
}

.pokehub-collections-guest-home-notice__actions {
    display: flex;
    flex-wrap: wrap;
    gap: 0.5rem;
    margin: 0 !important;
    flex: none;
}

.pokehub-collections-home-hero__actions {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.5rem;
}

.pokehub-collections-home-hero__actions .pokehub-collections-btn-create.is-disabled,
.pokehub-collections-home-hero__actions .pokehub-collections-btn-create.is-disabled:hover {
    opacity: 0.55;
    cursor: not-allowed;
    pointer-events: none;
}

.pokehub-collections-wrap .me5rine-lab-dashboard-header {
    display: flex;
    flex-direction: row;
    justify-content: space-between;
    align-items: center;
    gap: var(--me5rine-lab-spacing-sm, 10px);
    margin-bottom: 0;
}

.pokehub-collections-wrap .pokehub-collections-home-header > .me5rine-lab-title-large {
    text-align: left;
}

.pokehub-collections-wrap .me5rine-lab-dashboard-header .me5rine-lab-subtitle {
    flex: 1;
    min-width: 0;
    margin: 0;
    text-align: left;
    text-transform: none;
    letter-spacing: normal;
}

.pokehub-collections-wrap .me5rine-lab-dashboard-header .me5rine-lab-dashboard-header-actions {
    flex: 0 0 auto;
}

.pokehub-collections-wrap .pokehub-collections-home-header-content {
    min-width: 0;
}

/* Bannière collections anonymes : réutilise me5rine-lab-form-message* */
.pokehub-collections-anonymous-banner-text {
    margin: 0 0 var(--me5rine-lab-spacing-xs, 0.25rem) 0;
    font-weight: 600;
}

.pokehub-collections-anonymous-list {
    margin: var(--me5rine-lab-spacing-xs, 0.25rem) 0 var(--me5rine-lab-spacing-sm, 0.5rem) 0;
    padding-left: 1.25rem;
}

.pokehub-collections-anonymous-actions {
    margin: var(--me5rine-lab-spacing-sm, 0.5rem) 0 0 0;
}

.pokehub-collections-anonymous-actions .button {
    margin-right: var(--me5rine-lab-spacing-sm, 0.5rem);
}

.pokehub-collections-list {
    margin-top: var(--me5rine-lab-spacing-md, 1rem);
}

/* --- Grille de cartes (ratio 16:9, 3 colonnes) --- */
.pokehub-collections-grid {
    list-style: none;
    margin: 0;
    padding: 0;
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: var(--me5rine-lab-spacing-lg, 1.25rem);
}

@media (max-width: 900px) {
    .pokehub-collections-grid {
        grid-template-columns: repeat(2, 1fr);
    }
}

@media (max-width: 480px) {
    .pokehub-collections-grid {
        grid-template-columns: 1fr;
    }
}

/* Carte grille : surcharge me5rine-lab-card (ratio 16:9, pas de padding) */
.pokehub-collections-grid .me5rine-lab-card {
    margin: 0;
    position: relative;
    aspect-ratio: 16 / 9;
    border-radius: var(--me5rine-lab-radius-md, 10px);
    overflow: hidden;
    box-shadow: var(--me5rine-lab-shadow-sm, 0 2px 8px rgba(0, 0, 0, 0.1));
    padding: 0;
    border: none;
}

.pokehub-collections-card-link {
    display: block;
    position: absolute;
    inset: 0;
    text-decoration: none;
    color: var(--me5rine-lab-white, #fff);
    padding: var(--me5rine-lab-spacing-sm, 0.5rem) var(--me5rine-lab-spacing-md, 1rem);
}

.pokehub-collections-card-link:hover,
.pokehub-collections-card-link:focus-visible {
    text-decoration: none;
}

.pokehub-collections-wrap .pokehub-collections-card-link,
.pokehub-collections-wrap .pokehub-collections-card-link:hover,
.pokehub-collections-wrap .pokehub-collections-card-link:focus,
.pokehub-collections-wrap .pokehub-collections-card-link:focus-visible,
.pokehub-collections-wrap .pokehub-collections-card-link:active,
.pokehub-collections-wrap .pokehub-collections-card-link .me5rine-lab-card-name,
.pokehub-collections-wrap .pokehub-collections-card-link .me5rine-lab-card-meta {
    text-decoration: none !important;
}

.pokehub-collections-card-bg {
    position: absolute;
    inset: 0;
    background: linear-gradient(135deg, var(--pokehub-collections-card-gradient-start) 0%, var(--pokehub-collections-card-gradient-mid) 50%, var(--pokehub-collections-card-gradient-end) 100%);
    background-size: 115% auto;
    background-position: center 12%;
    z-index: 0;
    transition: filter 0.2s ease, transform 0.2s ease;
}

.pokehub-collections-card-link::after {
    content: '';
    position: absolute;
    inset: 0;
    background: linear-gradient(to top, var(--pokehub-collections-card-overlay) 0%, transparent 50%);
    z-index: 1;
}

/* Renfort de contraste sur la zone titre (haut/gauche). */
.pokehub-collections-card-link::before {
    content: '';
    position: absolute;
    inset: 0;
    z-index: 1;
    pointer-events: none;
    background:
        radial-gradient(120% 78% at 16% 11%, rgba(6, 12, 20, 0.6) 0%, rgba(6, 12, 20, 0.28) 38%, rgba(6, 12, 20, 0) 72%);
    transition: opacity 0.2s ease;
}

.pokehub-collections-grid .me5rine-lab-card-name,
.pokehub-collections-grid .me5rine-lab-card-meta {
    position: relative;
    z-index: 2;
    display: block;
    color: var(--me5rine-lab-white, #fff);
    text-shadow: 0 1px 2px rgba(0, 0, 0, 0.5);
    transition: color 0.2s ease, text-shadow 0.2s ease;
}

.pokehub-collections-grid .me5rine-lab-card-name {
    font-weight: 800;
    font-size: 1.08rem;
    letter-spacing: 0.04em;
    text-transform: uppercase;
    margin-bottom: 0.15rem;
}

.pokehub-collections-grid .me5rine-lab-card-meta {
    font-size: 0.72rem;
    opacity: 0.95;
    text-transform: none;
}

.pokehub-collections-grid .me5rine-lab-card:hover .pokehub-collections-card-bg,
.pokehub-collections-grid .me5rine-lab-card:focus-within .pokehub-collections-card-bg {
    filter: brightness(0.84);
}

.pokehub-collections-grid .me5rine-lab-card:hover .pokehub-collections-card-link::before,
.pokehub-collections-grid .me5rine-lab-card:focus-within .pokehub-collections-card-link::before {
    opacity: 1;
}

.pokehub-collections-grid .me5rine-lab-card:hover .me5rine-lab-card-name,
.pokehub-collections-grid .me5rine-lab-card:focus-within .me5rine-lab-card-name {
    color: color-mix(in srgb, var(--me5rine-lab-white, #fff) 84%, var(--me5rine-lab-text-muted, #9ca4ae));
    text-shadow: 0 1px 3px rgba(0, 0, 0, 0.62);
}

.pokehub-collections-grid .me5rine-lab-card:hover .me5rine-lab-card-meta,
.pokehub-collections-grid .me5rine-lab-card:focus-within .me5rine-lab-card-meta {
    color: color-mix(in srgb, var(--me5rine-lab-white, #fff) 82%, var(--me5rine-lab-text-muted, #9ca4ae));
    text-shadow: 0 1px 2px rgba(0, 0, 0, 0.58);
}

.pokehub-collections-card-progress {
    position: absolute;
    left: var(--me5rine-lab-spacing-md, 1rem);
    bottom: var(--me5rine-lab-spacing-sm, 0.5rem);
    z-index: 2;
    display: grid;
    gap: 0.18rem;
    min-width: 7rem;
}

.pokehub-collections-card-progress-stats {
    font-size: 0.72rem;
    font-weight: 700;
    color: var(--me5rine-lab-white, #fff);
    text-shadow: 0 1px 2px rgba(0, 0, 0, 0.45);
}

.pokehub-collections-card-progress-bar {
    display: block;
    width: 100%;
    height: 0.28rem;
    border-radius: 999px;
    overflow: hidden;
    background: rgba(255, 255, 255, 0.72);
}

.pokehub-collections-card-progress-fill {
    display: block;
    width: 0;
    height: 100%;
    border-radius: inherit;
    background: #161616;
}

/* Sections page collections (mes listes / publiques) */
.pokehub-collections-section {
    margin-top: var(--me5rine-lab-spacing-xl, 2rem);
}

/*
 * My collections — flat band (no form-block card): same horizontal inset as
 * Public collections so grid tiles stay aligned across sections.
 */
.pokehub-collections-section--mine {
    margin-top: var(--me5rine-lab-spacing-lg, 1.5rem);
    padding: var(--me5rine-lab-spacing-md, 1rem) 0 var(--me5rine-lab-spacing-lg, 1.5rem);
    background: color-mix(in srgb, var(--me5rine-lab-text, #11161e) 4%, var(--me5rine-lab-bg, #fff));
    border: 0;
    border-radius: 0;
    box-shadow: none;
}

.pokehub-collections-mine-header {
    margin-bottom: var(--me5rine-lab-spacing-md, 1rem);
}

.pokehub-collections-mine-heading {
    margin: 0;
    font-family: var(--me5rine-lab-font);
    font-size: 1.05rem;
    font-weight: 600;
    line-height: 1.25;
    text-transform: uppercase;
    color: var(--me5rine-lab-secondary);
}

.pokehub-collections-section--mine .pokehub-collections-list,
.pokehub-collections-section--mine .pokehub-collections-grid {
    margin-left: 0;
    margin-right: 0;
    padding-left: 0;
    padding-right: 0;
}

.pokehub-collections-section--public {
    margin-top: var(--me5rine-lab-spacing-xl, 2rem);
    padding-top: var(--me5rine-lab-spacing-md, 1rem);
    border-top: 1px solid var(--me5rine-lab-border, rgba(148, 163, 184, 0.35));
}

/* En-tête compact : titre + filtre sur une ligne */
.pokehub-collections-public-header {
    display: flex;
    flex-wrap: wrap;
    align-items: flex-end;
    justify-content: space-between;
    gap: 0.65rem 1.25rem;
    margin-bottom: var(--me5rine-lab-spacing-md, 1rem);
}

.pokehub-collections-public-header-text {
    flex: 1 1 12rem;
    min-width: 0;
}

.pokehub-collections-public-heading {
    margin: 0 0 0.2rem;
    font-family: var(--me5rine-lab-font);
    font-size: 1.05rem;
    font-weight: 600;
    line-height: 1.25;
    text-transform: uppercase;
    color: var(--me5rine-lab-secondary);
}

.pokehub-collections-public-description {
    margin: 0;
    font-size: 0.8125rem;
    line-height: 1.35;
    color: var(--me5rine-lab-text-light);
    text-transform: none;
    letter-spacing: normal;
}

.pokehub-collections-public-filter-form {
    flex: 0 1 auto;
    margin: 0;
}

.pokehub-collections-public-filter-controls {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.45rem;
}

.pokehub-collections-public-filter-controls .me5rine-lab-form-select {
    min-width: 9.5rem;
    max-width: 13.5rem;
    margin: 0;
}

/* buttons.css impose margin-top: 20px !important — annuler pour aligner select + Filter */
.pokehub-collections-public-filter-controls .me5rine-lab-form-button {
    margin: 0 !important;
    margin-top: 0 !important;
    white-space: nowrap;
}

@media (max-width: 640px) {
    .pokehub-collections-public-header {
        flex-direction: column;
        align-items: stretch;
    }

    .pokehub-collections-public-filter-controls {
        width: 100%;
    }

    .pokehub-collections-public-filter-controls .me5rine-lab-form-select {
        flex: 1 1 auto;
        min-width: 0;
        max-width: none;
    }
}

/* Bloc titre + catégorie (collections publiques) */
.pokehub-collections-card-head {
    position: relative;
    z-index: 2;
    display: block;
    pointer-events: none;
}

/* Propriétaire : 3e ligne sous le titre et la catégorie */
.pokehub-collections-card--has-owner .pokehub-collections-card-owner {
    position: absolute;
    top: calc(var(--me5rine-lab-spacing-sm, 0.5rem) + 1.35rem + 0.15rem + 0.95rem + 0.2rem);
    left: var(--me5rine-lab-spacing-md, 1rem);
    right: var(--me5rine-lab-spacing-md, 1rem);
    z-index: 4;
    max-width: calc(100% - 2rem);
    pointer-events: auto;
}

.pokehub-collections-card-owner-link {
    display: inline-flex;
    align-items: center;
    gap: 0.35rem;
    text-decoration: none;
    color: var(--me5rine-lab-white, #fff);
    font-size: 0.72rem;
    font-weight: 600;
    text-shadow: 0 1px 2px rgba(0, 0, 0, 0.55);
}

.pokehub-collections-card-owner-link:hover,
.pokehub-collections-card-owner-link:focus-visible {
    text-decoration: underline;
    color: var(--me5rine-lab-white, #fff);
}

.pokehub-collections-card-owner-avatar {
    flex-shrink: 0;
    width: 28px;
    height: 28px;
    border-radius: 50%;
    overflow: hidden;
    border: 2px solid rgba(255, 255, 255, 0.85);
    box-shadow: 0 1px 4px rgba(0, 0, 0, 0.35);
}

.pokehub-collections-card-owner-avatar-img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.pokehub-collections-card--has-owner .me5rine-lab-card-name {
    margin-top: 0;
}

.pokehub-collections-card--has-owner .pokehub-collections-card-head .me5rine-lab-card-name {
    margin-bottom: 0.12rem;
}

/* Profil Ultimate Member : collections sous l’onglet Pokémon GO */
.pokehub-collections-profile-section {
    margin-top: var(--me5rine-lab-spacing-xl, 2rem);
    padding-top: var(--me5rine-lab-spacing-lg, 1.25rem);
    border-top: 1px solid var(--me5rine-lab-border, rgba(148, 163, 184, 0.35));
}

.pokehub-collections-profile-section-header {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: space-between;
    gap: var(--me5rine-lab-spacing-sm, 0.5rem);
    margin-bottom: var(--me5rine-lab-spacing-md, 1rem);
}

.pokehub-collections-profile-section-header .me5rine-lab-title-medium {
    margin: 0;
}

.pokehub-collections-profile-edit-link-wrap {
    margin: 0;
}

/* Actions sur la carte : position + boutons compacts (me5rine-lab-card-actions) */
.pokehub-collections-grid .me5rine-lab-card-actions {
    position: absolute;
    top: var(--me5rine-lab-spacing-sm, 0.5rem);
    right: var(--me5rine-lab-spacing-sm, 0.5rem);
    z-index: 3;
    display: flex;
    gap: var(--me5rine-lab-spacing-xs, 0.35rem);
    align-items: center;
}

.pokehub-collections-grid .me5rine-lab-card-actions .pokehub-collections-card-btn {
    width: 32px;
    height: 32px;
    min-height: 32px;
    padding: 0;
    border: none;
    border-radius: var(--me5rine-lab-radius-sm, 6px);
    background: rgba(255, 255, 255, 0.92);
    color: var(--me5rine-lab-text, #11161E);
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: center;
    transition: background 0.15s, color 0.15s;
}

/* Surcharge boutons thème (me5rine-lab-form-button) sur l’icône carte : conserver 32×32 */
.pokehub-collections-grid .me5rine-lab-card-actions .pokehub-collections-card-btn.me5rine-lab-form-button {
    width: 32px !important;
    height: 32px !important;
    min-height: 32px !important;
    margin-top: 0 !important;
    padding: 0 !important;
    line-height: 1 !important;
    font-size: 1rem !important;
    display: flex !important;
    box-shadow: none;
}

.pokehub-collections-grid .me5rine-lab-card-actions .pokehub-collections-card-btn.me5rine-lab-form-button-remove {
    width: 32px !important;
    height: 32px !important;
    min-height: 32px !important;
    margin-top: 0 !important;
    padding: 0 !important;
    line-height: 1 !important;
    display: flex !important;
    box-shadow: none !important;
    background: var(--me5rine-lab-primary, #2e576f) !important;
    border: 1px solid var(--me5rine-lab-primary, #2e576f) !important;
    color: var(--me5rine-lab-white, #fff) !important;
}

.pokehub-collections-grid .me5rine-lab-card-actions .pokehub-collections-card-btn:hover {
    background: var(--me5rine-lab-secondary, #0485c8);
    color: var(--me5rine-lab-white, #fff);
}

.pokehub-collections-grid .me5rine-lab-card-actions .pokehub-collections-card-btn-settings:hover {
    background: var(--me5rine-lab-secondary, #0485c8);
    color: var(--me5rine-lab-white, #fff);
}

.pokehub-collections-grid .me5rine-lab-card-actions .pokehub-collections-card-btn-delete:hover {
    background: var(--me5rine-lab-secondary, #0485c8) !important;
    border-color: var(--me5rine-lab-secondary, #0485c8) !important;
    color: var(--me5rine-lab-white, #fff);
}

/* Neutralise l'animation verticale générique des boutons remove dans la grille Collections. */
.pokehub-collections-grid .me5rine-lab-card-actions .pokehub-collections-card-btn-delete.me5rine-lab-form-button-remove:hover,
.pokehub-collections-grid .me5rine-lab-card-actions .pokehub-collections-card-btn-delete.me5rine-lab-form-button-remove:focus-visible,
.pokehub-collections-grid .me5rine-lab-card-actions .pokehub-collections-card-btn-delete.me5rine-lab-form-button-remove:active {
    transform: none !important;
}

.pokehub-collections-card-btn .me5rine-lab-sr-only,
.pokehub-collections-card-btn .screen-reader-text {
    position: absolute;
    width: 1px;
    height: 1px;
    padding: 0;
    margin: -1px;
    overflow: hidden;
    clip: rect(0, 0, 0, 0);
    border: 0;
}

.pokehub-collections-card-btn-settings::before {
    content: '⚙';
    font-size: 1rem;
    line-height: 1;
}

.pokehub-collections-card-btn-delete::before {
    content: '×';
    font-size: 1.25rem;
    line-height: 1;
    font-weight: 700;
    margin-bottom: 4px;
}

/* --- Liste fallback (sans grille) --- */
.pokehub-collections-item {
    margin: 0;
    display: flex;
    align-items: center;
    gap: var(--me5rine-lab-spacing-sm, 0.5rem);
    flex-wrap: wrap;
}

.pokehub-collections-link {
    display: flex;
    align-items: center;
    justify-content: space-between;
    flex: 1;
    min-width: 0;
    padding: var(--me5rine-lab-spacing-sm, 0.5rem) var(--me5rine-lab-spacing-md, 1rem);
    background: var(--me5rine-lab-bg-secondary, #f5f5f5);
    border-radius: var(--me5rine-lab-radius-md, 6px);
    text-decoration: none;
    color: inherit;
    border: 1px solid var(--me5rine-lab-border, #e0e0e0);
}

.pokehub-collections-item-actions {
    display: flex;
    align-items: center;
    gap: var(--me5rine-lab-spacing-xs, 0.35rem);
    flex-shrink: 0;
}

.pokehub-collections-meta {
    font-size: 0.85rem;
    color: var(--me5rine-lab-text-light, #666);
}

/* --- Modal (création rapide si utilisé) --- */
.pokehub-collections-modal {
    position: fixed;
    inset: 0;
    z-index: 100000;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: var(--me5rine-lab-spacing-md, 1rem);
    visibility: hidden;
    opacity: 0;
    transition: visibility 0.2s, opacity 0.2s;
}

.pokehub-collections-modal[aria-hidden="false"] {
    visibility: visible;
    opacity: 1;
}

.pokehub-collections-modal-backdrop {
    position: absolute;
    inset: 0;
    background: var(--pokehub-collections-modal-backdrop);
}

.pokehub-collections-modal-content {
    position: relative;
    background: var(--me5rine-lab-bg, #fff);
    border-radius: var(--me5rine-lab-radius-lg, 8px);
    padding: var(--me5rine-lab-spacing-lg, 1.5rem);
    max-width: 480px;
    width: 100%;
    max-height: 90vh;
    overflow-y: auto;
    box-shadow: var(--me5rine-lab-shadow-lg, 0 4px 20px rgba(0, 0, 0, 0.15));
}

.pokehub-collections-modal-content h3 {
    margin-top: 0;
}

/* Sous-titre / description dans drawer (me5rine-lab-subtitle) */
.pokehub-collections-drawer-body > .me5rine-lab-subtitle {
    color: var(--me5rine-lab-text-light, #666);
    margin-bottom: var(--me5rine-lab-spacing-md, 1rem);
}

/* Sections réglages (filtre contenu / include only / affichage) : sans cadre, alignées au padding du drawer, séparées par un trait horizontal. */
.pokehub-collections-drawer-body > fieldset,
.pokehub-collections-advanced-inner > fieldset {
    margin: 0;
    padding: 0;
    border: none;
    border-radius: 0;
    background: transparent;
    min-width: 0;
}

.pokehub-collections-drawer-body > fieldset:not(:first-of-type),
.pokehub-collections-advanced-inner > fieldset:not(:first-of-type) {
    border-top: 1px solid var(--me5rine-lab-border, #dee5ec);
    padding-top: var(--me5rine-lab-spacing-md, 1rem);
    margin-top: var(--me5rine-lab-spacing-md, 1rem);
}

.pokehub-collections-drawer-body fieldset legend,
.pokehub-collections-advanced-inner fieldset legend {
    font-weight: 600;
    color: var(--me5rine-lab-text, #11161e);
    padding: 0;
    margin: 0 0 var(--me5rine-lab-spacing-xs, 0.35rem);
    width: 100%;
}

.pokehub-collections-drawer-body fieldset label {
    display: block;
    margin: var(--me5rine-lab-spacing-sm, 0.5rem) 0;
    cursor: pointer;
    color: var(--me5rine-lab-text, #11161e);
}

/*
 * Setting switches are <label class="…-setting-switch"> — the fieldset label rule
 * above must not force display:block (track overlays the label text).
 */
.pokehub-collections-drawer-body fieldset label.pokehub-collections-setting-switch,
.pokehub-collections-drawer-body .pokehub-collections-setting-switch {
    display: flex;
    align-items: center;
    gap: 0.72rem;
    width: 100%;
    box-sizing: border-box;
    margin: 0.42rem 0;
    cursor: pointer;
    position: relative;
}

.pokehub-collections-drawer-body .pokehub-collections-setting-switch-track {
    flex: 0 0 auto;
    display: inline-block;
    vertical-align: middle;
}

.pokehub-collections-drawer-body .pokehub-collections-setting-switch-text {
    flex: 1 1 auto;
    min-width: 0;
}

.pokehub-collections-drawer-body .pokehub-collections-setting-switch-desc {
    margin: 0.15rem 0 0.35rem;
    padding-left: calc(2.55rem + 0.72rem);
}

.pokehub-collections-warning {
    margin-top: var(--me5rine-lab-spacing-md, 1rem);
}

.pokehub-collections-modal-actions {
    margin-top: var(--me5rine-lab-spacing-lg, 1.5rem);
    display: flex;
    gap: var(--me5rine-lab-spacing-sm, 0.5rem);
    justify-content: flex-end;
}

.pokehub-collections-modal-actions-danger {
    margin-top: var(--me5rine-lab-spacing-md, 1rem);
    padding-top: var(--me5rine-lab-spacing-md, 1rem);
    border-top: 1px solid var(--me5rine-lab-border, #e0e0e0);
    justify-content: flex-start;
}

/* --- Section avancée (details/summary) : alignée sur me5rine-lab-form-block --- */
.pokehub-collections-advanced.me5rine-lab-form-block {
    margin-top: var(--me5rine-lab-spacing-md, 1rem);
    border: 1px solid var(--me5rine-lab-border, #e0e0e0);
    border-radius: var(--me5rine-lab-radius-md, 6px);
}

.pokehub-collections-advanced-summary {
    padding: var(--me5rine-lab-spacing-sm, 0.5rem) var(--me5rine-lab-spacing-md, 1rem);
    cursor: pointer;
    font-weight: 600;
    list-style: none;
    color: var(--me5rine-lab-text, #11161E);
}

.pokehub-collections-advanced-summary::-webkit-details-marker {
    display: none;
}

.pokehub-collections-advanced-inner {
    padding: 0 0 var(--me5rine-lab-spacing-md, 1rem);
    border-top: 1px solid var(--me5rine-lab-border, #e0e0e0);
}

/* --- Drawer (panneau latéral) --- */
.pokehub-collections-drawer {
    position: fixed;
    inset: 0;
    z-index: 100050;
    visibility: hidden;
    pointer-events: none;
    transition: visibility 0.25s ease;
}

.pokehub-collections-drawer.is-open {
    visibility: visible;
    pointer-events: auto;
}

.pokehub-collections-drawer-backdrop {
    position: absolute;
    inset: 0;
    background: var(--pokehub-collections-modal-backdrop);
    opacity: 0;
    transition: opacity 0.25s ease;
}

.pokehub-collections-drawer.is-open .pokehub-collections-drawer-backdrop {
    opacity: 1;
}

.pokehub-collections-drawer-panel {
    position: absolute;
    top: 0;
    right: 0;
    bottom: 0;
    width: min(380px, 100vw);
    max-width: 100%;
    background: var(--me5rine-lab-bg, #fff);
    box-shadow: -4px 0 20px rgba(0, 0, 0, 0.15);
    display: flex;
    flex-direction: column;
    transform: translateX(100%);
    transition: transform 0.25s ease;
}

.pokehub-collections-drawer.is-open .pokehub-collections-drawer-panel {
    transform: translateX(0);
}

/* Drawer header = me5rine-lab-card-header (titre + fermer) */
.pokehub-collections-drawer .me5rine-lab-card-header.pokehub-collections-drawer-header {
    padding: var(--me5rine-lab-spacing-md, 1rem) var(--me5rine-lab-spacing-lg, 1.25rem);
    border-bottom: 1px solid var(--me5rine-lab-border, #e0e0e0);
    flex-shrink: 0;
}

.pokehub-collections-drawer .me5rine-lab-card-header .me5rine-lab-title-medium {
    margin: 0;
}

.pokehub-collections-drawer-close {
    width: 2.25rem;
    height: 2.25rem;
    padding: 0;
    border: none;
    background: transparent;
    font-size: 1.5rem;
    line-height: 1;
    cursor: pointer;
    color: var(--me5rine-lab-text-light, #666);
    border-radius: var(--me5rine-lab-radius-sm, 4px);
}

.pokehub-collections-drawer-close:hover {
    background: var(--me5rine-lab-bg-secondary, #f0f0f0);
    color: var(--me5rine-lab-text, #111);
}

.pokehub-collections-drawer-body {
    flex: 1;
    overflow-y: auto;
    padding: var(--me5rine-lab-spacing-md, 1rem) var(--me5rine-lab-spacing-lg, 1.25rem);
}

.pokehub-collections-drawer-footer {
    padding: var(--me5rine-lab-spacing-md, 1rem) var(--me5rine-lab-spacing-lg, 1.25rem);
    border-top: 1px solid var(--me5rine-lab-border, #e0e0e0);
    display: flex;
    flex-direction: row;
    gap: var(--me5rine-lab-spacing-sm, 0.5rem);
}

/* Settings drawer: actions Save/Delete sur une seule ligne (50/50). */
.pokehub-collections-drawer-footer .pokehub-collections-modal-edit-save,
.pokehub-collections-drawer-footer .pokehub-collections-btn-delete-collection {
    flex: 1 1 50%;
    width: 50%;
    margin-top: 0 !important;
}

/* Réglages collection : interrupteurs (checkbox conserve les id pour le JS).
 * Layout must NOT be drawer-only — Settings Module View uses the same markup
 * outside `.pokehub-collections-drawer`. */
.pokehub-collections-setting-switch {
    display: flex;
    align-items: center;
    gap: 0.72rem;
    width: 100%;
    box-sizing: border-box;
    margin: 0.42rem 0;
    cursor: pointer;
    position: relative;
}

.pokehub-collections-setting-switch-wrap:first-of-type .pokehub-collections-setting-switch,
.pokehub-collections-drawer fieldset > .pokehub-collections-setting-switch:first-of-type {
    margin-top: 0.35rem;
}

.pokehub-collections-setting-switch-input {
    position: absolute;
    opacity: 0;
    width: 1px;
    height: 1px;
    padding: 0;
    margin: -1px;
    overflow: hidden;
    clip: rect(0, 0, 0, 0);
    clip-path: inset(50%);
    white-space: nowrap;
    border: 0;
}

.pokehub-collections-setting-switch-track {
    flex: 0 0 auto;
    width: 2.55rem;
    height: 1.38rem;
    border-radius: 999px;
    background: color-mix(in srgb, var(--me5rine-lab-border, #c4cdd8) 88%, var(--me5rine-lab-bg, #fff));
    box-shadow: inset 0 0 0 1px color-mix(in srgb, var(--me5rine-lab-border, #c4cdd8) 55%, transparent);
    position: relative;
    transition: background 0.22s ease, box-shadow 0.22s ease;
}

.pokehub-collections-setting-switch-input:checked ~ .pokehub-collections-setting-switch-track {
    background: var(--me5rine-lab-secondary, #0485c8);
    box-shadow: inset 0 0 0 1px color-mix(in srgb, var(--me5rine-lab-secondary, #0485c8) 55%, #000);
}

.pokehub-collections-setting-switch-thumb {
    position: absolute;
    top: 50%;
    left: 3px;
    width: 1.05rem;
    height: 1.05rem;
    margin-top: -0.525rem;
    border-radius: 50%;
    background: var(--me5rine-lab-bg, #fff);
    box-shadow: 0 1px 3px rgba(0, 0, 0, 0.22);
    transition: transform 0.22s ease;
    transform: translateX(0);
}

.pokehub-collections-setting-switch-input:checked ~ .pokehub-collections-setting-switch-track .pokehub-collections-setting-switch-thumb {
    transform: translateX(1.08rem);
}

.pokehub-collections-setting-switch-text {
    flex: 1;
    min-width: 0;
    font-size: 0.875rem;
    line-height: 1.35;
    font-weight: 500;
    color: var(--me5rine-lab-text-muted, #7a8698);
    transition: color 0.18s ease, font-weight 0.18s ease;
}

.pokehub-collections-setting-switch-input:checked ~ .pokehub-collections-setting-switch-text {
    color: var(--me5rine-lab-text, #11161e);
    font-weight: 600;
}

.pokehub-collections-setting-switch-input:focus-visible ~ .pokehub-collections-setting-switch-track {
    outline: 2px solid var(--me5rine-lab-secondary, #0485c8);
    outline-offset: 2px;
}

.pokehub-collections-drawer .me5rine-lab-form-field > .pokehub-collections-setting-switch,
.pokehub-collection-settings-view .me5rine-lab-form-field > .pokehub-collections-setting-switch {
    margin-top: 0.12rem;
    margin-bottom: 0;
}

/* Partage / visibilité — sous-titre et message si option indisponible. */
.pokehub-collections-setting-section--share .pokehub-collections-share-subtitle {
    margin-top: 0;
}

/* Partage + URL cover : même cadre que section avancée (plugin : fieldset.me5rine-lab-form-block). */
.pokehub-collections-setting-section--share.me5rine-lab-form-block {
    box-sizing: border-box;
    margin-top: var(--me5rine-lab-spacing-md, 1rem);
    padding: var(--me5rine-lab-spacing-md, 1rem);
    border: 1px solid var(--me5rine-lab-border, #e0e0e0);
    border-radius: var(--me5rine-lab-radius-md, 6px);
    background: var(--me5rine-lab-bg, #fff);
}

.pokehub-collections-setting-section--share.me5rine-lab-form-block legend {
    margin-bottom: var(--me5rine-lab-spacing-xs, 0.35rem);
}

/* Menu settings d'une collection : blocs alignés sur le design du menu de création
 * (drawer création + vue Settings Module Views). */
.pokehub-collections-drawer--menu-like .pokehub-collections-drawer-body > .me5rine-lab-form-block.pokehub-collections-settings-menu-block,
.pokehub-collection-settings-view > .me5rine-lab-form-block.pokehub-collections-settings-menu-block {
    margin: 0;
    padding: 0;
    border: 0;
    border-radius: 0;
    background: transparent;
    box-shadow: none;
    min-width: 0;
}

.pokehub-collections-drawer--menu-like .pokehub-collections-drawer-body > .me5rine-lab-form-block.pokehub-collections-settings-menu-block:not(:last-child),
.pokehub-collection-settings-view > .me5rine-lab-form-block.pokehub-collections-settings-menu-block:not(:last-child) {
    margin-bottom: var(--me5rine-lab-spacing-md, 1rem);
    padding-bottom: var(--me5rine-lab-spacing-md, 1rem);
    border-bottom: 1px solid color-mix(in srgb, var(--me5rine-lab-text-muted, #58606e) 62%, transparent);
}

.pokehub-collections-drawer--menu-like .pokehub-collections-drawer-body > .me5rine-lab-form-block.pokehub-collections-settings-menu-block legend,
.pokehub-collection-settings-view > .me5rine-lab-form-block.pokehub-collections-settings-menu-block legend {
    margin-bottom: var(--me5rine-lab-spacing-xs, 0.35rem);
}

/* Drawer création : bloc « Rafiner » (anciennement dans .pokehub-collections-form). */
.pokehub-collections-drawer-create .pokehub-collections-drawer-body > fieldset#pokehub-collection-refine-block .pokehub-collection-refine-selects .me5rine-lab-form-field {
    margin-top: 0;
    /* Un seul wrap visible à la fois : évite 24px de .me5rine-lab-form-field quand l’élément visible n’est pas :last-child */
    margin-bottom: 0;
}

.pokehub-collections-drawer-create .pokehub-collections-drawer-body > fieldset#pokehub-collection-refine-block:not(.is-hidden) .pokehub-collection-refine-selects {
    padding-bottom: var(--me5rine-lab-spacing-md, 1rem);
}

.pokehub-collections-drawer-create .pokehub-collections-drawer-body > fieldset#pokehub-collection-refine-block:not(.is-hidden) .pokehub-collection-refine-selects .select2-container,
.pokehub-collections-drawer-create .pokehub-collections-drawer-body > fieldset#pokehub-collection-refine-block:not(.is-hidden) .pokehub-collection-refine-selects .me5rine-lab-form-select-wrapper {
    margin-bottom: 0 !important;
}

.pokehub-collections-share-card-bg-field {
    margin-top: var(--me5rine-lab-spacing-md, 1rem);
    padding-top: var(--me5rine-lab-spacing-md, 1rem);
    border-top: 1px solid var(--me5rine-lab-border, #dee5ec);
}

.pokehub-collections-share-notice {
    margin: 0.55rem 0 0;
    font-size: 0.81rem;
    color: var(--me5rine-lab-text-light, #5d697d);
    line-height: 1.35;
}

.pokehub-collections-setting-switch--disabled {
    cursor: not-allowed;
    opacity: 0.72;
}

.pokehub-collections-setting-switch--disabled .pokehub-collections-setting-switch-track {
    opacity: 0.82;
}

.pokehub-collections-not-found.pokehub-collections-not-found--private {
    max-width: 42rem;
    margin: 2rem auto;
}

/* --- Vue collection (page d'une collection) --- */
.poke-hub-collections-app.pokehub-collection-view-wrap,
.pokehub-collection-view-wrap.me5rine-lab-dashboard {
    max-width: 100%;
    min-width: 0;
    box-sizing: border-box;
    /* Sticky du header scroll: éviter le clipping parent qui peut désactiver position: sticky selon navigateur. */
    overflow: visible;
}

.pokehub-collection-toolbar-stack,
.pokehub-collection-toolbar-header {
    overflow: visible;
}

/* Offset sticky global (theme header + admin bar WP).
   --pokehub-elementor-header-offset aliases --me5rine-header-offset (legacy name). */
:root {
    --pokehub-elementor-header-offset: var(--me5rine-header-offset, 72px);
    --pokehub-adminbar-offset: 0px;
    --pokehub-collection-header-sticky-height: 6.2rem;
    /* Barre collection (sticky / pinned) : strictement sous le header du thème (ex. z-index: 10). */
    --pokehub-collection-toolbar-stack-z: 9;
}

body.admin-bar {
    --pokehub-adminbar-offset: 32px;
}

@media (max-width: 782px) {
    body.admin-bar {
        --pokehub-adminbar-offset: 46px;
    }
}

.collection-view-dashboard .pokehub-collection-toolbar-header,
.pokehub-collection-toolbar-stack--local .pokehub-collection-toolbar-header {
    position: relative;
    border-radius: var(--me5rine-lab-radius-md, 10px);
    margin: 0 0 var(--pokehub-toolbar-stack-gap, 0.6rem);
    background: var(--me5rine-lab-bg, #ffffff);
}

.pokehub-collection-toolbar-header:has(.pokehub-collection-header-search-row) {
    margin-bottom: 0;
    border-radius: 0;
}

/* Recherche Pokémon : sous le titre, dans la zone sticky (header + barre d’outils). */
.pokehub-collection-name-search--toolbar-header {
    margin: 0;
    padding: 0.55rem var(--pokehub-toolbar-shell-pad-x, var(--me5rine-lab-spacing-xl, 2rem)) 0.65rem;
    max-width: 100%;
    box-sizing: border-box;
}

.pokehub-collection-toolbar-header .pokehub-collection-name-search--toolbar-header {
    border-radius: 0 0 var(--me5rine-lab-radius-md, 10px) var(--me5rine-lab-radius-md, 10px);
    background: color-mix(in srgb, var(--me5rine-lab-bg-secondary, #f0f4f8) 28%, var(--me5rine-lab-bg, #fff));
    border-top: 1px solid color-mix(in srgb, var(--me5rine-lab-border, #d7dee7) 55%, transparent);
}

.pokehub-collection-name-search-row {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
    gap: 0.65rem;
    align-items: stretch;
    width: 100%;
    max-width: min(100%, 56rem);
}

.pokehub-collection-name-search-row .me5rine-lab-form-field {
    margin-bottom: 0;
    min-width: 0;
}

.pokehub-collection-name-search--toolbar-header .me5rine-lab-form-label {
    margin-bottom: 0.3rem;
}

.pokehub-collection-name-search--toolbar-header .pokehub-collection-name-search-row {
    max-width: 100%;
}

.pokehub-collection-name-search--toolbar-header .pokehub-collection-name-search-input-wrap,
.pokehub-collection-name-search--toolbar-header .pokehub-collection-meta-search-input-wrap {
    max-width: 100%;
}

@media (max-width: 640px) {
    .pokehub-collection-name-search-row {
        grid-template-columns: minmax(0, 1fr);
        max-width: min(100%, 28rem);
    }
}

.pokehub-collection-toolbar-stack.pokehub-toolbar-stack--pinned .pokehub-collection-name-search--toolbar-header {
    padding-top: 0.45rem;
    padding-bottom: 0.5rem;
}

.pokehub-collection-name-search--toolbar-header .pokehub-collection-name-search-empty-hint,
.pokehub-collection-name-search--toolbar-header .pokehub-collection-name-search-loading-hint {
    margin: 0.85rem 0 0;
    padding: 0.55rem 0.75rem 0.5rem;
    font-size: 0.88rem;
}

.collection-view-dashboard .pokehub-collection-view-header.pokehub-collection-view-header--page-flow {
    margin-bottom: 0;
}

/* Empile titre + lignes filtres GO génération / selectors : flux normal jusqu’à ce que la barre fixe soit affichée côté JS. */
.pokehub-collection-toolbar-stack {
    --pokehub-toolbar-sticky-gap: 25px;
    position: -webkit-sticky;
    position: sticky;
    top: calc(
        var(--pokehub-elementor-header-offset) + var(--pokehub-adminbar-offset) + var(--pokehub-toolbar-sticky-gap)
    );
    z-index: var(--pokehub-collection-toolbar-stack-z, 9);
    margin-bottom: var(--pokehub-toolbar-stack-gap, 0.6rem);
    width: 100%;
    max-width: 100%;
    min-width: 0;
    box-sizing: border-box;
    background: var(--me5rine-lab-bg, #ffffff);
    isolation: isolate;
}

.pokehub-collection-view-wrap.pokehub-toolbar-stack-pinned {
    padding-top: var(--pokehub-toolbar-stack-pin-spacer, 0px);
}

.pokehub-collection-toolbar-stack.pokehub-toolbar-stack--pinned {
    position: fixed;
    left: 0;
    right: auto;
    /* Never 100% : full-viewport fixed stack blocks tiles / side nav clicks. */
    width: max-content;
    max-width: 100%;
    top: calc(
        var(--pokehub-elementor-header-offset) + var(--pokehub-adminbar-offset) + var(--pokehub-toolbar-sticky-gap)
    );
    z-index: var(--pokehub-collection-toolbar-stack-z, 9);
    box-shadow: 0 4px 12px -8px rgba(12, 18, 28, 0.18);
}

.pokehub-collection-toolbar-stack::before {
    content: '';
    position: absolute;
    left: 0;
    right: 0;
    top: calc(-1 * var(--pokehub-toolbar-sticky-gap));
    height: var(--pokehub-toolbar-sticky-gap);
    background: var(--me5rine-lab-bg, #ffffff);
    pointer-events: none;
}

@media (max-width: 1024px) {
    .pokehub-collection-toolbar-stack {
        --pokehub-toolbar-sticky-gap: var(--me5rine-lab-spacing-sm, 0.5rem);
    }
}

.pokehub-collection-view-wrap {
    --pokehub-toolbar-shell-pad-x: var(--me5rine-lab-spacing-xl, 2rem);
}

/* Barre flottante sous le header Elementor (JS retire [hidden]). Largeur / left alignés sur .pokehub-collection-view-wrap. */
.pokehub-collection-fixed-toolbar {
    position: fixed;
    top: calc(var(--pokehub-elementor-header-offset) + var(--pokehub-adminbar-offset));
    z-index: 10050;
    box-sizing: border-box;
    overflow-x: hidden;
    /* 100vw inclut souvent la barre de défilement → largeur > viewport et scroll horizontal global. */
    max-width: 100%;
}

.pokehub-collection-fixed-toolbar[hidden] {
    display: none !important;
}

/* Refactor: on n'utilise plus le clone fixe, le header flux devient sticky. */
.pokehub-collection-fixed-toolbar {
    display: none !important;
}

/* Fond, bordure, ombre. PC : padding horizontal modéré (lg) — xl faisait « vide » excessif ; safe-area conservé. */
.pokehub-collection-fixed-toolbar-inner {
    --pokehub-toolbar-stack-gap: 0.6rem;
    max-width: 100%;
    margin: 0 auto;
    padding: 25px var(--me5rine-lab-spacing-lg, 1.25rem)
        calc(var(--me5rine-lab-spacing-sm, 0.5rem) + env(safe-area-inset-bottom, 0px));
    padding-left: max(var(--pokehub-toolbar-shell-pad-x, var(--me5rine-lab-spacing-xl, 2rem)), env(safe-area-inset-left, 0px));
    padding-right: max(var(--pokehub-toolbar-shell-pad-x, var(--me5rine-lab-spacing-xl, 2rem)), env(safe-area-inset-right, 0px));
    border-bottom: 1px solid color-mix(in srgb, var(--me5rine-lab-border, #c4cdd8) 80%, transparent);
    background: var(--me5rine-lab-bg, #ffffff);
    position: relative;
    overflow-x: visible;
    overflow-y: visible;
    box-shadow: 0 6px 14px -10px rgba(12, 18, 28, 0.12);
    display: flex;
    flex-direction: column;
    gap: var(--pokehub-toolbar-stack-gap);
}

@media (max-width: 1024px) {
    .pokehub-collection-view-wrap {
        --pokehub-toolbar-shell-pad-x: var(--me5rine-lab-spacing-lg, 1.25rem);
    }

    .pokehub-collection-fixed-toolbar-inner {
        padding: var(--me5rine-lab-spacing-lg, 1.25rem);
        padding-bottom: calc(var(--me5rine-lab-spacing-lg, 1.25rem) + env(safe-area-inset-bottom, 0px));
        padding-left: max(var(--pokehub-toolbar-shell-pad-x), env(safe-area-inset-left, 0px));
        padding-right: max(var(--pokehub-toolbar-shell-pad-x), env(safe-area-inset-right, 0px));
    }
}

@media (max-width: 782px) {
    .pokehub-collection-view-wrap {
        --pokehub-toolbar-shell-pad-x: 0;
    }

    .pokehub-collection-fixed-toolbar-inner {
        padding: var(--me5rine-lab-spacing-xs, 5px) 0 calc(var(--me5rine-lab-spacing-xs, 5px) + env(safe-area-inset-bottom, 0px));
        padding-left: max(var(--pokehub-toolbar-shell-pad-x), env(safe-area-inset-left, 0px));
        padding-right: max(var(--pokehub-toolbar-shell-pad-x), env(safe-area-inset-right, 0px));
    }
}

/* Même seuil que .me5rine-lab-dashboard (responsive.css) pour la bordure gauche « contenu » */
@media screen and (min-width: 783px) {
    .pokehub-collection-fixed-toolbar-inner {
        border-left: 1px solid var(--me5rine-lab-border);
    }
}

/* Hero = carte titre (même rendu que le flux). */
.pokehub-collection-fixed-toolbar-hero {
    border-radius: var(--me5rine-lab-radius-md, 10px);
    overflow: hidden;
}

.pokehub-collection-fixed-toolbar-hero .pokehub-collection-view-header.pokehub-collection-view-header--page-flow {
    margin-bottom: 0;
}

/* Tuiles + panneau : léger décalage sous le bloc titre. */
/* Tuiles épingle : égale répartition largeur + image option sous data-toolbar-decoration-url (voir collections-front.js) */
.pokehub-collection-toolbar-tiles {
    display: grid;
    width: 100%;
    min-width: 0;
    box-sizing: border-box;
    gap: 0.45rem 0.5rem;
    margin: 0;
    align-items: stretch;
}

.pokehub-collection-toolbar-tiles[data-fixed-visible-count='1'] {
    grid-template-columns: minmax(0, 1fr);
}

.pokehub-collection-toolbar-tiles[data-fixed-visible-count='2'] {
    grid-template-columns: repeat(2, minmax(0, 1fr));
}

.pokehub-collection-toolbar-tiles[data-fixed-visible-count='3'] {
    grid-template-columns: repeat(3, minmax(0, 1fr));
}

.pokehub-collection-toolbar-tiles[data-fixed-visible-count='4'] {
    grid-template-columns: repeat(4, minmax(0, 1fr));
}

/* Mobile : une seule rangée (Filtres / GO / Gén. / …) — libellés courts côté JS (data-collection-fixed-label-short) */
@media (max-width: 640px) {
    .pokehub-collection-toolbar-tiles[data-fixed-visible-count='2'] {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .pokehub-collection-toolbar-tiles[data-fixed-visible-count='3'] {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }

    .pokehub-collection-toolbar-tiles[data-fixed-visible-count='4'] {
        grid-template-columns: repeat(4, minmax(0, 1fr));
    }

    .pokehub-collection-toolbar-tiles .pokehub-collection-fixed-tile-btn {
        font-size: 0.58rem;
        letter-spacing: 0.04em;
        padding-left: 0.35rem;
        padding-right: 0.35rem;
        --me5rine-lab-tile-chip-min-h: 2.85rem;
        min-height: 2.85rem;
    }
}

/* Tuiles barre fixe : styles partagés avec .me5rine-lab-tile-chip — voir parts/08-tile-chip-neutral.css */

.pokehub-collection-fixed-expand:not([hidden]) {
    margin-top: 0;
    padding: var(--me5rine-lab-spacing-sm, 0.75rem) var(--me5rine-lab-spacing-md, 1rem);
    max-height: min(72vh, 28rem);
    overflow: auto;
    overscroll-behavior: contain;
    border-radius: var(--me5rine-lab-radius-md, 8px);
    border: 1px solid var(--me5rine-lab-border, #d7dee7);
    background: color-mix(in srgb, var(--me5rine-lab-bg-secondary, #f0f4f8) 55%, var(--me5rine-lab-bg, #fff));
    width: 100%;
    box-sizing: border-box;
    min-width: 0;
}

.pokehub-collection-fixed-expand-inner {
    width: 100%;
    max-width: 100%;
    min-width: 0;
    box-sizing: border-box;
    overflow-x: clip;
}

.pokehub-collection-fixed-expand-inner > * {
    width: 100%;
    min-width: 0;
    box-sizing: border-box;
}

/* Header flux masqué mais garde la hauteur (pas de display:none / scrollTo = évite oscillation). Le clone fixe couvre la zone. */
.pokehub-collection--fixed-toolbar .pokehub-collection-toolbar-header {
    visibility: hidden;
    pointer-events: none;
    user-select: none;
}

.pokehub-collection-toolbar-slot:not(:empty) {
    min-height: 0;
}

/* Conteneur header (couche thème 14 = variante has-cover) */
.me5rine-lab-dashboard-header.pokehub-collection-view-header {
    position: relative;
    display: block;
    margin-bottom: var(--me5rine-lab-spacing-lg, 1.5rem);
    padding: 0;
    border: none;
    background: none;
    box-shadow: none;
    border-radius: var(--me5rine-lab-radius-md, 10px);
    overflow: hidden;
}

/* Ligne principale (grille) : voir 14-collections-theme pour styles « carte » / couverture */
.pokehub-collection-header-inner {
    position: relative;
    z-index: 2;
    display: grid;
    grid-template-columns: auto minmax(0, 1fr) auto;
    align-items: center;
    gap: var(--me5rine-lab-spacing-md, 1rem);
    padding: var(--me5rine-lab-spacing-md, 1rem) var(--me5rine-lab-spacing-lg, 1.25rem);
    /* Même rayon que le header (overflow: hidden) : sinon la bordure de la “carte” se croise avec le clip et semble coupée. */
    border-radius: var(--me5rine-lab-radius-md, 10px);
}

.pokehub-collection-header-inner--two-cols {
    grid-template-columns: auto minmax(0, 1fr);
}

.pokehub-collection-header-inner--local {
    border: 1px solid var(--me5rine-lab-border, #d7dee7);
    border-radius: var(--me5rine-lab-radius-md, 10px);
    background: linear-gradient(180deg, #f8fbff 0%, #f1f6fd 100%);
    box-shadow: 0 2px 8px rgba(17, 22, 30, 0.06);
}

.pokehub-collection-view-header-left {
    flex: 0 0 auto;
}

.pokehub-collection-view-header-main {
    min-width: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    flex-wrap: wrap;
    gap: var(--me5rine-lab-spacing-sm, 0.75rem);
}

.pokehub-collection-view-header .me5rine-lab-title-large {
    margin: 0;
}

.pokehub-collection-view-header .me5rine-lab-dashboard-header-actions.pokehub-collection-view-actions {
    justify-self: end;
    display: flex;
    flex-wrap: wrap;
    gap: var(--me5rine-lab-spacing-sm, 0.5rem);
    align-items: center;
    justify-content: flex-end;
}

/* Reset : bouton dans le header ; confirmation = bannière .me5rine-lab-form-message-error sous le titre */
.pokehub-collection-view-actions .pokehub-collections-reset-inline {
    max-width: min(100%, 22rem);
    display: inline-flex;
    flex-direction: row;
    flex-wrap: nowrap;
    align-items: center;
    min-width: 0;
    flex: 0 0 auto;
}

.pokehub-collections-reset-confirm-row {
    display: flex;
    flex-wrap: wrap;
    gap: var(--me5rine-lab-spacing-sm, 0.5rem);
    align-items: center;
}

/* Comme les autres notices : contenu regroupé pour que le flex du message (icône + bloc) reste aligné en hauteur — voir forms.css .me5rine-lab-form-message */
/* Masquage [hidden] de la bannière reset : poke-hub-late-overrides.css (ordre de chargement après forms). */
.pokehub-collections-reset-banner.me5rine-lab-form-message {
    width: 100%;
    max-width: 100%;
    box-sizing: border-box;
}

/* Bannière reset déplacée sous la barre collection fixe (mode scroll) : pas de scroll page vers le haut */
.pokehub-collections-reset-banner-host--fixed {
    width: 100%;
    box-sizing: border-box;
    margin: 0.5rem 0 0;
    padding: 0;
}

.pokehub-collection-fixed-toolbar-inner .pokehub-collections-reset-banner--docked-fixed {
    margin-bottom: 0 !important;
}

.pokehub-collection-fixed-toolbar-inner .pokehub-collections-reset-banner--docked-fixed.me5rine-lab-form-message {
    margin-top: 0;
}

/* Retour : pas de min-height / padding ici — mêmes boutons que le reste du front (ex. friend codes) */
.pokehub-collection-back {
    text-decoration: none;
    white-space: nowrap;
}

.pokehub-collection-back:hover,
.pokehub-collection-back:focus {
    text-decoration: none;
}

.pokehub-collection-stats {
    margin: 0;
    line-height: 1;
    white-space: nowrap;
}

.pokehub-collection-progress-badge {
    display: inline-flex;
    align-items: baseline;
    gap: 0.15em;
    font-weight: 700;
    font-size: 1.35rem;
    font-variant-numeric: tabular-nums;
    letter-spacing: 0.02em;
    color: var(--me5rine-lab-text, #11161E);
}

.pokehub-collection-gen-progress {
    font-weight: 600;
    color: var(--me5rine-lab-text-muted, #50575e);
    margin-left: 0.2em;
}

/* Cartes barre d’outils : contenu + illustration à droite (options collection) */
.pokehub-collection-toolbar-panel {
    display: flex;
    align-items: stretch;
    margin: 0;
    border: 1px solid color-mix(in srgb, var(--me5rine-lab-border, #c4cdd8) 85%, transparent);
    border-radius: var(--me5rine-lab-radius-md, 10px);
    background: var(--me5rine-lab-bg, #fff);
    box-shadow: 0 1px 4px rgba(12, 18, 28, 0.06);
    overflow: hidden;
    min-height: 0;
}

.pokehub-collection-toolbar-panel--has-media {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(120px, 34%);
    align-items: stretch;
    gap: 0;
}

@media (max-width: 560px) {
    .pokehub-collection-toolbar-panel--has-media {
        grid-template-columns: minmax(0, 1fr) minmax(100px, 32%);
    }
}

.pokehub-collection-toolbar-panel-main {
    /* Remplit la carte quand le panneau est en flex (une seule colonne) : sinon largeur ≈ contenu et la grille « jump » retombe en 1 colonne. */
    flex: 1 1 0%;
    min-width: 0;
    padding: var(--me5rine-lab-spacing-sm, 0.75rem) var(--me5rine-lab-spacing-md, 1rem);
    display: flex;
    flex-direction: column;
    justify-content: center;
}

/* Illustration : pas de crop — image entière, ancrée en haut / bas / droite de la colonne */
.pokehub-collection-toolbar-panel-media {
    align-self: stretch;
    min-width: 0;
    min-height: 0;
    height: auto;
    background-color: color-mix(in srgb, var(--me5rine-lab-text, #11161e) 82%, var(--me5rine-lab-bg-secondary, #e8eef5));
    background-size: contain;
    background-position: right center;
    background-repeat: no-repeat;
    filter: drop-shadow(-2px 0 12px rgba(255, 255, 255, 0.18)) drop-shadow(0 2px 6px rgba(0, 0, 0, 0.2));
}

.pokehub-collection-toolbar-panel .pokehub-collection-status-filters,
.pokehub-collection-toolbar-panel .pokehub-collection-generation-jump {
    margin: 0 !important;
    padding: 0;
    background: transparent !important;
    border: none !important;
    border-radius: 0;
}

.pokehub-collection-toolbar-panel .pokehub-collection-pogo-search {
    margin: 0;
    padding: 0;
    background: transparent !important;
    border: none !important;
    box-shadow: none !important;
}

.pokehub-collection-toolbar-panel--pogo .pokehub-collection-pogo-search--toolbar-embed summary {
    list-style: none;
}

.pokehub-collection-toolbar-panel--pogo .pokehub-collection-pogo-search-body {
    padding-top: 0.6rem;
}

.pokehub-collection-toolbar-panel--pogo .pokehub-collection-pogo-search-toolbar {
    margin: 0 0 0.5rem 0;
    padding: var(--me5rine-lab-spacing-sm, 0.5rem) 0 0 0;
    border-top: 1px solid color-mix(in srgb, var(--me5rine-lab-border, #d7dee7) 75%, transparent);
    background: transparent;
    border-radius: 0;
    border-left: 0;
    border-right: 0;
    border-bottom: 0;
    box-shadow: none;
}

.pokehub-collection-toolbar-panel--pogo .pokehub-collection-pogo-search-toolbar .me5rine-lab-form-label {
    color: var(--me5rine-lab-text, #11161e);
    font-weight: 600;
}

.pokehub-collection-toolbar-panel--pogo .pokehub-pogo-search-groups {
    margin-top: 0.4rem;
    gap: var(--me5rine-lab-spacing-md, 1rem);
}

.pokehub-collection-toolbar-panel--pogo .pokehub-pogo-search-family-groups {
    grid-template-columns: repeat(2, minmax(0, 1fr));
}

.pokehub-collection-toolbar-panel--pogo .pokehub-pogo-search-family-groups .pokehub-pogo-search-group:nth-child(2n) {
    border-left: 0;
    padding-left: 0;
}

.pokehub-collection-toolbar-panel--pogo .pokehub-pogo-search-family-title {
    color: var(--me5rine-lab-text, #11161e);
}

.pokehub-collection-toolbar-panel--pogo .pokehub-pogo-search-group-title {
    color: var(--me5rine-lab-text-light, #5b6570);
    font-weight: 600;
}

/* Titres de section identiques (Include in grid / GO strings / Jump to generation) */
.pokehub-collection-toolbar-section-head {
    display: flex;
    flex-wrap: wrap;
    align-items: baseline;
    justify-content: space-between;
    gap: 0.35rem var(--me5rine-lab-spacing-md, 1rem);
    margin: 0 0 0.55rem 0;
}

.pokehub-collection-toolbar-section-head .pokehub-collection-toolbar-section-title {
    margin: 0;
    flex: 1 1 12rem;
    min-width: 0;
}

.pokehub-collection-toolbar-section-head .pokehub-collection-toolbar-section-hint {
    margin: 0;
    flex: 0 1 auto;
    text-align: right;
}

@media (max-width: 480px) {
    /* Hors panneau filtres : comportement inchangé */
    .pokehub-collection-toolbar-section-head:not(.pokehub-collection-toolbar-section-head--compact-mobile) .pokehub-collection-toolbar-section-hint {
        flex-basis: 100%;
        text-align: left;
    }
}

.pokehub-toolbar-title--compact {
    display: none;
}

.pokehub-collection-toolbar-section-title {
    margin: 0 0 0.6rem 0;
    padding: 0;
    font-size: 0.9375rem;
    font-weight: 500;
    line-height: 1.3;
    letter-spacing: 0.06em;
    text-transform: uppercase;
    color: var(--me5rine-lab-primary, var(--me5rine-lab-secondary, #11161e));
    border: none;
    background: none;
}

/* Titres section : version courte sur étroit (même logique que les tuiles barre fixe ≤640px) */
@media (max-width: 640px) {
    .pokehub-collection-toolbar-panel .pokehub-collection-toolbar-title-responsive .pokehub-toolbar-title--full,
    .pokehub-collection-view-wrap[data-local='1'] .pokehub-collection-toolbar-title-responsive .pokehub-toolbar-title--full {
        display: none;
    }

    .pokehub-collection-toolbar-panel .pokehub-collection-toolbar-title-responsive .pokehub-toolbar-title--compact,
    .pokehub-collection-view-wrap[data-local='1'] .pokehub-collection-toolbar-title-responsive .pokehub-toolbar-title--compact {
        display: inline;
    }

    .pokehub-collection-toolbar-section-head.pokehub-collection-toolbar-section-head--compact-mobile {
        flex-wrap: nowrap;
        align-items: center;
        margin-bottom: 0.35rem;
        gap: 0.35rem 0.5rem;
    }

    .pokehub-collection-toolbar-section-head--compact-mobile .pokehub-collection-toolbar-section-title {
        flex: 0 1 auto;
        margin-bottom: 0;
        font-size: 0.72rem;
        letter-spacing: 0.05em;
    }

    .pokehub-collection-toolbar-section-head--compact-mobile .pokehub-collection-toolbar-section-hint {
        flex: 1 1 0;
        min-width: 0;
        margin: 0;
        font-size: 0.65rem;
        line-height: 1.25;
        white-space: nowrap;
        overflow: hidden;
        text-overflow: ellipsis;
        text-align: right;
    }

    .pokehub-collection-toolbar-section-head--compact-mobile + .pokehub-collection-status-filters-tiles-row {
        gap: 0.28rem;
    }

    .pokehub-collection-toolbar-section-head--compact-mobile + .pokehub-collection-status-filters-tiles-row .pokehub-collection-status-filter-chip {
        padding: 0.32rem 0.2rem;
        min-height: 2rem;
        font-size: 0.68rem;
        gap: 0.22rem;
    }

    .pokehub-collection-toolbar-panel--pogo .pokehub-collection-toolbar-section-title.pokehub-collection-toolbar-title-responsive {
        margin-bottom: 0.35rem;
        font-size: 0.72rem;
        letter-spacing: 0.05em;
    }
}

.pokehub-collection-toolbar-panel-main > .pokehub-collection-toolbar-section-title:first-child,
.pokehub-collection-toolbar-panel-main .pokehub-collection-status-filters > .pokehub-collection-toolbar-section-head:first-child .pokehub-collection-toolbar-section-title {
    margin-top: 0;
}

.pokehub-collection-toolbar-section-hint {
    margin: 0.45rem 0 0 0;
    font-size: 0.8125rem;
    line-height: 1.35;
    color: var(--me5rine-lab-text-muted, #50575e);
    text-align: center;
}

/* Filtre statut : trois tuiles équilibrées + légende sous la rangée */
.pokehub-collection-status-filters-tiles-row {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: var(--me5rine-lab-spacing-sm, 0.45rem);
    width: 100%;
    max-width: 100%;
    box-sizing: border-box;
    overflow-x: clip;
}

.pokehub-collection-status-filter-chip {
    position: relative;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 0.5rem;
    margin: 0;
    padding: 0.55rem 0.75rem;
    min-height: 2.75rem;
    box-sizing: border-box;
    font-size: 0.8125rem;
    font-weight: 600;
    line-height: 1.2;
    text-align: center;
    cursor: pointer;
    user-select: none;
    color: var(--me5rine-lab-text, #11161e);
    border-radius: var(--me5rine-lab-radius-sm, 8px);
    border: 1px solid color-mix(in srgb, var(--me5rine-lab-border, #d7dee7) 88%, transparent);
    background: color-mix(in srgb, var(--me5rine-lab-bg-secondary, #eef4fa) 55%, var(--me5rine-lab-bg, #fff));
    box-shadow: 0 1px 2px rgba(12, 18, 28, 0.05);
    transition: border-color 0.15s, background 0.15s, box-shadow 0.15s, color 0.15s, opacity 0.15s;
}

.pokehub-collection-status-filter-chip:has(.pokehub-collection-filter-status[data-filter-status="owned"]:checked):hover,
.pokehub-collection-status-filter-chip:has(.pokehub-collection-filter-status[data-filter-status="owned"]:checked):focus-within {
    border-color: var(--admin-lab-color-var-green);
    background: color-mix(in srgb, var(--admin-lab-color-notice-sucess-background, #e8f5e9) 88%, var(--admin-lab-color-var-green, #4caf50));
    box-shadow: 0 1px 3px color-mix(in srgb, var(--admin-lab-color-var-green) 22%, transparent);
}

.pokehub-collection-status-filter-chip:has(.pokehub-collection-filter-status[data-filter-status="for_trade"]:checked):hover,
.pokehub-collection-status-filter-chip:has(.pokehub-collection-filter-status[data-filter-status="for_trade"]:checked):focus-within {
    border-color: var(--admin-lab-color-notice-warning);
    background: color-mix(in srgb, var(--admin-lab-color-notice-warning, #ff9800) 20%, var(--me5rine-lab-bg, #ffffff));
    box-shadow: 0 1px 3px color-mix(in srgb, var(--admin-lab-color-notice-warning) 22%, transparent);
}

.pokehub-collection-status-filter-chip:has(.pokehub-collection-filter-status[data-filter-status="wanted"]:checked):hover,
.pokehub-collection-status-filter-chip:has(.pokehub-collection-filter-status[data-filter-status="wanted"]:checked):focus-within {
    border-color: var(--pokehub-collection-status-wanted, #0485c8);
    background: color-mix(in srgb, var(--pokehub-collection-status-wanted, #0485c8) 20%, var(--me5rine-lab-bg, #ffffff));
    box-shadow: 0 1px 3px color-mix(in srgb, var(--pokehub-collection-status-wanted, #0485c8) 22%, transparent);
}

.pokehub-collection-status-filter-chip:has(.pokehub-collection-filter-status[data-filter-status="missing"]:checked):hover,
.pokehub-collection-status-filter-chip:has(.pokehub-collection-filter-status[data-filter-status="missing"]:checked):focus-within {
    border-color: color-mix(in srgb, var(--me5rine-lab-text-muted, #8a9199) 55%, var(--me5rine-lab-border, #d7dee7));
    background: color-mix(in srgb, var(--me5rine-lab-border, #d7dee7) 24%, var(--me5rine-lab-bg-secondary, #eef4fa));
    box-shadow: 0 1px 2px rgba(12, 18, 28, 0.06);
}

.pokehub-collection-display-filter-chip:has(.pokehub-collection-filter-display:checked):hover,
.pokehub-collection-display-filter-chip:has(.pokehub-collection-filter-display:checked):focus-within {
    filter: brightness(1.04);
}

.pokehub-collection-status-filter-chip:not(.pokehub-collection-display-filter-chip):has(.pokehub-collection-filter-status:checked):hover .pokehub-collection-status-filter-chip-label,
.pokehub-collection-status-filter-chip:not(.pokehub-collection-display-filter-chip):has(.pokehub-collection-filter-status:checked):focus-within .pokehub-collection-status-filter-chip-label {
    color: var(--me5rine-lab-text, #11161e);
}

.pokehub-collection-status-filter-chip:focus-within {
    outline: 2px solid var(--me5rine-lab-border, #d7dee7);
    outline-offset: 2px;
}

.pokehub-collection-status-filter-chip:has(.pokehub-collection-filter-status[data-filter-status="owned"]):focus-within {
    outline-color: var(--admin-lab-color-var-green);
}

.pokehub-collection-status-filter-chip:has(.pokehub-collection-filter-status[data-filter-status="for_trade"]):focus-within {
    outline-color: var(--admin-lab-color-notice-warning);
}

.pokehub-collection-status-filter-chip:has(.pokehub-collection-filter-status[data-filter-status="wanted"]):focus-within {
    outline-color: var(--pokehub-collection-status-wanted, #0485c8);
}

.pokehub-collection-status-filter-chip-label {
    min-width: 0;
}

/* Barre / drawer : puces empilées, alignées comme le drawer GitHub (toolbar) */
.pokehub-collection-toolbar-panel .pokehub-collection-status-filters-tiles-row,
.pokehub-collection-display-filters-tiles-row,
.pokehub-collections-drawer--toolbar [data-toolbar-menu-body] .pokehub-collection-status-filters-tiles-row,
.pokehub-collections-drawer-body--unified [data-drawer-tool-host] .pokehub-collection-status-filters-tiles-row,
.pokehub-collections-drawer-body--unified [data-drawer-tool-host] .pokehub-collection-display-filters-tiles-row {
    display: flex;
    flex-direction: column;
    align-items: stretch;
    gap: 0.4rem;
    grid-template-columns: unset !important;
}

.pokehub-collection-toolbar-panel .pokehub-collection-status-filter-chip,
.pokehub-collections-drawer--toolbar [data-toolbar-menu-body] .pokehub-collection-status-filter-chip,
.pokehub-collections-drawer-body--unified [data-drawer-tool-host] .pokehub-collection-status-filter-chip,
.pokehub-collections-drawer-body--unified [data-drawer-tool-host] .pokehub-collection-display-filter-chip {
    width: 100%;
    max-width: 100%;
    justify-content: center;
    text-align: center;
    padding: 0.5rem 0.45rem;
    gap: 0.4rem;
}

.pokehub-collections-drawer-body--unified [data-drawer-tool-host] .pokehub-collection-status-filter-chip .pokehub-collection-legend-dot {
    flex-shrink: 0;
}

.pokehub-collections-drawer-body--unified [data-drawer-tool-host] .pokehub-collection-status-filter-chip-label {
    flex: 0 1 auto;
    min-width: 0;
}

.pokehub-collection-status-filter-chip .pokehub-collection-filter-status,
.pokehub-collection-status-filter-chip .pokehub-collection-filter-display {
    position: absolute;
    width: 1px;
    height: 1px;
    padding: 0;
    margin: -1px;
    overflow: hidden;
    clip: rect(0, 0, 0, 0);
    white-space: nowrap;
    border: 0;
    opacity: 0;
    pointer-events: none;
}

/* Inactif : gris désaturé + contour pointillé (statuts possession — pas les filtres d’affichage grille). */
.pokehub-collection-status-filter-chip:not(.pokehub-collection-display-filter-chip):has(.pokehub-collection-filter-status:not(:checked)) {
    color: #9aa3af;
    border-color: #c8d0da;
    border-style: dashed;
    background: #f4f6f8;
    box-shadow: none;
    opacity: 0.55;
    filter: grayscale(0.35);
}

.pokehub-collection-status-filter-chip:not(.pokehub-collection-display-filter-chip):has(.pokehub-collection-filter-status:not(:checked)):hover,
.pokehub-collection-status-filter-chip:not(.pokehub-collection-display-filter-chip):has(.pokehub-collection-filter-status:not(:checked)):focus-within {
    color: #7a8491;
    border-color: #b8c2ce;
    background: #eceff3;
    opacity: 0.72;
    box-shadow: none;
}

.pokehub-collection-status-filter-chip:not(.pokehub-collection-display-filter-chip):has(.pokehub-collection-filter-status:not(:checked)) .pokehub-collection-status-filter-chip-label {
    color: #9aa3af;
    text-decoration: line-through;
    text-decoration-thickness: 1.5px;
}

.pokehub-collection-status-filter-chip:not(.pokehub-collection-display-filter-chip):has(.pokehub-collection-filter-status:not(:checked)):hover .pokehub-collection-status-filter-chip-label,
.pokehub-collection-status-filter-chip:not(.pokehub-collection-display-filter-chip):has(.pokehub-collection-filter-status:not(:checked)):focus-within .pokehub-collection-status-filter-chip-label {
    color: #7a8491;
}

.pokehub-collection-status-filter-chip:not(.pokehub-collection-display-filter-chip):has(.pokehub-collection-filter-status:not(:checked)) .pokehub-collection-legend-dot {
    opacity: 0.28;
    filter: grayscale(1);
}

/* Actif : contour plein + check (statuts possession) */
.pokehub-collection-status-filter-chip:not(.pokehub-collection-display-filter-chip):has(.pokehub-collection-filter-status:checked) {
    border-style: solid;
    font-weight: 700;
    filter: none;
}

/* Actif : couleur pleine par statut */
.pokehub-collection-status-filter-chip:has(.pokehub-collection-filter-status[data-filter-status="owned"]:checked) {
    color: var(--me5rine-lab-text, #11161e);
    border-color: var(--admin-lab-color-var-green);
    background: var(--admin-lab-color-notice-sucess-background);
    box-shadow: 0 1px 3px color-mix(in srgb, var(--admin-lab-color-var-green) 24%, transparent);
    opacity: 1;
}

.pokehub-collection-status-filter-chip:has(.pokehub-collection-filter-status[data-filter-status="for_trade"]:checked) {
    color: var(--me5rine-lab-text, #11161e);
    border-color: var(--admin-lab-color-notice-warning);
    background: color-mix(in srgb, var(--admin-lab-color-notice-warning, #ff9800) 18%, var(--me5rine-lab-bg, #ffffff));
    box-shadow: 0 1px 3px color-mix(in srgb, var(--admin-lab-color-notice-warning) 24%, transparent);
    opacity: 1;
}

.pokehub-collection-status-filter-chip:has(.pokehub-collection-filter-status[data-filter-status="wanted"]:checked) {
    color: var(--me5rine-lab-text, #11161e);
    border-color: var(--pokehub-collection-status-wanted, #0485c8);
    background: color-mix(in srgb, var(--pokehub-collection-status-wanted, #0485c8) 18%, var(--me5rine-lab-bg, #ffffff));
    box-shadow: 0 1px 3px color-mix(in srgb, var(--pokehub-collection-status-wanted, #0485c8) 24%, transparent);
    opacity: 1;
}

.pokehub-collection-status-filter-chip:has(.pokehub-collection-filter-status[data-filter-status="missing"]:checked) {
    color: var(--me5rine-lab-text, #11161e);
    border-color: color-mix(in srgb, var(--me5rine-lab-text-muted, #8a9199) 50%, var(--me5rine-lab-border, #d7dee7));
    background: color-mix(in srgb, var(--me5rine-lab-border, #d7dee7) 22%, var(--me5rine-lab-bg, #fff));
    box-shadow: 0 1px 2px rgba(12, 18, 28, 0.07);
    opacity: 1;
}

.pokehub-collection-display-filters-tiles-row {
    overflow-x: visible;
}

/* Filtres de types grille — squelette ou placeholder pendant chargement différé du pool */
.pokehub-collection-display-filters--loading,
.pokehub-collection-display-filters--placeholder {
    pointer-events: none;
    user-select: none;
}

.pokehub-collection-display-filters--placeholder {
    opacity: 0.88;
}

.pokehub-collection-display-filters--placeholder .pokehub-collection-filter-display:disabled,
.pokehub-collection-display-filters--placeholder .pokehub-collection-filter-bulk-switch-input:disabled {
    cursor: not-allowed;
}

.pokehub-collection-display-filters-preparing-hint {
    margin: 0.45rem 0 0;
    font-size: 0.88em;
    opacity: 0.72;
}

.pokehub-collection-display-filters--ready .pokehub-collection-display-filters-preparing-hint {
    display: none;
}

.pokehub-collection-display-filters-tiles-row--loading {
    display: flex;
    flex-wrap: wrap;
    gap: 0.45rem;
}

.pokehub-collection-display-filter-chip-skeleton {
    display: inline-block;
    height: 2.05rem;
    border-radius: 0.55rem;
    border: 2px solid color-mix(in srgb, var(--me5rine-lab-border, #d7dee7) 72%, transparent);
    background: linear-gradient(
        100deg,
        color-mix(in srgb, var(--me5rine-lab-border, #d7dee7) 18%, var(--me5rine-lab-bg, #fff)) 0%,
        color-mix(in srgb, var(--me5rine-lab-border, #d7dee7) 38%, var(--me5rine-lab-bg, #fff)) 45%,
        color-mix(in srgb, var(--me5rine-lab-border, #d7dee7) 18%, var(--me5rine-lab-bg, #fff)) 90%
    );
    background-size: 200% 100%;
    animation: pokehub-collection-display-filter-skeleton 1.35s ease-in-out infinite;
}

.pokehub-collection-display-filters-loading-hint {
    margin: 0.5rem 0 0;
    font-size: 0.88em;
    opacity: 0.78;
}

.pokehub-collection-display-filters--ready {
    animation: pokehub-collection-display-filters-ready 0.28s ease-out;
}

/* Masquage tuiles filtrées (Grid display) — aussi dans late-overrides pour gagner le cascade. */
.pokehub-collection-tile.pokehub-tile--filtered-out {
    display: none !important;
}

.pokehub-collection-generation-block.pokehub-generation--all-filtered {
    display: none !important;
}

@keyframes pokehub-collection-display-filter-skeleton {
    0% { background-position: 100% 0; }
    100% { background-position: -100% 0; }
}

@keyframes pokehub-collection-display-filters-ready {
    from { opacity: 0.55; transform: translateY(2px); }
    to { opacity: 1; transform: none; }
}

.pokehub-collection-display-filter-chip {
    border-width: 2px;
    font-weight: 600;
}

.pokehub-collection-display-filter-chip:has(.pokehub-collection-filter-display:checked) {
    font-weight: 700;
    border-style: solid;
    opacity: 1;
    transform: none;
    filter: none;
}

.pokehub-collection-display-filter-chip:has(.pokehub-collection-filter-display:checked) .pokehub-collection-status-filter-chip-label::before,
.pokehub-collection-status-filter-chip:not(.pokehub-collection-display-filter-chip):has(.pokehub-collection-filter-status:checked) .pokehub-collection-status-filter-chip-label::before {
    content: '✓\00a0';
    font-weight: 800;
    opacity: 0.92;
}

.pokehub-collection-status-filter-chip:not(.pokehub-collection-display-filter-chip):has(.pokehub-collection-filter-status:checked) .pokehub-collection-legend-dot {
    display: none;
}

.pokehub-collection-display-filter-chip:has(.pokehub-collection-filter-display:not(:checked)) {
    color: #9aa3af;
    border-color: #c8d0da;
    border-style: dashed;
    background: #f4f6f8;
    box-shadow: none;
    opacity: 0.55;
    filter: grayscale(0.35);
}

.pokehub-collection-display-filter-chip:has(.pokehub-collection-filter-display:not(:checked)):hover,
.pokehub-collection-display-filter-chip:has(.pokehub-collection-filter-display:not(:checked)):focus-within {
    color: #7a8491;
    border-color: #b8c2ce;
    background: #eceff3;
    opacity: 0.72;
}

.pokehub-collection-display-filter-chip:has(.pokehub-collection-filter-display:not(:checked)) .pokehub-collection-status-filter-chip-label {
    color: #9aa3af;
    text-decoration: line-through;
    text-decoration-thickness: 1.5px;
}

.pokehub-collection-display-filter-chip:has([data-filter-display-kind="normal"]:checked) {
    border-color: #6b7280;
    background: color-mix(in srgb, #6b7280 14%, var(--me5rine-lab-bg, #fff));
    box-shadow: 0 0 0 1px color-mix(in srgb, #6b7280 18%, transparent);
}

.pokehub-collection-display-filter-chip:has([data-filter-display-kind="shiny"]:checked) {
    border-color: #d4a017;
    background: color-mix(in srgb, #ffd400 22%, var(--me5rine-lab-bg, #fff));
    box-shadow: 0 0 0 1px color-mix(in srgb, #d4a017 28%, transparent);
}

.pokehub-collection-display-filter-chip:has([data-filter-display-kind="mega"]:checked) {
    border-color: #e65100;
    background: color-mix(in srgb, #ff9800 18%, var(--me5rine-lab-bg, #fff));
}

.pokehub-collection-display-filter-chip:has([data-filter-display-kind="dynamax"]:checked) {
    border-color: #c2185b;
    background: color-mix(in srgb, #e91e63 16%, var(--me5rine-lab-bg, #fff));
}

.pokehub-collection-display-filter-chip:has([data-filter-display-kind="gigantamax"]:checked) {
    border-color: #7b1fa2;
    background: color-mix(in srgb, #9c27b0 16%, var(--me5rine-lab-bg, #fff));
}

.pokehub-collection-display-filter-chip:has([data-filter-display-kind="costume"]:checked) {
    border-color: #6a1b9a;
    background: color-mix(in srgb, #ab47bc 16%, var(--me5rine-lab-bg, #fff));
}

.pokehub-collection-display-filter-chip:has([data-filter-display-kind="background"]:checked) {
    border-color: #00838f;
    background: color-mix(in srgb, #00acc1 16%, var(--me5rine-lab-bg, #fff));
}

.pokehub-collection-display-filter-chip:has([data-filter-display-kind="shadow"]:checked) {
    border-color: #37474f;
    background: color-mix(in srgb, #546e7a 18%, var(--me5rine-lab-bg, #fff));
}

.pokehub-collection-display-filter-chip:has([data-filter-display-kind="purified"]:checked) {
    border-color: #5c6bc0;
    background: color-mix(in srgb, #7986cb 16%, var(--me5rine-lab-bg, #fff));
}

.pokehub-collection-display-filter-chip:has([data-filter-display-kind="legendary"]:checked) {
    border-color: #f9a825;
    background: color-mix(in srgb, #ffca28 20%, var(--me5rine-lab-bg, #fff));
}

.pokehub-collection-display-filter-chip:has([data-filter-display-kind="mythical"]:checked) {
    border-color: #ec407a;
    background: color-mix(in srgb, #f48fb1 18%, var(--me5rine-lab-bg, #fff));
}

.pokehub-collection-display-filter-chip:has([data-filter-display-kind="ultra_beast"]:checked) {
    border-color: #1e88e5;
    background: color-mix(in srgb, #42a5f5 16%, var(--me5rine-lab-bg, #fff));
}

.pokehub-collection-display-filter-chip:has([data-filter-display-kind="baby"]:checked) {
    border-color: #f06292;
    background: color-mix(in srgb, #f8bbd0 35%, var(--me5rine-lab-bg, #fff));
}

.pokehub-collection-display-filter-chip:has(.pokehub-collection-filter-display:checked):focus-within,
.pokehub-collection-status-filter-chip:not(.pokehub-collection-display-filter-chip):has(.pokehub-collection-filter-status:checked):focus-within {
    outline: 2px solid color-mix(in srgb, var(--pokehub-collection-status-wanted, #0485c8) 55%, transparent);
    outline-offset: 2px;
}

.pokehub-collection-display-filter-chip:has(.pokehub-collection-filter-display:not(:checked)):focus-within,
.pokehub-collection-status-filter-chip:not(.pokehub-collection-display-filter-chip):has(.pokehub-collection-filter-status:not(:checked)):focus-within {
    outline: 2px dashed #c8d0da;
    outline-offset: 2px;
}

.pokehub-collection-display-filter-chip:has(.pokehub-collection-filter-display:checked) .pokehub-collection-status-filter-chip-label,
.pokehub-collection-status-filter-chip:not(.pokehub-collection-display-filter-chip):has(.pokehub-collection-filter-status:checked) .pokehub-collection-status-filter-chip-label {
    color: var(--me5rine-lab-text, #11161e);
    text-decoration: none;
}

@media (max-width: 400px) {
    .pokehub-collection-status-filters-tiles-row {
        grid-template-columns: 1fr;
    }
}

/* Filtre d’affichage par statut (possédé / échange / manquant) */
.pokehub-collection-status-filters {
    margin-bottom: var(--me5rine-lab-spacing-md, 1rem);
    padding: var(--me5rine-lab-spacing-sm, 0.75rem) var(--me5rine-lab-spacing-md, 1rem);
    background: var(--me5rine-lab-bg-secondary, #f0f4f8);
    border: 1px solid var(--me5rine-lab-border, #e0e0e0);
    border-radius: var(--me5rine-lab-radius-md, 8px);
}

/* Module Views context panel: the dialog is the only surface — flatten nested cards. */
.me5rine-lab-context-panel .pokehub-collection-status-filters,
.me5rine-lab-context-panel .pokehub-collection-display-filters,
.me5rine-lab-context-panel .pokehub-collection-toolbar-panel,
.me5rine-lab-context-panel .pokehub-collection-toolbar-panel-main {
    margin: 0;
    padding: 0;
    background: transparent;
    border: none;
    border-radius: 0;
    box-shadow: none;
}

.me5rine-lab-context-panel .pokehub-collection-status-filters-tiles-row,
.me5rine-lab-context-panel .pokehub-collection-display-filters-tiles-row {
    grid-template-columns: unset !important;
}

.pokehub-share-panel .me5rine-lab-form-field {
    margin: 0 0 0.75rem;
}

.pokehub-share-panel .me5rine-lab-form-button {
    width: 100%;
    justify-content: center;
}

.pokehub-collection-generation-jump > .me5rine-lab-form-description {
    margin: 0 0 0.35rem;
}

.pokehub-collection-toolbar-panel .pokehub-collection-status-filters {
    padding: 0;
    margin: 0;
    background: transparent;
    border: none;
    border-radius: 0;
}

.pokehub-collection-toolbar-panel .pokehub-collection-toolbar-section-hint {
    text-align: left;
}

.pokehub-collection-toolbar-panel .pokehub-collection-toolbar-section-head .pokehub-collection-toolbar-section-hint {
    text-align: right;
}

@media (max-width: 480px) {
    .pokehub-collection-toolbar-panel .pokehub-collection-toolbar-section-head .pokehub-collection-toolbar-section-hint {
        text-align: left;
    }
}

.pokehub-collection-status-filters-inner {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: var(--me5rine-lab-spacing-sm, 0.5rem) var(--me5rine-lab-spacing-md, 1rem);
}

.pokehub-collection-status-filters-heading {
    margin: 0;
    flex-shrink: 0;
}

.pokehub-collection-status-filters-checkboxes {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: var(--me5rine-lab-spacing-sm, 0.5rem) var(--me5rine-lab-spacing-md, 1.25rem);
}

.pokehub-collection-status-filter-label {
    display: inline-flex;
    align-items: center;
    gap: 0.35rem;
    margin: 0;
    font-size: 0.95rem;
    cursor: pointer;
    user-select: none;
}

.pokehub-collection-status-filter-label .pokehub-collection-legend-dot {
    flex-shrink: 0;
}

.pokehub-collection-filter-empty-hint {
    margin: var(--me5rine-lab-spacing-sm, 0.5rem) 0 0 0;
}

.pokehub-collection-display-filters {
    margin-top: 0.65rem;
    padding-top: 0.55rem;
    border-top: 1px solid color-mix(in srgb, var(--me5rine-lab-border, #d7dee7) 65%, transparent);
}

.pokehub-collection-toolbar-section-subtitle {
    margin: 0;
    font-size: 0.92rem;
    font-weight: 600;
    color: var(--me5rine-lab-text, #1a202c);
}

.pokehub-collection-display-filter-empty-hint {
    margin: var(--me5rine-lab-spacing-sm, 0.5rem) 0 0 0;
}

.pokehub-collection-name-search {
    margin: 0 0 var(--me5rine-lab-spacing-md, 0.85rem);
    max-width: 100%;
}

.pokehub-collection-name-search-field,
.pokehub-collection-meta-search-field {
    margin: 0;
    min-width: 0;
}

.pokehub-collection-name-search-input-wrap,
.pokehub-collection-meta-search-input-wrap {
    display: flex;
    align-items: stretch;
    gap: 0.45rem;
    width: 100%;
    max-width: none;
}

.pokehub-collection-name-search-input,
.pokehub-collection-meta-search-input {
    flex: 1 1 auto;
    min-width: 0;
    width: 100%;
}

.pokehub-collection-name-search-empty-hint {
    margin: 0.9rem 0 0;
    padding-top: 0.15rem;
    text-align: center;
}

/* Recherche collection : loader Pokéball (anneaux + oscillation). */
.pokehub-collection-name-search-loading-hint {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 100%;
    margin: 0.9rem 0 0;
    min-height: 2.35rem;
    box-sizing: border-box;
}

.pokehub-collection-name-search-loader {
    position: relative;
    flex: 0 0 auto;
    width: 2.15rem;
    height: 2.15rem;
}

.pokehub-collection-name-search-loader-ring {
    position: absolute;
    border-radius: 50%;
    border: 2px solid transparent;
    box-sizing: border-box;
    pointer-events: none;
}

.pokehub-collection-name-search-loader-ring--outer {
    inset: 0;
    border-top-color: #ee1515;
    border-right-color: color-mix(in srgb, var(--me5rine-lab-primary, #2e576f) 55%, #ee1515);
    animation: pokehub-collection-search-ring-spin 1.15s linear infinite;
}

.pokehub-collection-name-search-loader-ring--inner {
    inset: 0.28rem;
    border-bottom-color: color-mix(in srgb, var(--me5rine-lab-primary, #2e576f) 82%, #fff);
    border-left-color: color-mix(in srgb, #ee1515 45%, transparent);
    animation: pokehub-collection-search-ring-spin 0.85s linear infinite reverse;
}

.pokehub-collection-name-search-loader-ball {
    position: absolute;
    inset: 0.52rem;
    border-radius: 50%;
    overflow: hidden;
    border: 2px solid #1c1c1c;
    box-sizing: border-box;
    background: linear-gradient(180deg, #fff 0 47%, #1c1c1c 47% 53%, #ee1515 53% 100%);
    transform-origin: 50% 88%;
    animation: pokehub-collection-search-ball-wobble 1s ease-in-out infinite;
    box-shadow: 0 2px 8px color-mix(in srgb, #ee1515 28%, transparent);
}

.pokehub-collection-name-search-loader-ball::after {
    content: "";
    position: absolute;
    top: 50%;
    left: 50%;
    width: 34%;
    height: 34%;
    transform: translate(-50%, -50%);
    border-radius: 50%;
    background: #fff;
    border: 2px solid #1c1c1c;
    box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.45);
}

.pokehub-collection-name-search-loader-shine {
    position: absolute;
    top: 14%;
    left: 20%;
    width: 30%;
    height: 18%;
    border-radius: 50%;
    background: rgba(255, 255, 255, 0.88);
    filter: blur(0.4px);
    pointer-events: none;
}

@keyframes pokehub-collection-search-ring-spin {
    to { transform: rotate(360deg); }
}

@keyframes pokehub-collection-search-ball-wobble {
    0%, 100% { transform: rotate(-16deg); }
    50% { transform: rotate(16deg) translateY(-1px); }
}

@media (prefers-reduced-motion: reduce) {
    .pokehub-collection-name-search-loader-ring--outer,
    .pokehub-collection-name-search-loader-ring--inner,
    .pokehub-collection-name-search-loader-ball {
        animation: none;
    }
}

/* Recherche grille : overlay pokéball (roulade) — fige la vue jusqu’aux résultats. */
.pokehub-collection-tiles--search-loading {
    position: relative;
    min-height: 8.5rem;
    isolation: isolate;
}

.pokehub-collection-tiles--search-loading > *:not([data-collection-search-loader]) {
    visibility: hidden !important;
    pointer-events: none !important;
}

.pokehub-collection-tiles--search-loading [data-collection-search-loader] {
    position: absolute;
    inset: 0;
    z-index: 6;
    display: flex !important;
    align-items: center;
    justify-content: center;
    width: 100%;
    min-height: 8.5rem;
    margin: 0;
    padding: 1.5rem 1rem 2rem;
    box-sizing: border-box;
    background: color-mix(in srgb, var(--me5rine-lab-surface, var(--me5rine-lab-bg, #fff)) 94%, transparent);
    grid-column: 1 / -1;
}

.pokehub-collection-deferred-loading--tiles {
    grid-column: 1 / -1;
    width: 100%;
    box-sizing: border-box;
}

.pokehub-collection-loader {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 0.85rem;
    width: 100%;
    max-width: 16rem;
    min-height: 6rem;
    margin: 0 auto;
    text-align: center;
    overflow: hidden;
}

.pokehub-collection-loader__track {
    position: relative;
    display: flex;
    align-items: center;
    justify-content: center;
    width: 100%;
    max-width: 11rem;
    height: 3.1rem;
    overflow: visible;
}

.pokehub-collection-loader__spinner {
    position: relative;
    top: auto;
    left: auto;
    flex: 0 0 auto;
    width: 2.65rem;
    height: 2.65rem;
    margin: 0 auto;
}

.pokehub-collection-loader__text {
    margin: 0;
    font-size: 0.95rem;
    color: color-mix(in srgb, var(--me5rine-lab-text, #334155) 88%, transparent);
}

.pokehub-collection-loader-ring {
    position: absolute;
    border-radius: 50%;
    border: 2px solid transparent;
    box-sizing: border-box;
    pointer-events: none;
}

.pokehub-collection-loader-ring--outer {
    inset: 0;
    border-top-color: #ee1515;
    border-right-color: color-mix(in srgb, var(--me5rine-lab-primary, #2e576f) 55%, #ee1515);
    animation: pokehub-collection-loader-ring-spin 1.15s linear infinite;
}

.pokehub-collection-loader-ring--inner {
    inset: 0.28rem;
    border-bottom-color: color-mix(in srgb, var(--me5rine-lab-primary, #2e576f) 82%, #fff);
    border-left-color: color-mix(in srgb, #ee1515 45%, transparent);
    animation: pokehub-collection-loader-ring-spin 0.85s linear infinite reverse;
}

.pokehub-collection-loader-ball {
    position: absolute;
    inset: 0.52rem;
    border-radius: 50%;
    overflow: hidden;
    border: 2px solid #1c1c1c;
    box-sizing: border-box;
    background: linear-gradient(180deg, #fff 0 47%, #1c1c1c 47% 53%, #ee1515 53% 100%);
    transform-origin: 50% 88%;
    /* Capture-style wobble (left ↔ right), not horizontal roll. */
    animation: pokehub-collection-search-ball-wobble 1s ease-in-out infinite;
    box-shadow: 0 2px 8px color-mix(in srgb, #ee1515 28%, transparent);
}

.pokehub-collection-loader-ball::after {
    content: "";
    position: absolute;
    top: 50%;
    left: 50%;
    width: 34%;
    height: 34%;
    transform: translate(-50%, -50%);
    border-radius: 50%;
    background: #fff;
    border: 2px solid #1c1c1c;
    box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.45);
}

.pokehub-collection-loader-shine {
    position: absolute;
    top: 14%;
    left: 20%;
    width: 30%;
    height: 18%;
    border-radius: 50%;
    background: rgba(255, 255, 255, 0.88);
    filter: blur(0.4px);
    pointer-events: none;
}

@keyframes pokehub-collection-loader-ring-spin {
    to { transform: rotate(360deg); }
}

@media (prefers-reduced-motion: reduce) {
    .pokehub-collection-loader-ring--outer,
    .pokehub-collection-loader-ring--inner,
    .pokehub-collection-loader-ball {
        animation: none;
    }
}

.pokehub-collection-status-filters-note {
    margin: 0.4rem 0 0;
}

/* Marquage en masse — une seule ligne : statuts + compteur + appliquer + effacer. */
.pokehub-collection-tile-bulk-toolbar {
    margin: 0 0 0.65rem;
}

.pokehub-collection-tile-bulk-toolbar--header-embed {
    margin: 0;
    padding: 0.55rem 0.65rem 0.65rem;
    border: 1px solid var(--me5rine-lab-border, #c9cfd6);
    border-radius: var(--me5rine-lab-radius-sm, 6px);
    background: var(--me5rine-lab-bg, #fff);
}

.pokehub-collection-tile-bulk-toolbar-row {
    display: flex;
    flex-wrap: nowrap;
    align-items: stretch;
    gap: 0.35rem;
    width: 100%;
    min-width: 0;
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
    scrollbar-width: thin;
}

.pokehub-collection-tile-bulk-pick-btn,
button.pokehub-collection-tile-bulk-pick-btn {
    flex: 1 1 0;
    min-width: 0;
    box-sizing: border-box;
    margin: 0;
    cursor: pointer;
    appearance: none;
    -webkit-appearance: none;
    font: inherit;
    text-align: center;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 0.28rem;
    min-height: 2.35rem;
    padding: 0.35rem 0.4rem;
    border-radius: var(--me5rine-lab-radius-sm, 6px);
    border: 1px solid transparent;
    font-size: 0.72rem;
    font-weight: 600;
    line-height: 1.15;
    box-shadow: 0 1px 2px rgba(12, 18, 28, 0.06);
    transition: border-color 0.15s ease, background-color 0.15s ease, box-shadow 0.15s ease, color 0.15s ease;
}

.pokehub-collection-tile-bulk-pick-btn-label {
    min-width: 0;
    overflow: hidden;
    text-overflow: ellipsis;
    color: inherit;
}

.pokehub-collection-tile-bulk-pick-btn .pokehub-collection-legend-dot {
    flex-shrink: 0;
    width: 8px;
    height: 8px;
}

.pokehub-collection-tile-bulk-pick-btn[data-bulk-status="owned"],
button.pokehub-collection-tile-bulk-pick-btn[data-bulk-status="owned"] {
    border-color: var(--admin-lab-color-var-green);
    background: var(--admin-lab-color-notice-sucess-background);
    color: var(--admin-lab-color-var-green) !important;
}

.pokehub-collection-tile-bulk-pick-btn[data-bulk-status="for_trade"],
button.pokehub-collection-tile-bulk-pick-btn[data-bulk-status="for_trade"] {
    border-color: var(--admin-lab-color-notice-warning);
    background: color-mix(in srgb, var(--admin-lab-color-notice-warning, #ff9800) 18%, var(--me5rine-lab-bg, #ffffff));
    color: var(--admin-lab-color-notice-warning) !important;
}

.pokehub-collection-tile-bulk-pick-btn[data-bulk-status="wanted"],
button.pokehub-collection-tile-bulk-pick-btn[data-bulk-status="wanted"] {
    border-color: var(--pokehub-collection-status-wanted, #0485c8);
    background: color-mix(in srgb, var(--pokehub-collection-status-wanted, #0485c8) 18%, var(--me5rine-lab-bg, #ffffff));
    color: var(--pokehub-collection-status-wanted, #0485c8) !important;
}

.pokehub-collection-tile-bulk-pick-btn[data-bulk-status="missing"],
button.pokehub-collection-tile-bulk-pick-btn[data-bulk-status="missing"] {
    border-color: color-mix(in srgb, var(--me5rine-lab-text-muted, #8a9199) 50%, var(--me5rine-lab-border, #d7dee7));
    background: color-mix(in srgb, var(--me5rine-lab-border, #d7dee7) 22%, var(--me5rine-lab-bg, #fff));
    color: color-mix(in srgb, var(--me5rine-lab-text-muted, #8a9199) 50%, var(--me5rine-lab-border, #d7dee7)) !important;
}

.pokehub-collection-tile-bulk-pick-btn[data-bulk-status="owned"]:hover,
.pokehub-collection-tile-bulk-pick-btn[data-bulk-status="owned"]:focus-visible,
button.pokehub-collection-tile-bulk-pick-btn[data-bulk-status="owned"]:hover,
button.pokehub-collection-tile-bulk-pick-btn[data-bulk-status="owned"]:focus-visible {
    border-color: var(--admin-lab-color-var-green);
    background: color-mix(in srgb, var(--admin-lab-color-var-green) 32%, var(--admin-lab-color-notice-sucess-background, #e8f5e9));
    color: color-mix(in srgb, var(--admin-lab-color-var-green) 72%, #000) !important;
    filter: none;
    box-shadow: 0 1px 3px color-mix(in srgb, var(--admin-lab-color-var-green) 22%, transparent);
}

.pokehub-collection-tile-bulk-pick-btn[data-bulk-status="for_trade"]:hover,
.pokehub-collection-tile-bulk-pick-btn[data-bulk-status="for_trade"]:focus-visible,
button.pokehub-collection-tile-bulk-pick-btn[data-bulk-status="for_trade"]:hover,
button.pokehub-collection-tile-bulk-pick-btn[data-bulk-status="for_trade"]:focus-visible {
    border-color: var(--admin-lab-color-notice-warning);
    background: color-mix(in srgb, var(--admin-lab-color-notice-warning, #ff9800) 32%, var(--me5rine-lab-bg, #fff));
    color: color-mix(in srgb, var(--admin-lab-color-notice-warning, #ff9800) 72%, #000) !important;
    filter: none;
    box-shadow: 0 1px 3px color-mix(in srgb, var(--admin-lab-color-notice-warning) 22%, transparent);
}

.pokehub-collection-tile-bulk-pick-btn[data-bulk-status="wanted"]:hover,
.pokehub-collection-tile-bulk-pick-btn[data-bulk-status="wanted"]:focus-visible,
button.pokehub-collection-tile-bulk-pick-btn[data-bulk-status="wanted"]:hover,
button.pokehub-collection-tile-bulk-pick-btn[data-bulk-status="wanted"]:focus-visible {
    border-color: var(--pokehub-collection-status-wanted, #0485c8);
    background: color-mix(in srgb, var(--pokehub-collection-status-wanted, #0485c8) 32%, var(--me5rine-lab-bg, #fff));
    color: color-mix(in srgb, var(--pokehub-collection-status-wanted, #0485c8) 72%, #000) !important;
    filter: none;
    box-shadow: 0 1px 3px color-mix(in srgb, var(--pokehub-collection-status-wanted, #0485c8) 22%, transparent);
}

.pokehub-collection-tile-bulk-pick-btn[data-bulk-status="missing"]:hover,
.pokehub-collection-tile-bulk-pick-btn[data-bulk-status="missing"]:focus-visible,
button.pokehub-collection-tile-bulk-pick-btn[data-bulk-status="missing"]:hover,
button.pokehub-collection-tile-bulk-pick-btn[data-bulk-status="missing"]:focus-visible {
    border-color: color-mix(in srgb, var(--me5rine-lab-text-muted, #8a9199) 72%, var(--me5rine-lab-border, #d7dee7));
    background: color-mix(in srgb, var(--me5rine-lab-border, #d7dee7) 42%, var(--me5rine-lab-bg-secondary, #eef4fa));
    color: color-mix(in srgb, var(--me5rine-lab-text-muted, #8a9199) 72%, #000) !important;
    filter: none;
    box-shadow: 0 1px 2px rgba(12, 18, 28, 0.08);
}

.pokehub-collection-tile-bulk-pick-btn:hover,
.pokehub-collection-tile-bulk-pick-btn:focus-visible {
    outline: none;
}

.pokehub-collection-tile-bulk-pick-btn.is-active {
    font-weight: 700;
}

.pokehub-collection-tile-bulk-pick-btn.is-active[data-bulk-status="owned"],
button.pokehub-collection-tile-bulk-pick-btn.is-active[data-bulk-status="owned"] {
    border-color: var(--admin-lab-color-var-green);
    background: color-mix(in srgb, var(--admin-lab-color-var-green) 38%, var(--admin-lab-color-notice-sucess-background, #e8f5e9));
    color: color-mix(in srgb, var(--admin-lab-color-var-green) 58%, #000) !important;
    box-shadow:
        0 1px 3px color-mix(in srgb, var(--admin-lab-color-var-green) 24%, transparent),
        0 0 0 2px color-mix(in srgb, var(--admin-lab-color-var-green) 35%, transparent);
}

.pokehub-collection-tile-bulk-pick-btn.is-active[data-bulk-status="for_trade"],
button.pokehub-collection-tile-bulk-pick-btn.is-active[data-bulk-status="for_trade"] {
    border-color: var(--admin-lab-color-notice-warning);
    background: color-mix(in srgb, var(--admin-lab-color-notice-warning, #ff9800) 38%, var(--me5rine-lab-bg, #fff));
    color: color-mix(in srgb, var(--admin-lab-color-notice-warning, #ff9800) 58%, #000) !important;
    box-shadow:
        0 1px 3px color-mix(in srgb, var(--admin-lab-color-notice-warning) 24%, transparent),
        0 0 0 2px color-mix(in srgb, var(--admin-lab-color-notice-warning) 35%, transparent);
}

.pokehub-collection-tile-bulk-pick-btn.is-active[data-bulk-status="wanted"],
button.pokehub-collection-tile-bulk-pick-btn.is-active[data-bulk-status="wanted"] {
    border-color: var(--pokehub-collection-status-wanted, #0485c8);
    background: color-mix(in srgb, var(--pokehub-collection-status-wanted, #0485c8) 38%, var(--me5rine-lab-bg, #fff));
    color: color-mix(in srgb, var(--pokehub-collection-status-wanted, #0485c8) 58%, #000) !important;
    box-shadow:
        0 1px 3px color-mix(in srgb, var(--pokehub-collection-status-wanted, #0485c8) 24%, transparent),
        0 0 0 2px color-mix(in srgb, var(--pokehub-collection-status-wanted, #0485c8) 35%, transparent);
}

.pokehub-collection-tile-bulk-pick-btn.is-active[data-bulk-status="missing"],
button.pokehub-collection-tile-bulk-pick-btn.is-active[data-bulk-status="missing"] {
    border-color: color-mix(in srgb, var(--me5rine-lab-text-muted, #8a9199) 78%, var(--me5rine-lab-border, #d7dee7));
    background: color-mix(in srgb, var(--me5rine-lab-border, #d7dee7) 48%, var(--me5rine-lab-bg-secondary, #eef4fa));
    color: color-mix(in srgb, var(--me5rine-lab-text-muted, #8a9199) 58%, #000) !important;
    box-shadow:
        0 1px 2px rgba(12, 18, 28, 0.07),
        0 0 0 2px color-mix(in srgb, var(--me5rine-lab-text-muted, #8a9199) 28%, transparent);
}

.pokehub-collection-tile-bulk-selection-count {
    flex: 0 0 auto;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 2.35rem;
    padding: 0 0.35rem;
    font-weight: 600;
    font-size: 0.72rem;
    line-height: 1.2;
    white-space: nowrap;
    color: var(--me5rine-lab-text, #11161e);
}

.pokehub-collection-tile-bulk-selection-count.is-empty {
    color: var(--me5rine-lab-text-muted, #646970);
    font-weight: 500;
}

/* Mark / Clear : boutons thème (primary + secondary), ajustés à la hauteur de la barre. */
.pokehub-collection-tile-bulk-toolbar-row .me5rine-lab-form-button {
    flex: 0 0 auto;
    width: auto !important;
    max-width: none;
    margin: 0 !important;
    min-height: 2.35rem;
    padding: 0.35rem 0.55rem !important;
    font-size: 0.72rem !important;
    line-height: 1.15 !important;
    white-space: nowrap;
    box-sizing: border-box;
}

.pokehub-collection-tile-bulk-toolbar-row .me5rine-lab-form-button:disabled {
    opacity: 0.72;
    cursor: not-allowed;
    pointer-events: none;
}

@media (max-width: 1024px) {
    .pokehub-collection-tile-bulk-pick-btn {
        flex: 0 0 auto;
        min-width: 3.6rem;
        padding: 0.3rem 0.35rem;
        font-size: 0.68rem;
    }

    .pokehub-collection-tile-bulk-pick-btn-label {
        display: none;
    }

    .pokehub-collection-tile-bulk-pick-btn .pokehub-collection-legend-dot {
        width: 10px;
        height: 10px;
    }

    .pokehub-collection-tile-bulk-selection-count {
        font-size: 0.68rem;
        padding: 0 0.25rem;
    }

    .pokehub-collection-tile-bulk-toolbar-row .me5rine-lab-form-button {
        padding: 0.3rem 0.45rem !important;
        font-size: 0.68rem !important;
    }
}

.pokehub-collection-view-wrap--bulk-mark-active .pokehub-collection-tile:not(.pokehub-collection-tile--upcoming):not(.pokehub-collection-tile--bulk-selected) {
    cursor: copy;
}

.pokehub-collection-view-wrap--bulk-multi-active .pokehub-collection-tile:not(.pokehub-collection-tile--upcoming) {
    cursor: cell;
}

.pokehub-collection-tile--bulk-selected {
    outline: none;
    box-shadow: none;
}

.pokehub-collection-tile--bulk-selected::after {
    content: '';
    position: absolute;
    inset: 4px;
    border: 2px dashed var(--me5rine-lab-text-muted, #4a4f57);
    border-radius: calc(var(--me5rine-lab-radius-md, 8px) - 3px);
    pointer-events: none;
    z-index: 4;
    box-sizing: border-box;
}

.pokehub-collection-tile--bulk-range-preview {
    outline: none;
    box-shadow: none;
    opacity: 0.92;
}

.pokehub-collection-tile--bulk-range-preview::after {
    content: '';
    position: absolute;
    inset: 4px;
    border: 2px dashed color-mix(in srgb, var(--me5rine-lab-secondary, #334155) 55%, transparent);
    border-radius: calc(var(--me5rine-lab-radius-md, 8px) - 3px);
    pointer-events: none;
    z-index: 4;
    box-sizing: border-box;
}

.pokehub-collection-generation-block > summary.pokehub-collection-region-tile {
    position: relative;
}

.pokehub-collection-toolbar-tools {
    --pokehub-toolbar-stack-gap: 0.6rem;
    position: relative;
    top: auto;
    z-index: auto;
    display: grid;
    gap: var(--pokehub-toolbar-stack-gap);
    margin: 0;
    padding: 0 0 15px;
    border-bottom: 2px solid var(--me5rine-lab-border, #d7dee7);
    width: 100%;
    max-width: 100%;
    min-width: 0;
    box-sizing: border-box;
    overflow: visible;
}

.collection-view-dashboard .pokehub-collection-toolbar-tools,
.collection-view-dashboard .pokehub-collection-toolbar-tiles {
    max-width: 100%;
    margin-left: 0;
    margin-right: 0;
}

/* Tuiles Filters / GO / Jump : palette rouge (normal + hover + actif) pour éviter l'aspect "inactif". */
.pokehub-collection-toolbar-tiles .pokehub-collection-fixed-tile-btn {
    border: 1px solid var(--me5rine-lab-border, #c9cfd6);
    color: var(--me5rine-lab-white, #fff);
    background: linear-gradient(
        135deg,
        #5f6670 0%,
        #9ca4ae 100%
    );
    box-shadow: none;
    min-height: 4.3rem;
    align-items: flex-start;
    flex-direction: column;
    justify-content: center;
    gap: 0.2rem;
}

@media (max-width: 1024px) {
    .pokehub-collection-toolbar-tiles .pokehub-collection-fixed-tile-btn {
        min-height: 3.35rem;
        gap: 0.08rem;
    }
    .pokehub-collection-fixed-tile-btn-subtitle {
        font-size: 0.58rem;
    }
}

@media (max-width: 640px) {
    .pokehub-collection-toolbar-tiles .pokehub-collection-fixed-tile-btn {
        min-height: 2.9rem;
        justify-content: center;
    }
    .pokehub-collection-fixed-tile-btn-subtitle {
        display: none;
    }
}

.pokehub-collection-toolbar-tiles .pokehub-collection-fixed-tile-btn:hover,
.pokehub-collection-toolbar-tiles .pokehub-collection-fixed-tile-btn:focus-visible {
    border-color: #47505a;
    color: var(--me5rine-lab-white, #fff);
    background: linear-gradient(
        135deg,
        #565d67 0%,
        #8f98a3 100%
    );
    box-shadow: none;
}

.pokehub-collection-toolbar-tiles .pokehub-collection-fixed-tile-btn.is-active {
    border-color: #47505a;
    color: var(--me5rine-lab-white, #fff);
    background: linear-gradient(
        135deg,
        #565d67 0%,
        #8f98a3 100%
    );
    box-shadow: none;
}

.pokehub-collection-toolbar-tiles .pokehub-collection-fixed-tile-btn--has-media {
    background-image:
        linear-gradient(
            135deg,
            rgba(56, 64, 76, 0.68) 0%,
            rgba(56, 64, 76, 0.38) 100%
        ),
        var(--pokehub-fixed-tile-bg);
    background-size: cover, cover;
    background-position: center, center;
    background-repeat: no-repeat, no-repeat;
    color: #fff;
    border-color: var(--me5rine-lab-border, #c9cfd6);
}

.pokehub-collection-toolbar-tiles .pokehub-collection-fixed-tile-btn--has-media.is-active {
    background-image:
        linear-gradient(
            135deg,
            rgba(42, 48, 58, 0.72) 0%,
            rgba(42, 48, 58, 0.44) 100%
        ),
        var(--pokehub-fixed-tile-bg);
    background-size: cover, cover;
    background-position: center, center;
    background-repeat: no-repeat, no-repeat;
}

.pokehub-collection-toolbar-tiles .pokehub-collection-fixed-tile-btn--has-media:hover,
.pokehub-collection-toolbar-tiles .pokehub-collection-fixed-tile-btn--has-media:focus-visible {
    background-image:
        linear-gradient(
            135deg,
            rgba(50, 58, 70, 0.7) 0%,
            rgba(50, 58, 70, 0.42) 100%
        ),
        var(--pokehub-fixed-tile-bg);
    background-size: cover, cover;
    background-position: center, center;
    background-repeat: no-repeat, no-repeat;
}

.pokehub-collection-fixed-tile-btn-label {
    line-height: 1.15;
    margin: 0;
}

.pokehub-collection-fixed-tile-btn-subtitle {
    display: block;
    font-size: 0.62rem;
    line-height: 1.2;
    font-weight: 500;
    text-transform: none;
    letter-spacing: 0.01em;
    color: #cfd5dd;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    max-width: 100%;
}

.pokehub-collection-toolbar-tiles .pokehub-collection-fixed-tile-btn--has-media .pokehub-collection-fixed-tile-btn-label {
    color: #fff;
}

.pokehub-collection-toolbar-tiles .pokehub-collection-fixed-tile-btn .pokehub-collection-fixed-tile-btn-label {
    color: var(--me5rine-lab-white, #fff);
}

.pokehub-collection-toolbar-tiles .pokehub-collection-fixed-tile-btn--has-media .pokehub-collection-fixed-tile-btn-subtitle {
    color: rgba(255, 255, 255, 0.84);
}

/* Header scroll: les panneaux sont masqués par défaut, affichés uniquement via clic tuile (expand). */
.pokehub-collection-view-wrap .pokehub-collection-toolbar-tools .pokehub-collection-toolbar-slot {
    display: none;
}

/* Les contenus dépliés (flow/fixed) s'insèrent sous les tuiles. */
.pokehub-collection-fixed-toolbar-inner > .pokehub-collection-toolbar-tiles {
    order: 1;
}

.pokehub-collection-fixed-toolbar-inner > .pokehub-collection-fixed-expand {
    order: 2;
}

.pokehub-collection-toolbar-slot {
    width: 100%;
    max-width: 100%;
    min-width: 0;
    box-sizing: border-box;
}

.pokehub-collection-toolbar-tools .pokehub-collection-toolbar-panel {
    backdrop-filter: blur(4px);
    -webkit-backdrop-filter: blur(4px);
    max-width: 100%;
    min-width: 0;
    box-sizing: border-box;
}

.pokehub-collection-toolbar-tools .pokehub-collection-toolbar-panel-main {
    max-width: 100%;
    min-width: 0;
}

.pokehub-collection-toolbar-tools .pokehub-collection-generation-jump-scroll {
    width: 100%;
    max-width: 100%;
    min-width: 0;
    box-sizing: border-box;
}

.pokehub-collection-toolbar-tools .pokehub-collection-generation-jump-link.pokehub-collection-generation-jump-link--has-media {
    contain: layout;
}

.pokehub-collection-toolbar-tools .pokehub-collection-pogo-search--toolbar-embed {
    max-width: 100%;
}

.pokehub-collection-toolbar-tools .pokehub-collection-toolbar-panel--pogo .pokehub-collection-toolbar-panel-main,
.pokehub-collection-toolbar-tools .pokehub-collection-toolbar-panel--pogo .pokehub-collection-pogo-search-body,
.pokehub-collection-toolbar-tools .pokehub-collection-toolbar-panel--pogo .pokehub-collection-pogo-search-toolbar,
.pokehub-collection-toolbar-tools .pokehub-collection-toolbar-panel--pogo .pokehub-pogo-search-groups {
    max-width: 100%;
}

.pokehub-collection-toolbar-tools .pokehub-collection-pogo-search-body {
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
    max-width: 100%;
    box-sizing: border-box;
}

.pokehub-collection-toolbar-tools .pokehub-collection-toolbar-panel--filters .pokehub-collection-toolbar-panel-main,
.pokehub-collection-toolbar-tools .pokehub-collection-toolbar-panel--pogo .pokehub-collection-toolbar-panel-main {
    overflow-x: clip;
    max-width: 100%;
}

.pokehub-collection-toolbar-tools .pokehub-collection-status-filters,
.pokehub-collection-toolbar-tools .pokehub-collection-pogo-search,
.pokehub-collection-toolbar-tools .pokehub-collection-generation-jump {
    margin: 0;
}

.pokehub-collection-generation-jump-title {
    margin: 0;
    font-weight: 700;
    font-size: 0.9rem;
    letter-spacing: 0.01em;
}

.pokehub-collection-generation-jump {
    margin: var(--me5rine-lab-spacing-sm, 0.75rem) 0 var(--me5rine-lab-spacing-sm, 0.75rem) !important;
    position: relative;
    z-index: auto;
}

.pokehub-collection-toolbar-tools .pokehub-collection-generation-jump {
    margin: 0 !important;
}

.pokehub-collection-toolbar-panel .pokehub-collection-generation-jump {
    margin: 0;
    padding: 0;
    background: transparent !important;
    border: none !important;
    box-shadow: none !important;
}

/* Jump génération/région : une colonne partout (flux, drawer, fixe) — pas de ruban horizontal selon breakpoint. */
.pokehub-collection-toolbar-panel--generations .pokehub-collection-generation-jump,
.pokehub-collection-toolbar-panel--generations .pokehub-collection-generation-jump-links--pokedex {
    width: 100%;
    min-width: 0;
    max-width: none;
    align-self: stretch;
}

.pokehub-collection-generation-jump-links--pokedex,
.pokehub-collection-generation-jump-links:not(.pokehub-collection-generation-jump-links--pokedex) {
    margin-top: 0.55rem;
    display: grid;
    grid-template-columns: 1fr;
    width: 100%;
    box-sizing: border-box;
    gap: 0.5rem;
    align-items: stretch;
    border: none;
    border-radius: 0;
    overflow: visible;
    background: transparent;
}

.pokehub-collection-generation-jump-links--pokedex > .pokehub-collection-generation-jump-link,
.pokehub-collection-generation-jump-links:not(.pokehub-collection-generation-jump-links--pokedex) > .pokehub-collection-generation-jump-link {
    min-width: 0;
    max-width: 100%;
    width: 100%;
    box-sizing: border-box;
}

.pokehub-collection-generation-jump-scroll {
    position: relative;
    display: block;
    margin-top: 0;
    width: 100%;
    max-width: 100%;
    min-width: 0;
    box-sizing: border-box;
}

.pokehub-collection-generation-jump-scroll-track {
    display: block;
    width: 100%;
    min-width: 0;
    overflow: visible;
}

.pokehub-collection-generation-jump-scroll-edge {
    display: none;
}

.pokehub-collection-generation-jump-scroll--no-overflow .pokehub-collection-generation-jump-scroll-track {
    mask-image: none;
}

/* Tablette & mobile : même grille verticale que desktop (ruban horizontal retiré). */
@media (max-width: 1024px) {
    .pokehub-collection-generation-jump-scroll {
        margin-top: 0.45rem;
    }

    .pokehub-collection-generation-jump-links--pokedex,
    .pokehub-collection-generation-jump-links:not(.pokehub-collection-generation-jump-links--pokedex) {
        margin-top: 0;
        display: grid;
        grid-template-columns: 1fr;
        width: 100%;
        min-width: 0;
        max-width: none;
        gap: 0.5rem;
    }

    .pokehub-collection-generation-jump-links--pokedex > .pokehub-collection-generation-jump-link,
    .pokehub-collection-generation-jump-links:not(.pokehub-collection-generation-jump-links--pokedex) > .pokehub-collection-generation-jump-link {
        width: 100%;
        max-width: 100%;
        min-width: 0;
    }

    .pokehub-collection-generation-jump-scroll-track {
        overflow: visible;
        scroll-snap-type: none;
        padding-bottom: 0;
        touch-action: auto;
        mask-image: none;
    }

    .pokehub-collection-generation-jump-scroll-edge {
        display: none !important;
    }

    .pokehub-collection-generation-jump-scroll .pokehub-collection-region-tile--jump .pokehub-collection-region-tile__title {
        display: block;
        white-space: normal;
        overflow: visible;
        text-overflow: unset;
        max-width: 100%;
    }
}

@media (max-width: 480px) {
    .pokehub-collection-generation-jump-scroll-edge {
        width: 2rem;
        min-width: 2rem;
        font-size: 1rem;
    }
}

/*
 * Barre fixe dépliée (PC) : même grille « jump » que le header de base (pas de ruban horizontal).
 * Le ruban + flèches overlay restent limités à @media (max-width: 1024px) ci-dessus.
 *
 * Barre fixe : largeur = celle du wrap (souvent une colonne étroite même sur grand écran).
 * Les règles « jump » globales (grille PC) s’appliquent aussi au panneau déplacé dans .pokehub-collection-fixed-expand.
 */
.pokehub-collection-fixed-expand .pokehub-collection-toolbar-panel {
    max-width: 100%;
    min-width: 0;
}

.pokehub-collection-fixed-expand .pokehub-collection-toolbar-panel-main {
    min-width: 0;
}

/* Clic sur toute la tuile : la cible d’activation reste <summary>, le lien ou le bouton (pas seulement le texte). */
.pokehub-collection-generation-block > summary.pokehub-collection-region-tile > * {
    pointer-events: none;
}

.pokehub-collection-generation-jump-link.pokehub-collection-region-tile > * {
    pointer-events: none;
}

button.pokehub-collection-fixed-tile-btn > * {
    pointer-events: none;
}

.pokehub-collection-toolbar-panel--pogo .pokehub-collection-pogo-search--toolbar-embed summary * {
    pointer-events: none;
}

/* --- Tuiles région (résumé détails + liens saut) : style inspiré Pokédex GO, couleurs = variables thème --- */
.pokehub-collection-region-tile {
    --pokehub-region-tile-fg: var(--me5rine-lab-secondary, #2b6cb0);
    --pokehub-region-tile-fg-soft: var(--me5rine-lab-secondary, #2b6cb0);
    --pokehub-region-tile-pad-y: 0.65rem;
    --pokehub-region-tile-pad-x: 0.75rem;
    display: grid;
    grid-template-columns: auto 1fr minmax(5.5rem, 40%);
    align-items: stretch;
    gap: 0.5rem 0.65rem;
    width: 100%;
    max-width: 100%;
    box-sizing: border-box;
    margin: 0;
    padding: var(--pokehub-region-tile-pad-y) var(--pokehub-region-tile-pad-x);
    list-style: none;
    text-align: left;
    text-decoration: none;
    color: var(--pokehub-region-tile-fg);
    cursor: pointer;
    overflow: hidden;
    border-radius: 1rem;
    border: 1px solid color-mix(in srgb, var(--me5rine-lab-bg, #fff) 55%, var(--me5rine-lab-border, #c5d2e0));
    background: linear-gradient(
        165deg,
        color-mix(in srgb, var(--me5rine-lab-secondary, #5ad) 12%, var(--me5rine-lab-bg-secondary, #e8f2fa)) 0%,
        color-mix(in srgb, var(--me5rine-lab-bg, #fff) 86%, var(--me5rine-lab-bg-secondary, #dceaf5)) 100%
    );
    box-shadow: none;
    transition: border-color 0.15s ease, filter 0.15s ease;
}

.pokehub-collection-region-tile:hover,
.pokehub-collection-region-tile:focus-visible {
    --pokehub-region-tile-fg: var(--me5rine-lab-primary, #2c5282);
    --pokehub-region-tile-fg-soft: var(--me5rine-lab-primary, #2c5282);
    border-color: var(--me5rine-lab-primary, #2c5282);
}

.pokehub-collection-region-tile--jump {
    --pokehub-region-tile-pad-y: 0.45rem;
    --pokehub-region-tile-pad-x: 0.55rem;
    grid-template-columns: minmax(0, 1fr) minmax(5.5rem, 40%);
    min-width: 180px;
    min-height: 4.2rem;
    padding: var(--pokehub-region-tile-pad-y) var(--pokehub-region-tile-pad-x);
    border-radius: 0.75rem;
    font-size: 0.75rem;
}

.pokehub-collection-region-tile--summary {
    --pokehub-region-tile-pad-y: 0.75rem;
    --pokehub-region-tile-pad-x: 0.85rem;
    min-height: 5.25rem;
    padding: var(--pokehub-region-tile-pad-y) var(--pokehub-region-tile-pad-x);
    border-width: 1px;
    border-color: var(--me5rine-lab-border, #a8b4c4);
}

/* Pas de padding à droite : l’illustration va jusqu’au bord (comme jump --has-media). */
.pokehub-collection-region-tile--summary:has(.pokehub-collection-region-tile__media) {
    padding: var(--pokehub-region-tile-pad-y) 0 var(--pokehub-region-tile-pad-y) var(--pokehub-region-tile-pad-x);
}

/* Groupe avec au moins un Pokémon dans le pool : même dégradé gris qu’à 0/X (le progrès reste lisible sur la barre / les chiffres). */
.pokehub-collection-region-tile--shared:not(.pokehub-collection-region-tile--owned-shared):not(.pokehub-collection-region-tile--empty-region):not(.pokehub-collection-generation-jump-link--empty) {
    background: linear-gradient(165deg, #d4d9df 0%, #ffffff 82%);
    border-color: #c6cdd5;
    --pokehub-region-tile-fg: var(--me5rine-lab-text, #1a1f26);
    --pokehub-region-tile-fg-soft: #66707c;
}

.pokehub-collection-region-tile--shared:not(.pokehub-collection-region-tile--owned-shared):not(.pokehub-collection-region-tile--empty-region):not(.pokehub-collection-generation-jump-link--empty):hover,
.pokehub-collection-region-tile--shared:not(.pokehub-collection-region-tile--owned-shared):not(.pokehub-collection-region-tile--empty-region):not(.pokehub-collection-generation-jump-link--empty):focus-visible,
.pokehub-collection-generation-jump-link.pokehub-collection-region-tile--shared:not(.pokehub-collection-region-tile--owned-shared).is-active,
details[open] > .pokehub-collection-region-tile--summary.pokehub-collection-region-tile--shared:not(.pokehub-collection-region-tile--owned-shared) {
    background: linear-gradient(165deg, #c5ccd4 0%, #f2f5f8 100%);
    border-color: #adb6c0;
}

/* Owned (jump + header génération) : gris anthracite, texte blanc, inversion au hover/actif. */
.pokehub-collection-region-tile.pokehub-collection-region-tile--owned-shared {
    --pokehub-region-tile-fg: var(--me5rine-lab-white, #fff);
    --pokehub-region-tile-fg-soft: var(--me5rine-lab-white, #fff);
    color: var(--me5rine-lab-white, #fff);
    background: linear-gradient(135deg, #5f6670 0%, #9ca4ae 100%);
    border-color: #515a64;
}

.pokehub-collection-region-tile.pokehub-collection-region-tile--owned-shared .pokehub-collection-region-tile__title,
.pokehub-collection-region-tile.pokehub-collection-region-tile--owned-shared .pokehub-collection-region-tile__stats {
    color: var(--me5rine-lab-white, #fff);
}

.pokehub-collection-region-tile.pokehub-collection-region-tile--owned-shared .pokehub-collection-region-tile__chev::before {
    color: var(--me5rine-lab-white, #fff);
}

.pokehub-collection-region-tile.pokehub-collection-region-tile--owned-shared .pokehub-collection-region-tile__bar {
    background: #e2e2e2;
}

.pokehub-collection-region-tile.pokehub-collection-region-tile--owned-shared .pokehub-collection-region-tile__bar-fill {
    background: #161616;
}

.pokehub-collection-region-tile.pokehub-collection-region-tile--owned-shared:hover,
.pokehub-collection-region-tile.pokehub-collection-region-tile--owned-shared:focus-visible,
.pokehub-collection-generation-jump-link.pokehub-collection-region-tile--owned-shared.is-active,
details[open] > .pokehub-collection-region-tile--summary.pokehub-collection-region-tile--owned-shared {
    --pokehub-region-tile-fg: var(--me5rine-lab-white, #fff);
    --pokehub-region-tile-fg-soft: var(--me5rine-lab-white, #fff);
    background: linear-gradient(135deg, #565d67 0%, #8f98a3 100%);
    border-color: #47505a;
}

.pokehub-collection-region-tile.pokehub-collection-region-tile--owned-shared:hover .pokehub-collection-region-tile__bar-fill,
.pokehub-collection-region-tile.pokehub-collection-region-tile--owned-shared:focus-visible .pokehub-collection-region-tile__bar-fill,
.pokehub-collection-generation-jump-link.pokehub-collection-region-tile--owned-shared.is-active .pokehub-collection-region-tile__bar-fill,
details[open] > .pokehub-collection-region-tile--summary.pokehub-collection-region-tile--owned-shared .pokehub-collection-region-tile__bar-fill {
    background: #101010;
}

.pokehub-collection-region-tile--jump.pokehub-collection-generation-jump-link--has-media {
    position: relative;
    isolation: isolate;
    grid-template-columns: minmax(0, 1fr);
    padding: var(--pokehub-region-tile-pad-y) 0 var(--pokehub-region-tile-pad-y) var(--pokehub-region-tile-pad-x);
    --pokehub-gen-jump-bg: none;
}

/* Illustration jump : même logique contain (illustration entière dans la tuile). */
.pokehub-collection-generation-jump-link.pokehub-collection-region-tile--jump.pokehub-collection-generation-jump-link--has-media::after {
    content: '';
    position: absolute;
    inset: 0;
    width: auto;
    max-width: none;
    border-radius: inherit;
    background-image: var(--pokehub-gen-jump-bg);
    background-size: auto 100%;
    background-position: right center;
    background-repeat: no-repeat;
    pointer-events: none;
    z-index: 0;
    filter: drop-shadow(-1px 0 6px color-mix(in srgb, var(--me5rine-lab-bg, #fff) 40%, transparent))
        drop-shadow(0 2px 5px color-mix(in srgb, var(--me5rine-lab-text, #000) 15%, transparent));
}

.pokehub-collection-generation-jump-link--has-media .pokehub-collection-region-tile__body {
    position: relative;
    z-index: 1;
}

.pokehub-collection-region-tile--summary:not(:has(.pokehub-collection-region-tile__media)) {
    grid-template-columns: auto 1fr;
}

.pokehub-collection-region-tile__chev {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 1.25rem;
    flex-shrink: 0;
    align-self: center;
}

.pokehub-collection-region-tile__chev::before {
    content: '';
    display: block;
    width: 0.45rem;
    height: 0.45rem;
    margin-top: 0.1rem;
    border-right: 2.5px solid currentColor;
    border-bottom: 2.5px solid currentColor;
    transform: rotate(-45deg);
    transition: transform 0.2s ease;
    color: var(--pokehub-region-tile-fg-soft);
}

details[open] > .pokehub-collection-region-tile--summary .pokehub-collection-region-tile__chev::before {
    transform: rotate(45deg);
}

.pokehub-collection-region-tile__body {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    justify-content: center;
    gap: 0.2rem;
    min-width: 0;
}

.pokehub-collection-region-tile__title {
    font-size: 0.95rem;
    font-weight: 800;
    line-height: 1.15;
    letter-spacing: 0.06em;
    text-transform: uppercase;
    color: var(--pokehub-region-tile-fg);
    word-break: break-word;
}

.pokehub-collection-region-tile--jump .pokehub-collection-region-tile__title {
    font-size: 0.72rem;
    letter-spacing: 0.05em;
    -webkit-line-clamp: 2;
    line-clamp: 2;
    display: -webkit-box;
    -webkit-box-orient: vertical;
    overflow: hidden;
}

.pokehub-collection-region-tile__complete {
    font-size: 0.8rem;
    font-weight: 600;
    line-height: 1.2;
    color: var(--pokehub-region-tile-fg-soft);
}

.pokehub-collection-region-tile--jump .pokehub-collection-region-tile__complete {
    font-size: 0.68rem;
}

.pokehub-collection-region-tile__stats {
    font-size: 0.85rem;
    font-weight: 700;
    font-variant-numeric: tabular-nums;
    letter-spacing: 0.02em;
    color: var(--pokehub-region-tile-fg);
    margin-top: 0.05rem;
}

.pokehub-collection-region-tile--jump .pokehub-collection-region-tile__stats {
    font-size: 0.7rem;
}

.pokehub-collection-region-tile__bar {
    display: block;
    width: 100%;
    max-width: 11rem;
    height: 0.35rem;
    border-radius: 999px;
    background: color-mix(in srgb, var(--me5rine-lab-text-muted, #889) 18%, var(--me5rine-lab-bg, #fff));
    overflow: hidden;
    margin: 0.1rem 0;
}

.pokehub-collection-region-tile--jump .pokehub-collection-region-tile__bar {
    height: 0.3rem;
    max-width: 9rem;
}

.pokehub-collection-region-tile__bar-fill {
    display: block;
    height: 100%;
    border-radius: inherit;
    background: linear-gradient(
        90deg,
        var(--me5rine-lab-secondary, #0485c8),
        color-mix(in srgb, var(--me5rine-lab-primary, #2e576f) 75%, var(--me5rine-lab-secondary))
    );
}

/* Image décorative : entièrement visible dans la zone (pas de rognage type « bord gauche »). */
.pokehub-collection-region-tile__media {
    align-self: stretch;
    justify-self: stretch;
    width: 100%;
    min-width: 0;
    min-height: 0;
    background-size: auto 100%;
    background-position: right center;
    background-repeat: no-repeat;
    pointer-events: none;
    filter: drop-shadow(-1px 0 6px color-mix(in srgb, var(--me5rine-lab-bg, #fff) 40%, transparent))
        drop-shadow(0 2px 5px color-mix(in srgb, var(--me5rine-lab-text, #000) 15%, transparent));
}

.pokehub-collection-region-tile--summary .pokehub-collection-region-tile__media {
    min-height: 0;
    /* Colle l’image en haut / bas (padding vertical annulé sur la zone image). */
    margin-top: calc(-1 * var(--pokehub-region-tile-pad-y));
    margin-right: 0;
    margin-bottom: calc(-1 * var(--pokehub-region-tile-pad-y));
}

/*
 * Mobile : l’image (media span) ne doit pas dépendre d’une 3e colonne,
 * sinon elle est rognée dès que la tuile manque de largeur.
 * On la place en “fond” derrière le contenu (body/chev) pour qu’il puisse passer par-dessus.
 */
@media (max-width: 640px) {
    .pokehub-collection-region-tile--summary {
        position: relative;
        isolation: isolate;
    }

    .pokehub-collection-region-tile--summary .pokehub-collection-region-tile__media {
        position: absolute;
        inset: 0;
        z-index: 0;
        margin: 0 !important;
        background-position: right center;
        background-size: auto 100%;
    }

    .pokehub-collection-region-tile--summary .pokehub-collection-region-tile__body,
    .pokehub-collection-region-tile--summary .pokehub-collection-region-tile__chev {
        position: relative;
        z-index: 1;
    }
}

/* Région / saut sans Pokémon dans le pool : fond gris → blanc */
.pokehub-collection-generation-block--empty > summary.pokehub-collection-region-tile {
    background: linear-gradient(
        165deg,
        color-mix(in srgb, var(--me5rine-lab-text-muted, #7a8490) 22%, var(--me5rine-lab-bg-secondary, #ebeef3)) 0%,
        var(--me5rine-lab-bg, #fff) 72%
    );
    border-color: color-mix(in srgb, var(--me5rine-lab-border, #c5d2e0) 92%, var(--me5rine-lab-text-muted, #889));
    color: var(--me5rine-lab-text-muted, #58606e);
    --pokehub-region-tile-fg: var(--me5rine-lab-text-muted, #58606e);
    --pokehub-region-tile-fg-soft: color-mix(in srgb, var(--me5rine-lab-text-muted, #889) 85%, var(--me5rine-lab-bg, #fff));
}

/* 0 possédé sur X : chevron un peu plus marqué (fond / texte = règle commune « groupe non vide » ci-dessus). */
.pokehub-collection-region-tile--summary.pokehub-collection-region-tile--zero-progress {
    color: var(--me5rine-lab-text, #1a1f26);
}

.pokehub-collection-region-tile--summary.pokehub-collection-region-tile--zero-progress .pokehub-collection-region-tile__chev::before {
    color: color-mix(in srgb, var(--pokehub-region-tile-fg) 88%, var(--me5rine-lab-bg, #fff));
    border-right-width: 3px;
    border-bottom-width: 3px;
}

.pokehub-collection-generation-jump-link--empty.pokehub-collection-region-tile--jump {
    background: linear-gradient(
        165deg,
        color-mix(in srgb, var(--me5rine-lab-text-muted, #7a8490) 18%, var(--me5rine-lab-bg-secondary, #eef1f4)) 0%,
        var(--me5rine-lab-bg, #fff) 75%
    );
    border-color: color-mix(in srgb, var(--me5rine-lab-border, #c5d2e0) 88%, transparent);
    --pokehub-region-tile-fg: var(--me5rine-lab-text-muted, #58606e);
    --pokehub-region-tile-fg-soft: color-mix(in srgb, var(--me5rine-lab-text-muted, #889) 80%, var(--me5rine-lab-bg, #fff));
}

/* 0/X sur raccourci : variables texte alignées sur le résumé (fond = règle « jump non vide »). */
.pokehub-collection-generation-jump-link--zero-progress.pokehub-collection-region-tile--jump {
    --pokehub-region-tile-fg: var(--me5rine-lab-text, #1a1f26);
    --pokehub-region-tile-fg-soft: color-mix(in srgb, var(--me5rine-lab-text, #1a1f26) 58%, var(--me5rine-lab-text-muted, #5a6169));
}

/* Ne jamais rogner l'image à gauche (jump/header région/génération). */
.pokehub-collection-generation-block--empty > summary .pokehub-collection-region-tile__media,
.pokehub-collection-region-tile--summary.pokehub-collection-region-tile--zero-progress .pokehub-collection-region-tile__media {
    -webkit-mask-image: none;
    mask-image: none;
    filter: none;
    background-size: auto 100%;
    background-position: right center;
}

.pokehub-collection-generation-jump-link.pokehub-collection-region-tile--jump.pokehub-collection-generation-jump-link--has-media.pokehub-collection-generation-jump-link--empty::after,
.pokehub-collection-generation-jump-link.pokehub-collection-region-tile--jump.pokehub-collection-generation-jump-link--has-media.pokehub-collection-generation-jump-link--zero-progress::after {
    -webkit-mask-image: none;
    mask-image: none;
    background-size: auto 100%;
    background-position: right center;
}

.pokehub-collection-generation-jump-link.pokehub-collection-region-tile--jump.pokehub-collection-generation-jump-link--has-media.pokehub-collection-generation-jump-link--empty::after {
    filter: none;
}

/* 0 / X : illustration parfois encore « pleine couleur » (fichier custom) — lecture neutre gris. */
.pokehub-collection-region-tile--summary.pokehub-collection-region-tile--zero-progress .pokehub-collection-region-tile__media,
.pokehub-collection-generation-jump-link.pokehub-collection-region-tile--jump.pokehub-collection-generation-jump-link--has-media.pokehub-collection-generation-jump-link--zero-progress::after {
    filter: grayscale(1) contrast(0.92) brightness(1.06);
}

.pokehub-collection-region-tile--jump:not(.pokehub-collection-generation-jump-link--has-media) {
    grid-template-columns: 1fr;
}

.pokehub-collection-generation-jump-link.pokehub-collection-region-tile:hover {
    border-color: color-mix(in srgb, var(--me5rine-lab-text, #1a1f26) 45%, var(--me5rine-lab-border, #aeb8c4));
    color: var(--pokehub-region-tile-fg);
    text-decoration: none;
    box-shadow: none;
}

.pokehub-collection-generation-jump-link.pokehub-collection-region-tile:focus-visible {
    color: var(--pokehub-region-tile-fg);
    text-decoration: none;
}

.pokehub-collection-generation-jump-link.pokehub-collection-region-tile.is-active {
    border-color: color-mix(in srgb, var(--me5rine-lab-text, #1a1f26) 45%, var(--me5rine-lab-border, #aeb8c4));
    box-shadow: none;
}

.pokehub-collection-generation-jump-link.pokehub-collection-region-tile--jump.pokehub-collection-generation-jump-link--has-media.pokehub-collection-region-tile.is-active::after {
    filter: drop-shadow(-1px 0 8px color-mix(in srgb, var(--me5rine-lab-bg, #fff) 55%, transparent))
        drop-shadow(0 2px 6px color-mix(in srgb, var(--me5rine-lab-text, #000) 12%, transparent));
}

.pokehub-collection-generation-jump-link.pokehub-collection-region-tile--jump.pokehub-collection-generation-jump-link--has-media.pokehub-collection-generation-jump-link--zero-progress.pokehub-collection-region-tile.is-active::after {
    filter: grayscale(1) contrast(0.92) brightness(1.06);
}

.pokehub-collection-generation-jump-link.pokehub-collection-region-tile--jump.pokehub-collection-generation-jump-link--has-media.pokehub-collection-generation-jump-link--empty.pokehub-collection-region-tile.is-active::after {
    filter: none;
}

/* Ancre : classe historique conservée pour le JS */
.pokehub-collection-generation-jump-link {
    color: inherit;
}

/*
 * Liste des raccourcis « jump » : tuiles séparées (gap sur le conteneur), coins arrondis par ligne
 * pour coller au rendu des résumés région et éviter fond rectangulaire derrière le radius du bloc.
 */
.pokehub-collection-generation-jump-links > .pokehub-collection-generation-jump-link.pokehub-collection-region-tile--jump {
    background: linear-gradient(165deg, #d4d9df 0%, #ffffff 82%) !important;
    border: 1px solid var(--me5rine-lab-border, #c6cdd5) !important;
    border-radius: 0.75rem !important;
    box-shadow: none !important;
    --pokehub-region-tile-fg: var(--me5rine-lab-text, #1a1f26);
    --pokehub-region-tile-fg-soft: #66707c;
    color: var(--pokehub-region-tile-fg) !important;
}

.pokehub-collection-generation-jump-links > .pokehub-collection-generation-jump-link.pokehub-collection-region-tile--jump:hover,
.pokehub-collection-generation-jump-links > .pokehub-collection-generation-jump-link.pokehub-collection-region-tile--jump:focus-visible {
    background: linear-gradient(165deg, #c5ccd4 0%, #f2f5f8 100%) !important;
    filter: none;
    border-color: var(--me5rine-lab-border, #c6cdd5) !important;
}

.pokehub-collection-generation-jump-links > .pokehub-collection-generation-jump-link.pokehub-collection-region-tile--jump.is-active {
    background: linear-gradient(165deg, #c5ccd4 0%, #f2f5f8 100%) !important;
}

.pokehub-collection-generation-jump-links > .pokehub-collection-generation-jump-link.pokehub-collection-region-tile--owned-shared,
.pokehub-collection-generation-jump-links > .pokehub-collection-generation-jump-link.pokehub-collection-region-tile--owned-shared:hover,
.pokehub-collection-generation-jump-links > .pokehub-collection-generation-jump-link.pokehub-collection-region-tile--owned-shared:focus-visible,
.pokehub-collection-generation-jump-links > .pokehub-collection-generation-jump-link.pokehub-collection-region-tile--owned-shared.is-active {
    --pokehub-region-tile-fg: var(--me5rine-lab-text, #1a1f26);
    --pokehub-region-tile-fg-soft: #66707c;
    color: var(--me5rine-lab-text, #1a1f26) !important;
    background: linear-gradient(165deg, #d4d9df 0%, #ffffff 82%) !important;
}

.pokehub-collection-generation-jump-links > .pokehub-collection-generation-jump-link.pokehub-collection-region-tile--owned-shared:hover,
.pokehub-collection-generation-jump-links > .pokehub-collection-generation-jump-link.pokehub-collection-region-tile--owned-shared:focus-visible,
.pokehub-collection-generation-jump-links > .pokehub-collection-generation-jump-link.pokehub-collection-region-tile--owned-shared.is-active {
    background: linear-gradient(165deg, #c5ccd4 0%, #f2f5f8 100%) !important;
}

.pokehub-collection-generation-jump-links > .pokehub-collection-generation-jump-link.pokehub-collection-region-tile--owned-shared .pokehub-collection-region-tile__title,
.pokehub-collection-generation-jump-links > .pokehub-collection-generation-jump-link.pokehub-collection-region-tile--owned-shared .pokehub-collection-region-tile__stats,
.pokehub-collection-generation-jump-links > .pokehub-collection-generation-jump-link.pokehub-collection-region-tile--owned-shared .pokehub-collection-region-tile__complete {
    color: inherit !important;
}

.pokehub-collection-generation-jump-links > .pokehub-collection-generation-jump-link .pokehub-collection-region-tile__bar {
    background: color-mix(in srgb, var(--me5rine-lab-border, #c6cdd5) 50%, var(--me5rine-lab-bg, #fff));
}

.pokehub-collection-generation-jump-links > .pokehub-collection-generation-jump-link .pokehub-collection-region-tile__bar-fill {
    background: color-mix(in srgb, var(--me5rine-lab-secondary, #2b6cb0) 88%, var(--me5rine-lab-text, #1a1f26));
}

.pokehub-collection-generation-jump-links > .pokehub-collection-generation-jump-link.pokehub-collection-generation-jump-link--empty.pokehub-collection-region-tile--jump,
.pokehub-collection-generation-jump-links > .pokehub-collection-generation-jump-link.pokehub-collection-generation-jump-link--zero-progress.pokehub-collection-region-tile--jump {
    background: linear-gradient(165deg, #d4d9df 0%, #ffffff 82%) !important;
    --pokehub-region-tile-fg: var(--me5rine-lab-text, #1a1f26);
    --pokehub-region-tile-fg-soft: #66707c;
    color: var(--me5rine-lab-text, #1a1f26) !important;
}

.pokehub-collection-multiselect-wrap {
    margin-top: 0.45rem;
}

.pokehub-collection-empty-pool {
    margin: 0 0 var(--me5rine-lab-spacing-md, 1rem) 0;
}

.pokehub-collection-tiles {
    display: block;
}

/* Bloc par région / génération (details) */
.pokehub-collection-generation-block {
    margin-bottom: 1.25rem;
    border: none;
    background: transparent;
    padding: 0;
    box-shadow: none;
}

.pokehub-collection-generation-block:last-child {
    margin-bottom: 0;
}

.pokehub-collection-generation-block > summary.pokehub-collection-region-tile {
    cursor: pointer;
    list-style: none;
    user-select: none;
}

.pokehub-collection-generation-block > summary::-webkit-details-marker,
.pokehub-collection-generation-block > summary::marker {
    display: none;
}

.pokehub-collection-generation-block > summary.pokehub-collection-region-tile--summary:hover {
    filter: brightness(1.02);
    border-color: color-mix(in srgb, var(--me5rine-lab-text-muted, #5a6169) 30%, var(--me5rine-lab-border, #9aa8b8));
}

.pokehub-collection-generation-block > summary.pokehub-collection-region-tile--summary:focus-visible {
    outline: 2px solid color-mix(in srgb, var(--me5rine-lab-secondary, #0485c8) 70%, transparent);
    outline-offset: 3px;
}

.pokehub-collection-generation-block .pokehub-collection-generation-tiles {
    margin-top: 0.65rem;
    padding-top: 0.15rem;
}

.pokehub-collection-generation-tiles,
.pokehub-collection-tiles:not(:has(.pokehub-collection-generation-block)) {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(124px, 1fr));
    gap: var(--me5rine-lab-spacing-sm, 0.5rem);
    /* min-height runway must not stretch tile rows (default align-content: stretch). */
    align-content: start;
}

/* Search: drop catalogue runway so matched tiles hug headers (no white gaps). */
.pokehub-collection-tiles--search-results .pokehub-collection-generation-tiles {
    min-height: 0 !important;
}
.pokehub-collection-generation-block.pokehub-generation--search-hidden {
    display: none !important;
}
.pokehub-collection-tiles--search-results .pokehub-collection-generation-block {
    content-visibility: visible;
    contain-intrinsic-size: none;
}

/* Ligne de flottaison : squelettes alignés sur la grille, juste après les tuiles chargées. */
.pokehub-collection-deferred-waterline {
    grid-column: 1 / -1;
    width: 100%;
    margin: 0;
    padding: 0;
}
.pokehub-collection-generation-tiles > .pokehub-collection-deferred-waterline,
.pokehub-collection-tiles > .pokehub-collection-deferred-waterline {
    display: block;
}

/* Renderer manifest-first : le slot wrapper ne casse pas la grille CSS */
.pokehub-collection-tile-slot--renderer {
    display: contents;
    min-width: 0;
}

.pokehub-collection-tiles[data-collections-renderer-tiles="1"] > .pokehub-collection-deferred-waterline,
.pokehub-collection-generation-tiles[data-collections-renderer-tiles="1"] > .pokehub-collection-deferred-waterline {
    grid-column: 1 / -1;
}

.pokehub-collection-deferred-skeleton--waterline {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(124px, 1fr));
    gap: var(--me5rine-lab-spacing-sm, 0.5rem);
    width: 100%;
}
.pokehub-collection-deferred-loading--waterline .pokehub-collection-deferred-skeleton--waterline {
    opacity: 0.9;
}
.pokehub-collection-deferred-skeleton-tile {
    aspect-ratio: 1;
    border-radius: var(--me5rine-lab-radius-md, 8px);
    background: linear-gradient(
        110deg,
        color-mix(in srgb, var(--me5rine-lab-text-muted, #8896a6) 8%, transparent) 25%,
        color-mix(in srgb, var(--me5rine-lab-text-muted, #8896a6) 16%, transparent) 50%,
        color-mix(in srgb, var(--me5rine-lab-text-muted, #8896a6) 8%, transparent) 75%
    );
    background-size: 200% 100%;
    animation: pokehub-deferred-shimmer 1.2s ease-in-out infinite;
}
@keyframes pokehub-deferred-shimmer {
    0% { background-position: 200% 0; }
    100% { background-position: -200% 0; }
}

/* Grosses grilles : le navigateur peut différer peinture / layout hors écran. */
.pokehub-collection-view-wrap .pokehub-collection-generation-block {
    content-visibility: auto;
    /* Height-only estimate — a single-value shorthand also fakes width (~800px) and inflates tiles. */
    contain-intrinsic-size: auto 800px;
}

/* Tuile Pokémon */
.pokehub-collection-tile {
    position: relative;
    display: flex;
    flex-direction: column;
    align-items: stretch;
    padding: 0;
    overflow: hidden;
    box-sizing: border-box;
    background: var(--me5rine-lab-bg-secondary, #f9f9f9);
    border: var(--pokehub-collection-tile-border-width, 2px) solid var(--pokehub-collection-tile-border, color-mix(in srgb, var(--me5rine-lab-text-muted, #8896a6) 24%, var(--me5rine-lab-border, #dee5ec)));
    border-radius: var(--me5rine-lab-radius-md, 8px);
    cursor: pointer;
    transition: border-color 0.12s ease, background 0.12s ease, outline-color 0.12s ease;
    min-height: 0;
}

/* Clic statut : pas de fondu — changement de couleur immédiat. */
.pokehub-collection-tile.pokehub-collection-tile--status-instant,
.pokehub-collection-tile.pokehub-collection-tile--status-instant .pokehub-collection-tile-figure,
.pokehub-collection-tile.pokehub-collection-tile--status-instant .pokehub-collection-tile-name,
.pokehub-collection-tile.pokehub-collection-tile--status-instant .pokehub-collection-tile-dex {
    transition: none !important;
}

.pokehub-collection-tile:hover {
    background: var(--me5rine-lab-bg-odd, #f0f0f0);
    border-color: var(--pokehub-collection-tile-border-hover, color-mix(in srgb, var(--me5rine-lab-text-muted, #8896a6) 38%, var(--me5rine-lab-border-light, #b5c2cf)));
}

.pokehub-collection-tile[data-status="owned"]:hover {
    border-color: var(--admin-lab-color-var-green, #42af13);
    background: color-mix(in srgb, var(--admin-lab-color-var-green, #42af13) 18%, var(--me5rine-lab-bg, #ffffff));
}

.pokehub-collection-tile[data-status="for_trade"]:hover {
    border-color: var(--admin-lab-color-notice-warning, #ff9800);
    background: color-mix(in srgb, var(--admin-lab-color-notice-warning, #ff9800) 18%, var(--me5rine-lab-bg, #ffffff));
}

.pokehub-collection-tile[data-status="wanted"]:hover {
    border-color: var(--pokehub-collection-status-wanted, #0485c8);
    background: color-mix(in srgb, var(--pokehub-collection-status-wanted, #0485c8) 18%, var(--me5rine-lab-bg, #ffffff));
}

.pokehub-collection-tile:focus {
    outline: none;
}

.pokehub-collection-tile:focus:not(:focus-visible) {
    outline: none;
}

.pokehub-collection-tile:focus-visible {
    outline: 2px solid #4a4f57;
    outline-offset: 2px;
}

/* Possédé / à l’échange : au focus clavier, outline extérieur — pas de rétrécissement de la tuile. */
.pokehub-collection-tile[data-status="owned"]:focus-visible {
    outline-color: var(--admin-lab-color-var-green, #42af13);
    border-color: var(--admin-lab-color-var-green, #42af13);
    background: color-mix(in srgb, var(--admin-lab-color-var-green, #42af13) 14%, var(--me5rine-lab-bg-secondary, #f9f9f9));
}

.pokehub-collection-tile[data-status="for_trade"]:focus-visible {
    outline-color: var(--admin-lab-color-notice-warning, #ff9800);
    border-color: var(--admin-lab-color-notice-warning, #ff9800);
    background: color-mix(in srgb, var(--admin-lab-color-notice-warning, #ff9800) 14%, var(--me5rine-lab-bg-secondary, #f9f9f9));
}

.pokehub-collection-tile[data-status="wanted"]:focus-visible {
    outline-color: var(--pokehub-collection-status-wanted, #0485c8);
    border-color: var(--pokehub-collection-status-wanted, #0485c8);
    background: color-mix(in srgb, var(--pokehub-collection-status-wanted, #0485c8) 14%, var(--me5rine-lab-bg-secondary, #f9f9f9));
}

/* Possédé : texte vert (même famille que le contour), sprites GO en couleur ; bulle verte. */
.pokehub-collection-tile[data-status="owned"] .pokehub-collection-tile-name,
.pokehub-collection-tile[data-status="owned"] .pokehub-collection-tile-name .pokehub-collection-tile-gender,
.pokehub-collection-tile[data-status="owned"] .pokehub-collection-tile-dex {
    color: var(--admin-lab-color-var-green, #42af13);
}

/* A l'echange : texte orange (même famille que le contour). */
.pokehub-collection-tile[data-status="for_trade"] .pokehub-collection-tile-name,
.pokehub-collection-tile[data-status="for_trade"] .pokehub-collection-tile-name .pokehub-collection-tile-gender,
.pokehub-collection-tile[data-status="for_trade"] .pokehub-collection-tile-dex {
    color: var(--admin-lab-color-notice-warning, #ff9800);
}

/* Recherché : texte bleu (même famille que le contour). */
.pokehub-collection-tile[data-status="wanted"] .pokehub-collection-tile-name,
.pokehub-collection-tile[data-status="wanted"] .pokehub-collection-tile-name .pokehub-collection-tile-gender,
.pokehub-collection-tile[data-status="wanted"] .pokehub-collection-tile-dex {
    color: var(--pokehub-collection-status-wanted, #0485c8);
}

/* Sprite principal uniquement : ne pas couper les calques Obscur / Purifié ni le liseré Dynamax. */
.pokehub-collection-tile[data-status="owned"] .pokehub-collection-tile-figure img.pokehub-collection-sprite:not(.pokehub-collection-sprite-shadow-aura):not(.pokehub-collection-sprite-purified-aura),
.pokehub-collection-tile[data-status="owned"] .pokehub-collection-tile-bg {
    filter: none;
}

.pokehub-collection-tile[data-status="owned"] {
    border-color: var(--admin-lab-color-var-green, #42af13);
    background: color-mix(in srgb, var(--admin-lab-color-var-green, #42af13) 14%, var(--me5rine-lab-bg, #ffffff));
}

.pokehub-collection-tile[data-status="for_trade"] {
    border-color: var(--admin-lab-color-notice-warning, #ff9800);
    background: color-mix(in srgb, var(--admin-lab-color-notice-warning, #ff9800) 14%, var(--me5rine-lab-bg, #ffffff));
}

.pokehub-collection-tile[data-status="wanted"] {
    border-color: var(--pokehub-collection-status-wanted, #0485c8);
    background: color-mix(in srgb, var(--pokehub-collection-status-wanted, #0485c8) 14%, var(--me5rine-lab-bg, #ffffff));
}

.pokehub-collection-tile[data-status="owned"] .pokehub-collection-tile-figure {
    background: linear-gradient(
        180deg,
        color-mix(in srgb, var(--admin-lab-color-var-green, #42af13) 28%, var(--me5rine-lab-white, #fff)) 0%,
        color-mix(in srgb, var(--admin-lab-color-var-green, #42af13) 14%, var(--pokehub-collection-tile-figure-bg, #e4eaf2)) 100%
    );
}

.pokehub-collection-tile[data-status="for_trade"] .pokehub-collection-tile-figure {
    background: linear-gradient(
        180deg,
        color-mix(in srgb, var(--admin-lab-color-notice-warning, #ff9800) 28%, var(--me5rine-lab-white, #fff)) 0%,
        color-mix(in srgb, var(--admin-lab-color-notice-warning, #ff9800) 14%, var(--pokehub-collection-tile-figure-bg, #e4eaf2)) 100%
    );
}

.pokehub-collection-tile[data-status="wanted"] .pokehub-collection-tile-figure {
    background: linear-gradient(
        180deg,
        color-mix(in srgb, var(--pokehub-collection-status-wanted, #0485c8) 28%, var(--me5rine-lab-white, #fff)) 0%,
        color-mix(in srgb, var(--pokehub-collection-status-wanted, #0485c8) 14%, var(--pokehub-collection-tile-figure-bg-bottom, #d6dee8)) 100%
    );
}

.pokehub-collection-tile-figure {
    position: relative;
    width: 100%;
    aspect-ratio: 5 / 4;
    flex-shrink: 0;
    overflow: hidden;
    background: linear-gradient(
        180deg,
        var(--pokehub-collection-tile-figure-bg, #d8e0ea) 0%,
        var(--pokehub-collection-tile-figure-bg-bottom, #c8d2df) 100%
    );
}

.pokehub-collection-tile-bg {
    position: absolute;
    inset: 0;
    /* Hauteur peinte = zone utile remplie ; ratio d’image carré conservé. */
    background-size: auto calc(100% / var(--pokehub-go-bg-scenic-ratio, 0.62)) !important;
    background-position: center top !important;
    background-repeat: no-repeat;
    opacity: 0.85;
}

/* Chromatique (listes normal + shiny) — haut gauche ; petite pastille discrète. */
.pokehub-collection-tile-shiny-icon {
    position: absolute;
    top: 0.12rem;
    left: 0.12rem;
    z-index: 3;
    display: flex;
    align-items: center;
    justify-content: center;
    width: 1.22rem;
    height: 1.22rem;
    padding: 0.04rem;
    box-sizing: border-box;
    line-height: 0;
    pointer-events: none;
    background: var(--pokehub-collection-tile-badge-bubble-bg, rgba(255, 255, 255, 0.94));
    border: none;
    border-radius: 50%;
    box-shadow: 0 0 0 1px var(--pokehub-collection-tile-badge-bubble-ring, rgba(15, 23, 42, 0.16));
}

.pokehub-collection-tile-shiny-icon-img,
.pokehub-collection-tile-shiny-icon img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: contain;
}

/* Ancien rendu emoji (cache HTML) — masqué si WP a injecté img.emoji. */
.pokehub-collection-tile-shiny-icon.pokehub-collection-tile-shiny-icon--emoji::before {
    content: none;
}

.pokehub-collection-tile-shiny-icon img.emoji {
    display: none !important;
}

/* Forme crépusculaire (ex. Lougaroc) — haut droite ; ::before évite la conversion WP en <img class="emoji">. */
.pokehub-collection-tile-dusk-icon {
    position: absolute;
    top: 0.1rem;
    right: 0.1rem;
    z-index: 3;
    display: flex;
    align-items: center;
    justify-content: center;
    width: 1.55rem;
    height: 1.55rem;
    font-size: 1rem;
    line-height: 1;
    pointer-events: none;
    background: var(--pokehub-collection-tile-badge-bubble-bg, rgba(255, 255, 255, 0.94));
    border-radius: 50%;
    box-shadow:
        var(--pokehub-collection-tile-badge-bubble-shadow, 0 1px 3px rgba(15, 23, 42, 0.16)),
        0 0 0 1px var(--pokehub-collection-tile-badge-bubble-ring, rgba(15, 23, 42, 0.16));
}

.pokehub-collection-tile-dusk-icon.pokehub-collection-tile-dusk-icon--emoji::before {
    content: '\1F319';
    display: block;
    font-family: "Apple Color Emoji", "Segoe UI Emoji", "Noto Color Emoji", "Twemoji Mozilla", sans-serif;
    font-size: 1.2rem;
    line-height: 1.55rem;
    text-align: center;
    font-variant-emoji: emoji;
}

.pokehub-collection-tile-dusk-icon img.emoji {
    display: none !important;
    width: 0 !important;
    height: 0 !important;
    margin: 0 !important;
    padding: 0 !important;
    border: 0 !important;
    overflow: hidden !important;
    position: absolute !important;
    clip: rect(0, 0, 0, 0) !important;
}

/* Dynamax — nuages rouges au-dessus du sprite + aura magenta/violet (sans pastille). */
.pokehub-collection-tile-dynamax-clouds {
    position: absolute;
    top: 4%;
    left: 50%;
    transform: translateX(-50%);
    width: 50%;
    height: 28%;
    z-index: 3;
    pointer-events: none;
    background-position: center top;
    background-repeat: no-repeat;
    background-size: contain;
}

/* Liseré violet intérieur + extérieur suivant l’alpha du PNG — voir #pokehub-dynamax-sprite-rim (plugin). */
.pokehub-collection-tile--dynamax-form .pokehub-collection-tile-figure img.pokehub-collection-sprite {
    filter: url(#pokehub-dynamax-sprite-rim);
}

/* Obscur — fumée violette calquée sur la silhouette (#pokehub-shadow-sprite-smoke, plugin). */
.pokehub-collection-tile-shadow-smoke {
    display: none !important;
}

.pokehub-collection-sprite-shadow-aura {
    position: absolute;
    left: 0;
    right: 0;
    bottom: 0;
    top: auto;
    z-index: 0;
    display: block;
    width: 100%;
    height: auto;
    max-height: none;
    object-fit: contain;
    object-position: center bottom;
    pointer-events: none;
    transform: translateY(calc(100% * var(--pokehub-tile-sprite-bottom-trim, 0.109) + 3%)) scale(1.1);
    transform-origin: center bottom;
    filter: url(#pokehub-shadow-sprite-smoke);
    opacity: 0.72;
    animation: pokehub-shadow-smoke-flicker 3.4s ease-in-out infinite;
}

@keyframes pokehub-shadow-smoke-flicker {
    0%, 100% {
        opacity: 0.64;
    }
    42% {
        opacity: 0.78;
    }
    68% {
        opacity: 0.7;
    }
}

.pokehub-collection-tile--shadow-form .pokehub-collection-tile-figure img.pokehub-collection-sprite:not(.pokehub-collection-sprite-shadow-aura) {
    position: absolute;
    z-index: 1;
    filter: none;
}

/* Obscur / Purifié / Dynamax / Gigamax / Méga — pastille en bas à gauche du sprite (comme Pokémon GO). */
.pokehub-collection-tile-form-kind-badge {
    position: absolute;
    left: 0.1rem;
    bottom: 0.1rem;
    z-index: 4;
    display: flex;
    align-items: center;
    justify-content: center;
    width: 1.55rem;
    height: 1.55rem;
    padding: 0.13rem;
    box-sizing: border-box;
    line-height: 0;
    pointer-events: none;
    background: var(--pokehub-collection-tile-badge-bubble-bg, rgba(255, 255, 255, 0.94));
    border: none;
    border-radius: 50%;
    box-shadow:
        var(--pokehub-collection-tile-badge-bubble-shadow, 0 1px 3px rgba(15, 23, 42, 0.16)),
        0 0 0 1px var(--pokehub-collection-tile-badge-bubble-ring, rgba(15, 23, 42, 0.16));
}

.pokehub-collection-tile-form-kind-badge-img,
.pokehub-collection-tile-form-kind-badge img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: contain;
    filter: drop-shadow(0 1px 1px rgba(0, 0, 0, 0.22));
}

.pokehub-collection-tile-shadow-badge,
.pokehub-collection-tile-purified-badge,
.pokehub-collection-tile-name-form-icon {
    display: none !important;
}

/* Purifié — ancien calque vapeur (remplacé par aura sprite). */
.pokehub-collection-tile-purified-vapor {
    display: none !important;
}

.pokehub-collection-sprite-purified-aura {
    position: absolute;
    left: 0;
    right: 0;
    bottom: 0;
    top: auto;
    z-index: 0;
    display: block;
    width: 100%;
    height: auto;
    max-height: none;
    object-fit: contain;
    object-position: center bottom;
    pointer-events: none;
    transform: translateY(calc(100% * var(--pokehub-tile-sprite-bottom-trim, 0.109))) scale(1.13);
    transform-origin: center bottom;
    filter: url(#pokehub-purified-sprite-glow);
    animation: pokehub-purified-aura-pulse 2.6s ease-in-out infinite;
}

@keyframes pokehub-purified-aura-pulse {
    0%, 100% { opacity: 0.9; }
    50% { opacity: 1; }
}

.pokehub-collection-tile--purified-form .pokehub-collection-tile-figure img.pokehub-collection-sprite:not(.pokehub-collection-sprite-purified-aura) {
    position: absolute;
    z-index: 1;
    filter: none;
}

/* Sprites uniquement — ne pas cibler img.emoji du badge chromatique. */
.pokehub-collection-tile-figure img.pokehub-collection-sprite {
    position: absolute;
    left: 0;
    right: 0;
    bottom: 0;
    top: auto;
    z-index: 1;
    display: block;
    width: 100%;
    height: auto;
    max-height: none;
    object-fit: contain;
    object-position: center bottom;
    /* Rogne uniquement le bas transparent (~11 %) ; le bas du PNG = bas figure = haut du texte. */
    transform: translateY(calc(100% * var(--pokehub-tile-sprite-bottom-trim, 0.109)));
}

.pokehub-collection-tile-text {
    position: relative;
    z-index: 2;
    display: flex;
    flex-direction: column;
    align-items: center;
    width: 100%;
    min-width: 0;
    padding: 0.28rem 0.32rem 0.38rem;
    line-height: 1.2;
    background: inherit;
}

.pokehub-collection-tile-dex {
    display: block;
    font-size: 0.7rem;
    font-weight: 600;
    text-align: center;
    color: var(--me5rine-lab-text-muted, #646970);
    letter-spacing: 0.02em;
}

/* Nom (+ symbole genre) centré — le libellé affiché inclut déjà formes / costumes / méga côté données */
.pokehub-collection-tile-name-stack {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 0.12rem;
    width: 100%;
    max-width: 100%;
    min-height: 2.2em;
    text-align: center;
}

.pokehub-collection-tile-name-row {
    display: inline-flex;
    align-items: center;
    flex-wrap: nowrap;
    justify-content: center;
    gap: 0.12em;
    max-width: 100%;
    text-align: center;
    vertical-align: top;
}

.pokehub-collection-tile-name-row .pokehub-collection-tile-name {
    font-size: 0.8rem;
    text-align: center;
    margin-top: 0;
    line-height: 1.25;
    color: var(--me5rine-lab-text, #11161E);
    white-space: normal;
    overflow: hidden;
    display: -webkit-box;
    -webkit-box-orient: vertical;
    min-width: 0;
    flex: 1 1 auto;
    max-width: 100%;
    line-clamp: 2;
    -webkit-line-clamp: 2;
    text-overflow: ellipsis;
    word-break: break-word;
    overflow-wrap: anywhere;
}

.pokehub-collection-tile-name .pokehub-collection-tile-gender {
    display: inline;
    font-size: 1.05em;
    line-height: inherit;
    margin: 0;
    padding: 0;
    color: inherit;
    white-space: nowrap;
    vertical-align: baseline;
}

.pokehub-collection-tile-gender-icon,
.pokehub-collection-tile-gender img {
    display: inline-block;
    width: 0.95em;
    height: 0.95em;
    margin-left: 0.12em;
    vertical-align: -0.14em;
    object-fit: contain;
}

/* Ancien rendu emoji (cache HTML) — masqué. */
.pokehub-collection-tile-gender--emoji::before {
    content: none;
}

.pokehub-collection-tile-name img.emoji {
    display: none !important;
}

.pokehub-collection-tile-line--name {
    display: flex;
    justify-content: center;
    width: 100%;
    min-width: 0;
}

.pokehub-collection-tile-background-name {
    display: block;
    width: 100%;
    max-width: 100%;
    margin-top: 0.1rem;
    font-size: 0.62rem;
    font-weight: 500;
    line-height: 1.2;
    text-align: center;
    color: #3d4349;
    word-break: break-word;
}

.pokehub-collection-tile[data-status="owned"] .pokehub-collection-tile-background-name,
.pokehub-collection-tile[data-status="for_trade"] .pokehub-collection-tile-background-name,
.pokehub-collection-tile[data-status="wanted"] .pokehub-collection-tile-background-name {
    color: #3d4349;
}

.pokehub-collection-tile-status {
    position: absolute;
    top: 4px;
    right: 4px;
    z-index: 2;
    width: 10px;
    height: 10px;
    border-radius: 50%;
    box-sizing: border-box;
    /* Évite tout contour currentColor / héritage (texte rouge des tuiles possédées, thème, etc.). */
    border: none;
    outline: none;
    color: transparent;
    background: var(--me5rine-lab-border, #c4cdd8);
}

/* Mêmes couleurs que .pokehub-collection-legend-dot (classes JS = source de vérité après MAJ). */
.pokehub-collection-tile-status.pokehub-status-owned,
.pokehub-collection-tile[data-status="owned"] > .pokehub-collection-tile-status {
    background: var(--admin-lab-color-var-green, #42af13);
}

.pokehub-collection-tile-status.pokehub-status-for_trade,
.pokehub-collection-tile[data-status="for_trade"] > .pokehub-collection-tile-status {
    background: var(--admin-lab-color-notice-warning, #ff9800);
}

.pokehub-collection-tile-status.pokehub-status-missing,
.pokehub-collection-tile[data-status="missing"] > .pokehub-collection-tile-status {
    background: var(--me5rine-lab-border, #c4cdd8);
}

.pokehub-collection-tile-status.pokehub-status-wanted,
.pokehub-collection-tile[data-status="wanted"] > .pokehub-collection-tile-status {
    background: var(--pokehub-collection-status-wanted, #0485c8);
}

/* Sprites : pleine couleur si déjà sorti en jeu, même statut collection « manquant ».
 * Gris réservé aux tuiles « Bientôt » (.pokehub-collection-tile--upcoming). */

/* Sortie programmée : rouge, bordure pointillée, non cliquable, distinct du « manquant » et du « recherché ». */
.pokehub-collection-tile--upcoming,
.pokehub-collection-tile[data-pool-upcoming="1"] {
    cursor: default;
    pointer-events: none;
    border-style: dashed;
    border-color: color-mix(in srgb, var(--pokehub-collection-status-upcoming, #df4848) 55%, var(--me5rine-lab-border, #c4cdd8));
    background: color-mix(in srgb, var(--pokehub-collection-status-upcoming, #df4848) 10%, var(--me5rine-lab-bg-secondary, #f4f6f9));
}

.pokehub-collection-tile--upcoming:hover,
.pokehub-collection-tile[data-pool-upcoming="1"]:hover {
    border-color: color-mix(in srgb, var(--pokehub-collection-status-upcoming, #df4848) 55%, var(--me5rine-lab-border, #c4cdd8));
    background: color-mix(in srgb, var(--pokehub-collection-status-upcoming, #df4848) 10%, var(--me5rine-lab-bg-secondary, #f4f6f9));
}

.pokehub-collection-tile--upcoming .pokehub-collection-tile-name,
.pokehub-collection-tile--upcoming .pokehub-collection-tile-name .pokehub-collection-tile-gender,
.pokehub-collection-tile--upcoming .pokehub-collection-tile-dex {
    color: color-mix(in srgb, var(--pokehub-collection-status-upcoming, #df4848) 75%, var(--me5rine-lab-text-muted, #646970));
}

.pokehub-collection-tile--upcoming img,
.pokehub-collection-tile--upcoming .pokehub-collection-tile-bg {
    filter: grayscale(1) sepia(0.4) hue-rotate(-25deg) saturate(0.5) brightness(0.92);
    opacity: 0.58;
}

.pokehub-collection-tile-upcoming-label {
    display: block;
    margin-top: 0.2rem;
    font-size: 0.65rem;
    font-weight: 600;
    line-height: 1.2;
    text-align: center;
    color: color-mix(in srgb, var(--pokehub-collection-status-upcoming, #df4848) 85%, var(--me5rine-lab-text-muted, #646970));
    letter-spacing: 0.02em;
}

.pokehub-collection-tile-status.pokehub-status-upcoming,
.pokehub-collection-tile[data-status="upcoming"] > .pokehub-collection-tile-status {
    background: color-mix(in srgb, var(--pokehub-collection-status-upcoming, #df4848) 70%, var(--me5rine-lab-border, #c4cdd8));
    box-shadow: 0 0 0 1px color-mix(in srgb, var(--me5rine-lab-bg, #fff) 65%, transparent);
}

/* Légende : bulle possédé = --admin-lab-color-var-green, orange = notice warning, gris = manquant */
.pokehub-collection-legend.me5rine-lab-form-hint {
    margin: var(--me5rine-lab-spacing-sm, 0.5rem) 0 var(--me5rine-lab-spacing-md, 1rem);
    font-size: 0.875rem;
    color: var(--me5rine-lab-text-muted, var(--me5rine-lab-text-light, #646970));
}

.pokehub-collection-legend-item {
    display: inline-flex;
    align-items: center;
    gap: 0.35rem;
    margin-right: var(--me5rine-lab-spacing-md, 1rem);
}

.pokehub-collection-legend-dot {
    width: 10px;
    height: 10px;
    border-radius: 50%;
    flex-shrink: 0;
}

.pokehub-collection-legend-dot.pokehub-legend-owned {
    background: var(--admin-lab-color-var-green);
}

.pokehub-collection-legend-dot.pokehub-legend-for-trade {
    background: var(--admin-lab-color-notice-warning);
}

.pokehub-collection-legend-dot.pokehub-legend-wanted {
    background: var(--pokehub-collection-status-wanted, #0485c8);
}

.pokehub-collection-legend-dot.pokehub-legend-missing {
    background: var(--me5rine-lab-border);
}

/* Mode sélection : 2 colonnes pleine largeur ; par colonne : libellé fin puis [ select | bouton ] */
.pokehub-collection-multiselect-wrap {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: var(--me5rine-lab-spacing-md, 1rem) var(--me5rine-lab-spacing-lg, 1.25rem);
    align-items: end;
    width: 100%;
    max-width: 100%;
}

.pokehub-collection-multiselect-col {
    display: flex;
    flex-direction: column;
    gap: 0.35rem;
    min-width: 0;
}

.pokehub-collection-multiselect-label {
    margin: 0;
    font-size: 0.8125rem;
    font-weight: 600;
    line-height: 1.25;
    color: var(--me5rine-lab-text-light, #50575e);
}

.pokehub-collection-multiselect-row {
    display: flex;
    flex-direction: row;
    align-items: stretch;
    gap: var(--me5rine-lab-spacing-sm, 0.5rem);
    min-width: 0;
}

.pokehub-collection-multiselect-field {
    flex: 1 1 auto;
    min-width: 0;
}

.pokehub-collection-multiselect-field select.me5rine-lab-form-select {
    width: 100%;
}

/* Select2 remplace le select : occuper la cellule flex */
.pokehub-collection-multiselect-field .select2-container {
    width: 100% !important;
    max-width: 100%;
}

.pokehub-collection-multiselect-field .select2-container--default .select2-selection--multiple {
    min-height: 2.25rem;
    padding: 0.1rem 0.25rem;
}

.pokehub-collection-multiselect-row .pokehub-collection-multiselect-add,
.pokehub-collection-multiselect-row .pokehub-collection-fortrade-add {
    flex: 0 0 auto;
    align-self: stretch;
    white-space: nowrap;
    padding-top: 0.4rem;
    padding-bottom: 0.4rem;
    padding-left: 0.65rem;
    padding-right: 0.65rem;
    font-size: 0.8125rem;
    line-height: 1.2;
    margin-top: 0 !important;
}

@media (max-width: 640px) {
    .pokehub-collection-multiselect-wrap {
        grid-template-columns: 1fr;
    }

    .pokehub-collection-multiselect-row {
        flex-direction: column;
        align-items: stretch;
    }

    .pokehub-collection-multiselect-field,
    .pokehub-collection-multiselect-row .select2-container {
        width: 100% !important;
    }

    .pokehub-collection-multiselect-row .pokehub-collection-multiselect-add,
    .pokehub-collection-multiselect-row .pokehub-collection-fortrade-add {
        width: 100% !important;
        justify-content: center;
    }
}

.pokehub-collection-multiselect-list-wrap {
    border: 1px solid var(--me5rine-lab-border, #c3c4c7);
    border-radius: var(--me5rine-lab-radius-sm, 4px);
    background: var(--me5rine-lab-bg, #fff);
    max-height: 280px;
    overflow-y: auto;
}

.pokehub-collection-multiselect-list {
    padding: var(--me5rine-lab-spacing-xs, 0.25rem) 0;
    margin: 0;
    list-style: none;
}

.pokehub-collection-multiselect-item {
    display: flex;
    align-items: center;
    gap: var(--me5rine-lab-spacing-sm, 0.5rem);
    padding: 0.35rem var(--me5rine-lab-spacing-sm, 0.5rem);
    margin: 0;
    cursor: pointer;
}

.pokehub-collection-multiselect-item:hover {
    background: var(--me5rine-lab-bg-secondary, #f0f0f1);
}

.pokehub-collection-multiselect-item input.pokehub-collection-multiselect-cb {
    flex-shrink: 0;
    margin: 0;
    cursor: pointer;
}

.pokehub-collection-multiselect-item label {
    margin: 0;
    cursor: pointer;
    flex: 1;
    font-size: 0.9rem;
    color: var(--me5rine-lab-text, #11161E);
}

.pokehub-collection-multiselect-empty {
    margin: 0;
    padding: var(--me5rine-lab-spacing-sm, 0.5rem) var(--me5rine-lab-spacing-md, 1rem);
    color: var(--me5rine-lab-text-light, #646970);
    font-size: 0.9rem;
}

.pokehub-collection-select {
    max-width: 320px;
    width: 100%;
}

.pokehub-collections-not-found {
    color: var(--me5rine-lab-text-light, #666);
}

/* --- Recherche in-game Pokémon GO (phrases collables) : familles + groupes --- */
/* Front uniquement : variables globales css/variables.css (--me5rine-lab-*), pas --admin-lab-*. */
.pokehub-pogo-search-groups {
    margin-top: var(--me5rine-lab-spacing-sm, 10px);
    display: flex;
    flex-direction: column;
    gap: var(--me5rine-lab-spacing-md, 15px);
}

.pokehub-pogo-search-family {
    min-width: 0;
}

.pokehub-pogo-search-family-title {
    margin: 0 0 var(--me5rine-lab-spacing-sm, 10px) 0;
    font-size: 1rem;
    font-weight: 700;
    line-height: 1.25;
    font-family: var(--me5rine-lab-font);
    color: var(--me5rine-lab-text, #11161e);
    letter-spacing: 0.01em;
}

.pokehub-pogo-search-family-groups {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: var(--me5rine-lab-spacing-sm, 10px) var(--me5rine-lab-spacing-md, 15px);
    align-items: start;
}

@media (max-width: 640px) {
    .pokehub-pogo-search-family-groups {
        grid-template-columns: 1fr;
    }
}

.pokehub-pogo-search-group-title {
    margin: 0 0 var(--me5rine-lab-spacing-xs, 5px) 0;
    font-size: 0.82rem;
    font-weight: 600;
    line-height: 1.25;
    font-family: var(--me5rine-lab-font);
    color: var(--me5rine-lab-text-light, #5b6570);
    letter-spacing: 0.01em;
}

.pokehub-pogo-search-group {
    margin-bottom: 0;
    min-width: 0;
}

/* Séparateur visuel entre les deux colonnes de groupes (desktop/tablette). */
.pokehub-pogo-search-family-groups .pokehub-pogo-search-group:nth-child(2n) {
    border-left: 1px solid var(--me5rine-lab-border, #dee5ec);
    padding-left: var(--me5rine-lab-spacing-md, 15px);
}

.pokehub-pogo-search-group:nth-child(2n) {
    border-left: none;
    padding-left: 0;
}

.pokehub-pogo-search-line {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: var(--me5rine-lab-spacing-xs, 5px) var(--me5rine-lab-spacing-sm, 10px);
    margin-bottom: var(--me5rine-lab-spacing-xs, 5px);
}

.pokehub-pogo-search-line .pokehub-pogo-search-input {
    flex: 1 1 8rem;
    min-width: 0;
    font-family: var(--me5rine-lab-font);
    font-size: 0.875rem;
    line-height: 1.35;
    padding: var(--me5rine-lab-spacing-xs, 5px) var(--me5rine-lab-spacing-sm, 10px);
    color: var(--me5rine-lab-text, #11161e);
    background: var(--me5rine-lab-bg, #fff);
    border: 1px solid var(--me5rine-lab-border, #dee5ec);
    border-radius: var(--me5rine-lab-radius-sm, 6px);
}

.pokehub-pogo-search-line .pokehub-pogo-search-copy {
    font-family: var(--me5rine-lab-font);
    font-size: 0.8125rem;
    line-height: 1.2;
    padding: var(--me5rine-lab-spacing-xs, 5px) var(--me5rine-lab-spacing-sm, 10px);
    min-height: 0;
}

.pokehub-pogo-search-group .pokehub-pogo-search-lines {
    list-style: none;
    margin: 0;
    padding: 0;
}

.pokehub-collection-pogo-search-summary {
    font-size: 1.1rem;
    font-weight: 600;
    line-height: 1.35;
    font-family: var(--me5rine-lab-font);
    color: var(--me5rine-lab-text, #11161e);
    cursor: pointer;
    list-style: none;
    letter-spacing: 0.01em;
}

/* Barre d’outils collection : résumé = texte courant (détails repliables) */
.pokehub-collection-pogo-search-summary--secondary {
    font-size: 0.875rem;
    font-weight: 400;
    line-height: 1.45;
    color: var(--me5rine-lab-text, #11161e);
    margin-top: 0.15rem;
    padding-top: 0;
    border-top: none;
    text-decoration: none;
    background: transparent;
}

/* Barre d’outils : libellé repliable = légende / hint (pas un second titre de section). */
.pokehub-collection-toolbar-panel--pogo .pokehub-collection-pogo-search-summary.pokehub-collection-pogo-search-summary--secondary {
    margin-top: 0.28rem;
    padding: 0.2rem 0.15rem 0.15rem 0;
    border-radius: var(--me5rine-lab-radius-sm, 6px);
    font-size: 0.8125rem;
    font-weight: 400;
    line-height: 1.4;
    letter-spacing: 0.01em;
    text-transform: none;
    color: var(--me5rine-lab-text-muted, #5c6570);
    text-decoration: none;
    background: transparent;
    transition:
        color 0.15s ease,
        background 0.15s ease;
}

/* Harmonisation header flux/fixe : GO strings affiche directement le contenu (pas d’étape summary). */
.pokehub-collection-toolbar-panel--pogo .pokehub-collection-pogo-search-summary.pokehub-collection-pogo-search-summary--secondary {
    display: none;
}

.pokehub-collection-toolbar-panel--pogo .pokehub-collection-pogo-search-summary.pokehub-collection-pogo-search-summary--secondary:hover {
    color: var(--me5rine-lab-text, #1a1f26);
    text-decoration: none;
    background: color-mix(in srgb, var(--me5rine-lab-text-muted, #889) 10%, transparent);
}

.pokehub-collection-toolbar-panel--pogo .pokehub-collection-pogo-search-summary.pokehub-collection-pogo-search-summary--secondary:focus-visible {
    color: var(--me5rine-lab-text, #1a1f26);
    text-decoration: none;
    outline: 1px solid color-mix(in srgb, var(--me5rine-lab-border, #d7dee7) 90%, transparent);
    outline-offset: 3px;
    background: color-mix(in srgb, var(--me5rine-lab-text-muted, #889) 10%, transparent);
}

/* Drawer toolbar (Grid/GO/Gen): header léger + contenu direct sans bloc imbriqué. */
.pokehub-collections-drawer--toolbar .pokehub-collections-drawer-panel,
.pokehub-collections-drawer--menu-like .pokehub-collections-drawer-panel {
    max-width: min(92vw, 430px);
}

.pokehub-collections-drawer--toolbar .pokehub-collections-drawer-header,
.pokehub-collections-drawer--menu-like .pokehub-collections-drawer-header {
    display: flex;
    flex-direction: row !important;
    align-items: center;
    justify-content: space-between;
    gap: 0.45rem;
}

/* Tiroir legacy toolbar : pas de retour. Tiroir unifié V3 : back géré par [hidden] + 18-modules-nav.css */
.pokehub-collections-drawer--toolbar:not(.pokehub-collections-drawer--unified) .pokehub-toolbar-menu-back,
.pokehub-collections-drawer--menu-like:not(.pokehub-collections-drawer--unified) .pokehub-toolbar-menu-back {
    display: none !important;
}

.pokehub-collections-drawer--toolbar .pokehub-collections-drawer-close,
.pokehub-collections-drawer--menu-like .pokehub-collections-drawer-close {
    order: unset;
    margin-right: 0;
    flex: 0 0 auto;
}

.pokehub-collections-drawer--toolbar [data-toolbar-menu-title],
.pokehub-collections-drawer--menu-like .pokehub-collections-drawer-header .me5rine-lab-title-medium {
    order: unset;
    margin: 0 !important;
    text-align: left;
    display: flex;
    align-items: center;
    line-height: 1.2;
    flex: 1 1 auto;
    min-width: 0;
}

.pokehub-collections-drawer--toolbar [data-toolbar-menu-body] {
    padding-top: 0.35rem;
}

.pokehub-collections-drawer--toolbar [data-toolbar-menu-body] .pokehub-collection-toolbar-panel,
.pokehub-collections-drawer--toolbar [data-toolbar-menu-body] .pokehub-collection-toolbar-panel-main {
    border: none;
    background: transparent;
    box-shadow: none;
    margin: 0;
    padding: 0;
}

.pokehub-collections-drawer--toolbar [data-toolbar-menu-body] .pokehub-collection-pogo-search-toolbar {
    border-top: 0;
    padding-top: 0;
}

.pokehub-collections-drawer--toolbar [data-toolbar-menu-body] .pokehub-collection-toolbar-section-title {
    display: none !important;
}

/* Drawer : mêmes raccourcis génération qu’en flux (une tuile par ligne). */
.pokehub-collections-drawer--toolbar [data-toolbar-menu-body] .pokehub-collection-generation-jump-links--pokedex,
.pokehub-collections-drawer--toolbar [data-toolbar-menu-body] .pokehub-collection-generation-jump-links:not(.pokehub-collection-generation-jump-links--pokedex) {
    grid-template-columns: 1fr;
}

.pokehub-collections-drawer--toolbar [data-toolbar-menu-body] .pokehub-collection-generation-jump-scroll-track {
    overflow: visible;
    mask-image: none;
}

.pokehub-collections-drawer--toolbar [data-toolbar-menu-body] .pokehub-collection-generation-jump-scroll-edge {
    display: none !important;
}

/* GO strings: dans la fenêtre drawer, une ligne (un groupe) par rangée. */
.pokehub-collections-drawer--toolbar [data-toolbar-menu-body] .pokehub-pogo-search-family-groups,
.pokehub-collections-drawer--toolbar [data-toolbar-menu-body] .pokehub-collection-toolbar-panel--pogo .pokehub-pogo-search-family-groups {
    grid-template-columns: 1fr !important;
}

.pokehub-collections-drawer--toolbar [data-toolbar-menu-body] .pokehub-pogo-search-family-groups .pokehub-pogo-search-group:nth-child(2n),
.pokehub-collections-drawer-body--unified [data-drawer-tool-host] .pokehub-pogo-search-family-groups .pokehub-pogo-search-group:nth-child(2n) {
    border-left: none;
    padding-left: 0;
}

.pokehub-collections-drawer--toolbar [data-toolbar-menu-body] .pokehub-pogo-search-line,
.pokehub-collections-drawer-body--unified [data-drawer-tool-host] .pokehub-pogo-search-line,
.pokehub-collection-toolbar-panel--pogo .pokehub-pogo-search-line {
    flex-direction: column;
    align-items: stretch;
    flex-wrap: nowrap;
}

.pokehub-collections-drawer--toolbar [data-toolbar-menu-body] .pokehub-pogo-search-line .pokehub-pogo-search-input,
.pokehub-collections-drawer-body--unified [data-drawer-tool-host] .pokehub-pogo-search-line .pokehub-pogo-search-input,
.pokehub-collection-toolbar-panel--pogo .pokehub-pogo-search-line .pokehub-pogo-search-input {
    flex: 1 1 auto;
    width: 100%;
}

.pokehub-collections-drawer--toolbar [data-toolbar-menu-body] .pokehub-pogo-search-line .pokehub-pogo-search-copy,
.pokehub-collections-drawer-body--unified [data-drawer-tool-host] .pokehub-pogo-search-line .pokehub-pogo-search-copy,
.pokehub-collection-toolbar-panel--pogo .pokehub-pogo-search-line .pokehub-pogo-search-copy {
    align-self: flex-start;
}

.pokehub-collections-drawer--toolbar [data-toolbar-menu-body] .pokehub-collection-toolbar-section-hint {
    font-size: 0.92rem;
    line-height: 1.35;
}

.pokehub-collection-pogo-search--toolbar-embed {
    width: 100%;
    max-width: none;
    box-sizing: border-box;
}

.pokehub-collection-toolbar-panel--pogo .pokehub-collection-toolbar-panel-main {
    width: 100%;
    max-width: none;
    align-items: stretch;
}

.pokehub-collection-toolbar-panel--pogo .pokehub-collection-pogo-search-body,
.pokehub-collection-toolbar-panel--pogo .pokehub-collection-pogo-search-toolbar,
.pokehub-collection-toolbar-panel--pogo .pokehub-pogo-search-groups {
    width: 100%;
    max-width: none;
    box-sizing: border-box;
}

.pokehub-collection-toolbar-panel--pogo .pokehub-pogo-search-family-groups {
    grid-template-columns: 1fr !important;
}

.pokehub-collection-toolbar-panel--pogo .pokehub-pogo-search-group {
    min-width: 0;
}

.pokehub-collection-pogo-search-summary::-webkit-details-marker {
    display: none;
}

.pokehub-collection-pogo-search-body {
    padding-top: var(--me5rine-lab-spacing-md, 15px);
    overscroll-behavior: contain;
}

.pokehub-collection-pogo-search-toolbar {
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    align-items: end;
    gap: var(--me5rine-lab-spacing-sm, 10px) var(--me5rine-lab-spacing-md, 15px);
    width: 100%;
    box-sizing: border-box;
}

.pokehub-collection-pogo-search-toolbar--hybrid {
    grid-template-columns: minmax(0, 1fr);
}

.pokehub-collections-drawer-body--unified [data-drawer-tool-host] .pokehub-collection-pogo-search-toolbar,
.pokehub-collections-drawer-body--unified [data-drawer-tool-host] .pokehub-collection-pogo-search-toolbar--hybrid,
.pokehub-collection-toolbar-panel--pogo .pokehub-collection-pogo-search-toolbar,
.pokehub-collection-toolbar-panel--pogo .pokehub-collection-pogo-search-toolbar--hybrid {
    grid-template-columns: minmax(0, 1fr) !important;
}

.pokehub-collection-pogo-search-toolbar-field--tile-variant.is-hidden {
    display: none !important;
}

.pokehub-collection-pogo-search-toolbar-field {
    display: flex;
    flex-direction: column;
    margin: 0;
    min-width: 0;
    width: 100%;
}

.pokehub-collection-pogo-search-toolbar-field--token {
    text-align: left;
    justify-self: stretch;
}

.pokehub-collection-pogo-search-toolbar .me5rine-lab-form-label {
    display: block;
    width: 100%;
}

.pokehub-collection-pogo-search-toolbar .me5rine-lab-form-select,
.pokehub-collection-pogo-search-toolbar .pokehub-pogo-search-token-mode,
.pokehub-collection-pogo-search-toolbar .pokehub-pogo-search-status {
    width: 100%;
    max-width: 100%;
    font-family: var(--me5rine-lab-font);
}

@media (max-width: 640px) {
    .pokehub-collection-pogo-search-toolbar {
        grid-template-columns: minmax(0, 1fr);
    }

    .pokehub-collection-pogo-search-toolbar-field--token {
        text-align: left;
        justify-self: stretch;
    }
}

@media (max-width: 640px) {
    .pokehub-pogo-search-family-groups .pokehub-pogo-search-group:nth-child(2n) {
        border-left: 0;
        padding-left: 0;
    }
}

@media (max-width: 1024px) {
    .pokehub-collection-toolbar-panel--pogo .pokehub-pogo-search-family-groups {
        grid-template-columns: 1fr;
    }
}

/* Variante fluide et dense : plus de tuiles visibles sans casser les proportions */
@media (max-width: 1024px) {
    .pokehub-collection-generation-tiles,
    .pokehub-collection-tiles:not(:has(.pokehub-collection-generation-block)) {
        grid-template-columns: repeat(4, minmax(0, 1fr));
        gap: 0.4rem;
    }

    .pokehub-collection-tile-text {
        padding: 0.24rem 0.28rem 0.32rem;
    }

    .pokehub-collection-tile-background-name {
        font-size: 0.58rem;
    }
}

@media (max-width: 768px) {
    .pokehub-collection-generation-tiles,
    .pokehub-collection-tiles:not(:has(.pokehub-collection-generation-block)) {
        grid-template-columns: repeat(4, minmax(0, 1fr));
        gap: 0.28rem;
    }

    .pokehub-collection-tile {
        border-radius: 6px;
    }

    .pokehub-collection-tile-text {
        padding: 0.16rem 0.18rem 0.22rem;
        line-height: 1.1;
    }

    .pokehub-collection-tile-dex {
        font-size: 0.55rem;
    }

    .pokehub-collection-tile-name-stack {
        gap: 0.06rem;
        min-height: 2em;
    }

    .pokehub-collection-tile-name-row .pokehub-collection-tile-name {
        font-size: 0.58rem;
        line-height: 1.12;
    }

    .pokehub-collection-tile-status {
        top: 2px;
        right: 2px;
        width: 7px;
        height: 7px;
    }
}

@media (max-width: 420px) {
    .pokehub-collection-tile-text {
        padding: 0.14rem 0.16rem 0.2rem;
    }

    .pokehub-collection-tile-name-row .pokehub-collection-tile-name {
        font-size: 0.54rem;
    }
}

/* --- Responsive : header vue + dashboard liste --- */
@media (max-width: 768px) {
    :root {
        --pokehub-collection-header-sticky-height: 4.1rem;
    }

    .pokehub-collections-wrap .me5rine-lab-dashboard-header {
        display: flex;
        flex-direction: column;
        align-items: flex-start;
        gap: var(--me5rine-lab-spacing-md, 1rem);
        padding: var(--me5rine-lab-spacing-md, 1rem);
    }

    /* Header compact une seule ligne : back gauche, titre/progression centre, actions droite. */
    .pokehub-collection-header-inner {
        display: grid;
        grid-template-columns: 1.72rem minmax(0, 1fr) auto;
        align-items: center;
        gap: 0.2rem;
        padding: 0.4rem 0.45rem;
    }

    .pokehub-collection-view-header-main {
        order: 0;
        grid-column: 2;
        min-width: 0;
        width: 100%;
        overflow: hidden;
        padding: 0 0.1rem;
        justify-content: center;
        align-items: center;
        flex-direction: column;
        flex-wrap: nowrap;
        gap: 0.08rem;
        text-align: center;
    }

    .pokehub-collection-view-header-left {
        order: 0;
        grid-column: 1;
        min-width: 0;
    }

    /*
     * Annuler responsive.css (thème) : .me5rine-lab-dashboard-header-actions .me5rine-lab-form-button { width:100% }
     * qui empile reset / settings / share en colonne sur mobile.
     */
    .pokehub-collection-view-header .pokehub-collection-view-actions.me5rine-lab-dashboard-header-actions {
        order: 0;
        grid-column: 3;
        flex: 0 0 auto;
        min-width: 0;
        width: auto !important;
        max-width: 100%;
        display: flex !important;
        flex-direction: row !important;
        flex-wrap: nowrap !important;
        align-items: center !important;
        justify-content: flex-start;
        justify-self: end;
        gap: 0.2rem !important;
        max-width: 5.7rem;
        overflow-x: auto;
        scrollbar-width: none;
    }

    .pokehub-collection-view-header .pokehub-collection-view-actions::-webkit-scrollbar {
        display: none;
    }

    /* Bat responsive.css : largeur 100 % sur chaque .me5rine-lab-form-button dans .me5rine-lab-dashboard-header-actions */
    .pokehub-collection-view-header .pokehub-collection-view-actions.me5rine-lab-dashboard-header-actions .me5rine-lab-form-button,
    .pokehub-collection-view-header .pokehub-collection-view-actions.me5rine-lab-dashboard-header-actions .button {
        width: auto !important;
        max-width: none !important;
        flex: 0 0 auto !important;
    }

    .pokehub-collection-view-header .pokehub-collection-view-actions.me5rine-lab-dashboard-header-actions .pokehub-collections-reset-inline {
        width: auto !important;
        flex: 0 0 auto !important;
    }

    .pokehub-collection-view-header .pokehub-collections-btn-share {
        margin-left: auto;
    }

    /* Ne pas étirer les boutons en pleine largeur */
    .pokehub-collection-view-header .pokehub-collection-view-actions .pokehub-collections-btn-edit-settings,
    .pokehub-collection-view-header .pokehub-collection-view-actions .pokehub-collections-btn-share,
    .pokehub-collection-view-header .pokehub-collection-view-actions .pokehub-collections-btn-reset-launch,
    .pokehub-collection-view-header .pokehub-collection-view-actions .pokehub-collections-btn-reset-apply,
    .pokehub-collection-view-header .pokehub-collection-view-actions .pokehub-collections-btn-reset-dismiss,
    .pokehub-collection-view-header .pokehub-collection-view-actions .pokehub-collections-reset-inline {
        flex: 0 0 auto;
    }

    .pokehub-collection-view-header .me5rine-lab-title-large {
        font-size: 0.78rem;
        line-height: 1.1;
        width: 100%;
        white-space: nowrap;
        overflow: hidden;
        text-overflow: ellipsis;
    }

    .pokehub-collection-progress-badge {
        font-size: 0.68rem;
        padding: 0.18em 0.38em;
    }

    .pokehub-collection-view-header .pokehub-collection-back,
    .pokehub-collection-view-header .pokehub-collections-btn-edit-settings,
    .pokehub-collection-view-header .pokehub-collections-btn-share,
    .pokehub-collection-view-header .pokehub-collections-btn-reset-launch {
        width: 1.72rem !important;
        min-width: 1.72rem !important;
        height: 1.72rem !important;
        min-height: 1.72rem !important;
        padding: 0;
        border-radius: 8px;
        display: inline-flex;
        align-items: center;
        justify-content: center;
        font-size: 0;
        line-height: 0;
        white-space: nowrap;
    }

    .pokehub-collection-view-header .pokehub-collections-btn-edit-settings .pokehub-btn-text,
    .pokehub-collection-view-header .pokehub-collections-btn-reset-launch .pokehub-btn-text,
    .pokehub-collection-view-header .pokehub-collections-btn-share .pokehub-btn-text {
        display: none;
    }

    .pokehub-collection-view-header .pokehub-collection-back-text {
        display: none;
    }

    .pokehub-collection-view-header .pokehub-collection-back::before {
        content: "←";
        font-size: 0.85rem;
        line-height: 1;
    }

    .pokehub-collection-view-header .pokehub-collections-btn-edit-settings::before {
        content: "⚙";
        font-size: 0.85rem;
        line-height: 1;
    }

    .pokehub-collection-view-header .pokehub-collections-btn-reset-launch::before {
        content: "↺";
        font-size: 0.85rem;
        line-height: 1;
    }

    .pokehub-collection-view-header .pokehub-collections-btn-share::before {
        content: "⤴";
        font-size: 0.85rem;
        line-height: 1;
    }

    .pokehub-collection-view-actions .pokehub-collections-reset-inline {
        max-width: none;
        display: inline-flex;
        align-items: center;
        flex: 0 0 auto;
    }

    /* Grid / GO / Gen : ouverture en mode menu mobile (type panneau settings). */
    .pokehub-collection-fixed-expand[data-flow-expand]:not([hidden]) {
        position: fixed;
        right: 0.5rem;
        top: calc(var(--pokehub-elementor-header-offset) + var(--pokehub-adminbar-offset) + 0.5rem);
        width: min(92vw, 430px);
        max-height: calc(100vh - (var(--pokehub-elementor-header-offset) + var(--pokehub-adminbar-offset) + 1rem));
        margin-top: 0;
        z-index: 10080;
        border-radius: var(--me5rine-lab-radius-md, 10px);
        box-shadow: 0 10px 28px rgba(12, 18, 28, 0.24);
        background: var(--me5rine-lab-bg, #fff);
    }

    }

/* Mobile : si une image de cover est présente, assurer contraste et lisibilité du centre. */
.pokehub-collection-view-header:has(.pokehub-collection-header-bg) .pokehub-collection-view-title {
    color: #fff !important;
    text-shadow: 0 1px 3px rgba(0, 0, 0, 0.55);
}

.pokehub-collection-view-header:has(.pokehub-collection-header-bg) .pokehub-collection-progress-badge {
    color: #fff;
}

/* --- Partage : dialog (lien + aperçu cover) — au-dessus du drawer / barre collection --- */
.pokehub-share-popover {
    position: fixed;
    inset: 0;
    z-index: 100060;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 1rem;
    box-sizing: border-box;
}

.pokehub-share-popover[hidden] {
    display: none;
}

.pokehub-share-popover__backdrop {
    position: absolute;
    inset: 0;
    background: var(--pokehub-collections-modal-backdrop, rgba(0, 0, 0, 0.5));
    cursor: pointer;
}

.pokehub-share-popover__panel {
    position: relative;
    z-index: 1;
    width: 100%;
    max-width: 26rem;
    padding: var(--me5rine-lab-spacing-lg, 1.25rem) var(--me5rine-lab-spacing-lg, 1.35rem);
    margin: 0;
    border: 1px solid var(--me5rine-lab-border, #dee5ec);
    border-radius: var(--me5rine-lab-radius-md, 10px);
    background: var(--me5rine-lab-bg, #fff);
    box-shadow: var(--me5rine-lab-shadow-lg, 0 10px 28px rgba(12, 18, 28, 0.24));
    box-sizing: border-box;
}

.pokehub-share-popover__header {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 0.75rem;
    margin-bottom: var(--me5rine-lab-spacing-sm, 0.75rem);
}

.pokehub-share-popover__title {
    margin: 0;
    font-size: 1.05rem;
    font-weight: 600;
    line-height: 1.3;
    color: var(--me5rine-lab-text, #11161e);
}

.pokehub-share-popover__close {
    flex-shrink: 0;
    border: 0;
    background: transparent;
    font-size: 1.5rem;
    line-height: 1;
    cursor: pointer;
    padding: 0 0.15rem;
    color: var(--me5rine-lab-text-muted, #7a8698);
    opacity: 0.85;
}

.pokehub-share-popover__close:hover,
.pokehub-share-popover__close:focus {
    opacity: 1;
    color: var(--me5rine-lab-text, #11161e);
}

.pokehub-share-popover__body {
    display: flex;
    flex-direction: column;
    gap: var(--me5rine-lab-spacing-md, 1rem);
}

.pokehub-share-popover__hint {
    margin: 0;
    font-size: 0.875rem;
    color: var(--me5rine-lab-text-light, #5d697d);
    line-height: 1.35;
}

.pokehub-share-popover__copy {
    align-self: flex-start;
}

.pokehub-share-popover__cover-section {
    padding-top: var(--me5rine-lab-spacing-sm, 0.5rem);
    border-top: 1px solid var(--me5rine-lab-border, #dee5ec);
}

.pokehub-share-popover__cover-label {
    margin: 0 0 var(--me5rine-lab-spacing-xs, 0.5rem);
    font-weight: 600;
    color: var(--me5rine-lab-text, #11161e);
}

.pokehub-share-popover__cover-mount {
    min-height: 4.5rem;
    border: 1px solid var(--me5rine-lab-border, #dee5ec);
    border-radius: var(--me5rine-lab-radius-sm, 6px);
    overflow: hidden;
    background: var(--me5rine-lab-surface-alt, #f8fafc);
    display: flex;
    align-items: center;
    justify-content: center;
}

.pokehub-share-popover__cover-img {
    display: block;
    width: 100%;
    max-height: 10rem;
    object-fit: cover;
}

.pokehub-share-popover__cover-empty {
    margin: 0.75rem 1rem;
    text-align: center;
    font-size: 0.875rem;
    color: var(--me5rine-lab-text-light, #5d697d);
}

.pokehub-share-popover__private-message {
    margin: 0;
    font-size: 0.9375rem;
    line-height: 1.4;
    color: var(--me5rine-lab-text, #11161e);
}

.pokehub-share-popover__private-notice {
    margin: 0;
    font-size: 0.875rem;
    color: var(--me5rine-lab-text-light, #5d697d);
    line-height: 1.35;
}

.pokehub-share-popover__private-notice.is-hidden,
.pokehub-share-popover__private-notice[hidden] {
    display: none;
}

.pokehub-share-popover__private-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 0.5rem;
    align-items: center;
}

.pokehub-share-popover__private[hidden],
.pokehub-share-popover__public[hidden] {
    display: none;
}

/* Trade list image generator (drawer) */
.pokehub-collections-drawer-panel--trade-list {
    max-width: min(34rem, 100vw);
}

.pokehub-collections-drawer--trade-list .me5rine-lab-form-field > .me5rine-lab-form-label + .pokehub-trade-list-friend-code-switch-wrap,
.pokehub-collections-drawer--trade-list .me5rine-lab-form-field > .me5rine-lab-form-label + .pokehub-trade-list-radio-row {
    display: block;
    margin-top: var(--me5rine-lab-spacing-xs, 0.35rem);
}

.pokehub-trade-list-friend-code-switch-wrap.is-hidden,
.pokehub-trade-list-trainer-missing.is-hidden,
#pokehub-trade-list-tile-variant-wrap.is-hidden {
    display: none !important;
}

.pokehub-trade-list-trainer-missing {
    margin: var(--me5rine-lab-spacing-xs, 0.35rem) 0 0;
}

.pokehub-trade-list-trainer-missing a {
    font-weight: 600;
}

.pokehub-trade-list-wanted-status-switch {
    margin-top: var(--me5rine-lab-spacing-sm, 0.5rem);
}

.pokehub-trade-list-wanted-status-switch-text {
    display: inline-flex;
    align-items: center;
    gap: 0.45rem;
}

.pokehub-trade-list-wanted-status-mode {
    display: inline-flex;
    align-items: center;
    gap: 0.4rem;
}

.pokehub-trade-list-wanted-status-mode--missing {
    display: none;
}

.pokehub-trade-list-wanted-status-switch .pokehub-collections-setting-switch-input:checked ~ .pokehub-trade-list-wanted-status-switch-text .pokehub-trade-list-wanted-status-mode--wanted {
    display: none;
}

.pokehub-trade-list-wanted-status-switch .pokehub-collections-setting-switch-input:checked ~ .pokehub-trade-list-wanted-status-switch-text .pokehub-trade-list-wanted-status-mode--missing {
    display: inline-flex;
}

.pokehub-trade-list-appearance-row .pokehub-trade-list-color-field {
    display: flex;
    flex-direction: row;
    flex-wrap: nowrap;
    align-items: center;
    gap: 0.5rem;
    max-width: 100%;
}

.pokehub-trade-list-bg-color {
    box-sizing: border-box;
    width: 2.75rem;
    height: 2.75rem;
    min-width: 2.75rem;
    min-height: 2.75rem;
    padding: 0.2rem;
    margin: 0;
    border: 1px solid var(--me5rine-lab-border, #dee5ec);
    border-radius: var(--me5rine-lab-radius-sm, 4px);
    cursor: pointer;
    background: var(--me5rine-lab-bg, #fff);
    vertical-align: middle;
}

.pokehub-trade-list-bg-color::-webkit-color-swatch-wrapper {
    padding: 0;
}

.pokehub-trade-list-bg-color::-webkit-color-swatch {
    border: none;
    border-radius: 2px;
}

.pokehub-trade-list-bg-color::-moz-color-swatch {
    border: none;
    border-radius: 2px;
}

.pokehub-trade-list-bg-reset {
    box-sizing: border-box;
    flex: 0 0 auto;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    height: 2.75rem;
    min-height: 2.75rem;
    margin: 0;
    padding: 0 0.9rem;
    line-height: 1;
    white-space: nowrap;
}

.pokehub-trade-list-radio-row {
    display: flex;
    flex-direction: column;
    gap: 0.4rem;
}

.pokehub-trade-list-radio-row--inline {
    flex-direction: row;
    flex-wrap: wrap;
    gap: 0.65rem 1.25rem;
}

.pokehub-collections-drawer--trade-list .pokehub-trade-list-radio-row--inline .pokehub-trade-list-radio-label {
    display: inline-flex;
    align-items: center;
    gap: 0.5rem;
    margin: 0;
    cursor: pointer;
    font-size: inherit;
    font-weight: 400;
    color: var(--me5rine-lab-text, #11161e);
    text-transform: none;
    letter-spacing: normal;
}

.pokehub-trade-list-pick-wrap.is-hidden {
    display: none !important;
}

.pokehub-collections-drawer--trade-list .pokehub-trade-list-pick-panel {
    margin-top: var(--me5rine-lab-spacing-sm, 0.5rem);
}

.pokehub-collections-drawer--trade-list .pokehub-trade-list-pick-panel-body {
    padding-top: var(--me5rine-lab-spacing-sm, 0.5rem);
}

.pokehub-trade-list-pick-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 0.45rem;
    margin: 0 0 0.5rem;
}

.pokehub-trade-list-pick-tiles {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(6.5rem, 1fr));
    gap: var(--me5rine-lab-spacing-sm, 0.5rem);
    max-height: min(42vh, 22rem);
    overflow-y: auto;
    border: 1px solid var(--me5rine-lab-border, #dee5ec);
    border-radius: var(--me5rine-lab-radius-sm, 6px);
    padding: 0.55rem;
    background: var(--me5rine-lab-surface-alt, #f8fafc);
}

.pokehub-trade-list-pick-tiles--compact {
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 0.28rem;
    max-height: min(40vh, 20rem);
}

.pokehub-trade-list-pick-panel .pokehub-trade-list-pick-tiles--compact {
    border: 0;
    padding: 0;
    background: transparent;
}

.pokehub-trade-list-pick-item {
    display: block;
    margin: 0;
    cursor: pointer;
    position: relative;
}

.pokehub-trade-list-pick-input {
    position: absolute;
    width: 1px;
    height: 1px;
    padding: 0;
    margin: -1px;
    overflow: hidden;
    clip: rect(0, 0, 0, 0);
    white-space: nowrap;
    border: 0;
}

.pokehub-trade-list-pick-tile-visual {
    pointer-events: none;
    width: 100%;
    border-radius: var(--me5rine-lab-radius-sm, 6px);
    transition: opacity 0.15s ease, filter 0.15s ease, box-shadow 0.15s ease;
}

/* Inclus par défaut : couleurs + contour gris */
.pokehub-trade-list-pick-item:not(:has(.pokehub-trade-list-pick-input:checked)) .pokehub-trade-list-pick-tile-visual {
    opacity: 1;
    filter: none;
    box-shadow: 0 0 0 1px color-mix(in srgb, var(--me5rine-lab-text-muted, #58606e) 38%, transparent);
}

.pokehub-trade-list-pick-item:not(:has(.pokehub-trade-list-pick-input:checked)) .pokehub-trade-list-pick-tile-visual .pokehub-collection-sprite,
.pokehub-trade-list-pick-item:not(:has(.pokehub-trade-list-pick-input:checked)) .pokehub-trade-list-pick-tile-visual .pokehub-collection-tile-bg {
    filter: none;
    opacity: 1;
}

/* Exclu : gris transparent + sprite en niveaux de gris */
.pokehub-trade-list-pick-item:has(.pokehub-trade-list-pick-input:checked) .pokehub-trade-list-pick-tile-visual {
    opacity: 0.42;
    filter: grayscale(1);
    box-shadow: 0 0 0 1px color-mix(in srgb, var(--me5rine-lab-text-muted, #58606e) 18%, transparent);
}

.pokehub-trade-list-pick-item:has(.pokehub-trade-list-pick-input:checked) .pokehub-trade-list-pick-tile-visual .pokehub-collection-tile-name,
.pokehub-trade-list-pick-item:has(.pokehub-trade-list-pick-input:checked) .pokehub-trade-list-pick-tile-visual .pokehub-collection-tile-dex {
    color: var(--me5rine-lab-text-muted, #8a939c);
}

.pokehub-trade-list-pick-tiles .pokehub-collection-tile-text {
    font-size: 0.78rem;
}

.pokehub-trade-list-pick-tiles--compact .pokehub-collection-tile-text {
    font-size: 0.54rem;
    line-height: 1.05;
    padding: 0.12rem 0.1rem 0.18rem;
}

.pokehub-trade-list-pick-tiles .pokehub-collection-tile-dex {
    font-size: 0.72rem;
}

.pokehub-trade-list-pick-tiles--compact .pokehub-collection-tile-dex {
    display: none;
}

.pokehub-trade-list-pick-tiles--compact .pokehub-collection-tile-figure {
    min-height: 2rem;
    padding: 0.12rem 0.08rem 0;
}

.pokehub-trade-list-pick-tiles--compact .pokehub-collection-sprite {
    max-height: 1.72rem;
}

.pokehub-trade-list-pick-tiles--compact .pokehub-collection-tile-name {
    font-size: inherit;
    line-height: 1.05;
}

.pokehub-trade-list-preview-wrap {
    margin-top: 0;
}

.pokehub-trade-list-preview-wrap .pokehub-trade-list-preview-mount {
    margin-top: var(--me5rine-lab-spacing-xs, 0.35rem);
}

.pokehub-trade-list-preview-mount .me5rine-lab-form-message-warning,
.pokehub-trade-list-preview-mount .me5rine-lab-form-message-error {
    margin-bottom: 0;
    width: 100%;
    box-sizing: border-box;
}

.pokehub-trade-list-preview-mount {
    max-height: min(52vh, 28rem);
    overflow: auto;
}

.pokehub-trade-list-preview-mount--ready,
.pokehub-trade-list-preview-mount:has(.pokehub-trade-list-preview-canvas) {
    background: var(--me5rine-lab-surface-alt, #f8fafc);
    border: 1px solid var(--me5rine-lab-border, #dee5ec);
    border-radius: var(--me5rine-lab-radius-sm, 6px);
    padding: 0.55rem;
}

.pokehub-trade-list-preview-canvas {
    display: block;
    width: 100%;
    height: auto;
    border-radius: var(--me5rine-lab-radius-sm, 6px);
}

.pokehub-trade-list-drawer-footer {
    flex-wrap: wrap;
}

.pokehub-trade-list-drawer-footer .pokehub-trade-list-download {
    flex: 1 1 12rem;
}

.pokehub-trade-list-drawer-footer .pokehub-trade-list-generate {
    flex: 1 1 10rem;
}

.pokehub-trade-list-status.is-hidden {
    display: none !important;
}

.pokehub-trade-list-status:not(.is-hidden) {
    margin: 0 var(--me5rine-lab-spacing-lg, 1.25rem) var(--me5rine-lab-spacing-sm, 0.5rem);
}

/* --- Header vue collection simplifié + menu nav --- */
.pokehub-collection-view-header--slim {
    margin-bottom: 0;
}

.pokehub-collection-header-inner--slim {
    display: flex;
    align-items: center;
    padding: 0.45rem var(--pokehub-toolbar-shell-pad-x, var(--me5rine-lab-spacing-lg, 1.25rem));
    min-height: 0;
}

.pokehub-collection-header-inner--slim .pokehub-collection-view-header-main {
    flex-direction: row;
    align-items: center;
    justify-content: space-between;
    gap: 0.65rem;
    text-align: left;
    width: 100%;
}

.pokehub-collection-view-header--slim .pokehub-collection-view-title {
    flex: 1 1 auto;
    min-width: 0;
    margin: 0;
    text-align: left;
}

.pokehub-collection-view-header--slim .pokehub-collection-stats {
    flex: 0 0 auto;
    margin: 0;
}

.pokehub-collection-view-header--slim .me5rine-lab-title-large {
    font-size: clamp(1.05rem, 2.5vw, 1.35rem);
    line-height: 1.2;
}

.pokehub-collection-view-header--slim .pokehub-collection-progress-badge {
    font-size: 1.05rem;
}

.pokehub-collection-header-search-row {
    display: flex;
    flex-direction: column;
    align-items: stretch;
    gap: 0;
    width: 100%;
    padding: 0;
    box-sizing: border-box;
    background: var(--me5rine-lab-bg, #fff);
    border-top: 1px solid color-mix(in srgb, var(--me5rine-lab-border, #d7dee7) 55%, transparent);
}

.pokehub-collection-header-toolbar-row {
    display: flex;
    align-items: stretch;
    gap: 12px;
    width: 100%;
    box-sizing: border-box;
    padding: 0.45rem 0;
}

.pokehub-collection-header-toolbar-cell {
    flex: 1 1 0;
    min-width: 0;
    display: flex;
    align-items: stretch;
}

@media (max-width: 1024px) {
    .pokehub-collection-header-toolbar-row {
        gap: 0.5rem;
    }

    .pokehub-collection-header-toolbar-cell--search,
    .pokehub-collection-header-toolbar-cell--bulk-mark,
    .pokehub-collection-header-toolbar-cell--grace,
    .pokehub-collection-header-toolbar-cell--reset {
        flex: 0 0 auto;
        width: auto;
        max-width: none;
    }

    .pokehub-collection-header-toolbar-cell--tools {
        flex: 1 1 0;
        min-width: 0;
    }

    .pokehub-collection-header-toolbar-cell--search > .pokehub-collection-search-toggle,
    .pokehub-collection-header-toolbar-cell--bulk-mark > .pokehub-collection-bulk-mark-toggle,
    .pokehub-collection-header-toolbar-cell--grace > .pokehub-collection-filter-grace-apply,
    .pokehub-collection-header-toolbar-cell--reset > .pokehub-collection-reset-toggle {
        width: 2.55rem;
        min-width: 2.55rem;
        max-width: 2.55rem;
        height: 2.55rem;
        min-height: 2.55rem;
        padding: 0 !important;
        gap: 0;
        align-items: center;
        justify-content: center;
    }

    .pokehub-collection-header-toolbar-cell--search .pokehub-collection-search-toggle-label,
    .pokehub-collection-header-toolbar-cell--bulk-mark .pokehub-collection-bulk-mark-toggle-label--long,
    .pokehub-collection-header-toolbar-cell--bulk-mark .pokehub-collection-bulk-mark-toggle-label--short,
    .pokehub-collection-header-toolbar-cell--grace .pokehub-collection-filter-grace-apply-label--long,
    .pokehub-collection-header-toolbar-cell--grace .pokehub-collection-filter-grace-apply-label--short,
    .pokehub-collection-header-toolbar-cell--reset .pokehub-collection-reset-toggle-label--long,
    .pokehub-collection-header-toolbar-cell--reset .pokehub-collection-reset-toggle-label--short {
        display: none !important;
    }

    .pokehub-collection-header-toolbar-cell--search .pokehub-collection-search-toggle-icon,
    .pokehub-collection-header-toolbar-cell--bulk-mark .pokehub-collection-bulk-mark-toggle-icon,
    .pokehub-collection-header-toolbar-cell--grace .pokehub-collection-filter-grace-apply-icon,
    .pokehub-collection-header-toolbar-cell--reset .pokehub-collection-reset-toggle-icon {
        margin: 0;
        opacity: 0.85;
    }

    .pokehub-collection-header-toolbar-cell--tools .pokehub-btn-text--long {
        display: none !important;
    }

    .pokehub-collection-header-toolbar-cell--tools .pokehub-btn-text--short {
        display: block;
        width: 100%;
    }
}

@media (min-width: 1025px) {
    .pokehub-collection-header-toolbar-cell--tools .pokehub-btn-text--short {
        display: none !important;
    }

    .pokehub-collection-header-toolbar-cell--tools .pokehub-btn-text--long {
        display: block;
        width: 100%;
    }

    .pokehub-collection-header-toolbar-cell--bulk-mark .pokehub-collection-bulk-mark-toggle-label--short,
    .pokehub-collection-header-toolbar-cell--grace .pokehub-collection-filter-grace-apply-label--short,
    .pokehub-collection-header-toolbar-cell--reset .pokehub-collection-reset-toggle-label--short {
        display: none !important;
    }

    .pokehub-collection-header-toolbar-cell--bulk-mark .pokehub-collection-bulk-mark-toggle-label--long,
    .pokehub-collection-header-toolbar-cell--grace .pokehub-collection-filter-grace-apply-label--long,
    .pokehub-collection-header-toolbar-cell--reset .pokehub-collection-reset-toggle-label--long {
        display: block;
    }

    .pokehub-collection-header-toolbar-row:has(.pokehub-collection-header-toolbar-cell--bulk-mark) .pokehub-collection-header-toolbar-cell--search,
    .pokehub-collection-header-toolbar-row:has(.pokehub-collection-header-toolbar-cell--bulk-mark) .pokehub-collection-header-toolbar-cell--bulk-mark,
    .pokehub-collection-header-toolbar-row:has(.pokehub-collection-header-toolbar-cell--bulk-mark) .pokehub-collection-header-toolbar-cell--grace,
    .pokehub-collection-header-toolbar-row:has(.pokehub-collection-header-toolbar-cell--bulk-mark) .pokehub-collection-header-toolbar-cell--reset {
        flex: 1 1 0;
    }

    .pokehub-collection-header-toolbar-row:not(:has(.pokehub-collection-header-toolbar-cell--bulk-mark)) .pokehub-collection-header-toolbar-cell--search {
        flex: 2 1 0;
    }

    .pokehub-collection-header-toolbar-row:not(:has(.pokehub-collection-header-toolbar-cell--bulk-mark)) .pokehub-collection-header-toolbar-cell--grace,
    .pokehub-collection-header-toolbar-row:not(:has(.pokehub-collection-header-toolbar-cell--bulk-mark)) .pokehub-collection-header-toolbar-cell--reset {
        flex: 1 1 0;
    }

    .pokehub-collection-header-toolbar-row:not(:has(.pokehub-collection-header-toolbar-cell--grace)):not(:has(.pokehub-collection-header-toolbar-cell--bulk-mark)) .pokehub-collection-header-toolbar-cell--search,
    .pokehub-collection-header-toolbar-row:not(:has(.pokehub-collection-header-toolbar-cell--grace)):not(:has(.pokehub-collection-header-toolbar-cell--bulk-mark)) .pokehub-collection-header-toolbar-cell--reset {
        flex: 1 1 0;
    }
}

.pokehub-collection-header-toolbar-cell > .pokehub-collection-search-toggle,
.pokehub-collection-header-toolbar-cell > .pokehub-collection-bulk-mark-toggle,
.pokehub-collection-header-toolbar-cell > .pokehub-collection-reset-toggle,
.pokehub-collection-header-toolbar-cell > .pokehub-toolbar-menu-open,
.pokehub-collection-header-toolbar-cell > .pokehub-collection-filter-grace-apply {
    width: 100%;
    max-width: 100%;
    min-width: 100%;
    min-height: 2.55rem;
    margin: 0 !important;
    box-sizing: border-box;
    font-size: 0.78rem;
    line-height: 1.2;
    padding: 0.45rem 0.5rem !important;
    text-transform: uppercase;
    letter-spacing: 0.02em;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    text-align: center;
    border-radius: var(--me5rine-lab-radius-sm, 6px) !important;
}

.pokehub-collection-header-toolbar-cell--tools .pokehub-btn-text,
.pokehub-collection-search-toggle-label,
.pokehub-collection-bulk-mark-toggle-label,
.pokehub-collection-reset-toggle-label,
.pokehub-collection-filter-grace-apply-label {
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    min-width: 0;
}

.pokehub-collection-header-toolbar-cell--tools .pokehub-btn-text {
    display: block;
    width: 100%;
}

.pokehub-collection-header-toolbar-cell .pokehub-toolbar-menu-open {
    white-space: normal;
    hyphens: auto;
}

.pokehub-collection-header-reset-row {
    display: none !important;
}

.pokehub-collection-header-search-toolbar {
    display: none;
}

.pokehub-collection-header-search-actions {
    display: none !important;
}

.pokehub-collection-header-search-toolbar .pokehub-collection-search-toggle {
    flex: 1 1 auto;
    min-width: 0;
    max-width: 100%;
}

.pokehub-collection-search-toggle {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 0.35rem;
    width: 100%;
    margin: 0;
    padding: 0.45rem 0.5rem;
    border: 1px solid var(--me5rine-lab-border, #c9cfd6) !important;
    border-radius: var(--me5rine-lab-radius-sm, 6px);
    background: var(--me5rine-lab-bg-secondary, #f3f4f6) !important;
    color: var(--me5rine-lab-text, #11161e) !important;
    font: inherit;
    font-weight: 600;
    font-size: 0.78rem;
    line-height: 1.2;
    text-transform: uppercase;
    letter-spacing: 0.02em;
    cursor: pointer;
    text-align: center;
    box-sizing: border-box;
    box-shadow: none !important;
    transition: background-color 0.15s ease, border-color 0.15s ease, color 0.15s ease;
}

.pokehub-collection-search-toggle-label {
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    min-width: 0;
}

.pokehub-collection-search-toggle:hover,
.pokehub-collection-search-toggle:focus-visible {
    background: color-mix(in srgb, var(--me5rine-lab-bg-secondary, #e8eaed) 55%, var(--me5rine-lab-text-muted, #8896a6)) !important;
    border-color: color-mix(in srgb, var(--me5rine-lab-border, #b8bec6) 45%, var(--me5rine-lab-text-muted, #8896a6)) !important;
    color: var(--me5rine-lab-text, #11161e) !important;
    outline: none;
    box-shadow: none !important;
}

.pokehub-collection-search-toggle:active {
    background: color-mix(in srgb, var(--me5rine-lab-bg-secondary, #e8eaed) 40%, var(--me5rine-lab-text-muted, #8896a6)) !important;
    border-color: var(--me5rine-lab-border, #b8bec6) !important;
    color: var(--me5rine-lab-text, #11161e) !important;
}

.pokehub-collection-search-toggle[aria-expanded="true"] {
    border-radius: var(--me5rine-lab-radius-sm, 6px);
    background: var(--me5rine-lab-bg-secondary, #f3f4f6) !important;
}

.pokehub-collection-search-expand {
    width: 100%;
    box-sizing: border-box;
    padding: 0 0 0.55rem;
}

.pokehub-collection-search-expand .pokehub-collection-name-search--toolbar-header {
    margin: 0;
    padding: 0.55rem 0.65rem 0.65rem;
    max-width: 100%;
    border: 1px solid var(--me5rine-lab-border, #c9cfd6);
    border-radius: var(--me5rine-lab-radius-sm, 6px);
    background: var(--me5rine-lab-bg, #fff);
}

.pokehub-collection-search-toggle-icon,
.pokehub-collection-bulk-mark-toggle-icon,
.pokehub-collection-filter-grace-apply-icon,
.pokehub-collection-reset-toggle-icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex: 0 0 auto;
    flex-shrink: 0;
    line-height: 0;
    opacity: 0.7;
    color: var(--me5rine-lab-text-muted, #8896a6);
}

.pokehub-collection-search-toggle-icon svg,
.pokehub-collection-bulk-mark-toggle-icon svg,
.pokehub-collection-filter-grace-apply-icon svg,
.pokehub-collection-reset-toggle-icon svg {
    display: block;
    width: 18px;
    height: 18px;
    flex-shrink: 0;
}

.pokehub-collection-header-search-row.pokehub-collection-header-search-row--open {
    border-bottom: 1px solid color-mix(in srgb, var(--me5rine-lab-border, #d7dee7) 45%, transparent);
}

.pokehub-collection-header-search-row.pokehub-collection-header-search-row--open .pokehub-collection-header-toolbar-row {
    padding-bottom: 0.4rem;
}

.pokehub-collection-search-expand[hidden] {
    display: none !important;
}

.pokehub-collection-bulk-mark-expand {
    width: 100%;
    box-sizing: border-box;
    padding: 0 0 0.55rem;
}

.pokehub-collection-bulk-mark-expand[hidden] {
    display: none !important;
}

.pokehub-collection-bulk-mark-toggle {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 0.35rem;
    width: 100%;
    margin: 0;
    padding: 0.45rem 0.5rem;
    border: 1px solid var(--me5rine-lab-border, #c9cfd6) !important;
    border-radius: var(--me5rine-lab-radius-sm, 6px);
    background: var(--me5rine-lab-bg-secondary, #f3f4f6) !important;
    color: var(--me5rine-lab-text, #11161e) !important;
    font: inherit;
    font-weight: 600;
    font-size: 0.78rem;
    line-height: 1.2;
    text-transform: uppercase;
    letter-spacing: 0.02em;
    cursor: pointer;
    text-align: center;
    box-sizing: border-box;
    box-shadow: none !important;
    transition: background-color 0.15s ease, border-color 0.15s ease, color 0.15s ease;
}

.pokehub-collection-bulk-mark-toggle:hover,
.pokehub-collection-bulk-mark-toggle:focus-visible {
    background: color-mix(in srgb, var(--me5rine-lab-bg-secondary, #e8eaed) 55%, var(--me5rine-lab-text-muted, #8896a6)) !important;
    border-color: color-mix(in srgb, var(--me5rine-lab-border, #b8bec6) 45%, var(--me5rine-lab-text-muted, #8896a6)) !important;
    color: var(--me5rine-lab-text, #11161e) !important;
    outline: none;
    box-shadow: none !important;
}

.pokehub-collection-bulk-mark-toggle:active {
    background: color-mix(in srgb, var(--me5rine-lab-bg-secondary, #e8eaed) 40%, var(--me5rine-lab-text-muted, #8896a6)) !important;
    border-color: var(--me5rine-lab-border, #b8bec6) !important;
}

.pokehub-collection-bulk-mark-toggle[aria-expanded="true"] {
    border-radius: var(--me5rine-lab-radius-sm, 6px);
    background: var(--me5rine-lab-bg-secondary, #f3f4f6) !important;
}

.pokehub-collection-reset-toggle,
.pokehub-collection-filter-grace-apply--header {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 0.35rem;
    width: 100%;
    margin: 0;
    padding: 0.45rem 0.5rem;
    border: 1px solid var(--me5rine-lab-border, #c9cfd6) !important;
    border-radius: var(--me5rine-lab-radius-sm, 6px);
    background: var(--me5rine-lab-bg-secondary, #f3f4f6) !important;
    color: var(--me5rine-lab-text, #11161e) !important;
    font: inherit;
    font-weight: 600;
    font-size: 0.78rem;
    line-height: 1.2;
    text-transform: uppercase;
    letter-spacing: 0.02em;
    cursor: pointer;
    text-align: center;
    box-sizing: border-box;
    box-shadow: none !important;
    transition: background-color 0.15s ease, border-color 0.15s ease, color 0.15s ease;
}

.pokehub-collection-reset-toggle:hover,
.pokehub-collection-reset-toggle:focus-visible,
.pokehub-collection-filter-grace-apply--header:hover,
.pokehub-collection-filter-grace-apply--header:focus-visible {
    background: color-mix(in srgb, var(--me5rine-lab-bg-secondary, #e8eaed) 40%, var(--me5rine-lab-text-muted, #8896a6)) !important;
    border-color: var(--me5rine-lab-border, #b8bec6) !important;
    color: var(--me5rine-lab-text, #11161e) !important;
    outline: none;
    box-shadow: none !important;
}

.pokehub-collection-reset-toggle:active,
.pokehub-collection-filter-grace-apply--header:active {
    background: color-mix(in srgb, var(--me5rine-lab-bg-secondary, #e8eaed) 40%, var(--me5rine-lab-text-muted, #8896a6)) !important;
    border-color: var(--me5rine-lab-border, #b8bec6) !important;
}

.pokehub-collection-reset-toggle.is-disabled,
.pokehub-collection-reset-toggle:disabled,
.pokehub-collection-filter-grace-apply.is-disabled,
.pokehub-collection-filter-grace-apply:disabled {
    opacity: 0.72;
    cursor: not-allowed;
    pointer-events: none;
    filter: grayscale(0.15);
}

.pokehub-collection-reset-toggle-label--short,
.pokehub-collection-filter-grace-apply-label--short {
    display: none;
}

.pokehub-modules-nav-subgroup-label {
    display: block;
    padding: 0.35rem 0.75rem 0.25rem;
    font-size: 0.72rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.04em;
    color: var(--me5rine-lab-text-muted, #667085);
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.pokehub-modules-nav-subgroup.open > .submenu {
    display: block;
}

.pokehub-collection-filter-grace-apply.is-hidden {
    display: none !important;
}

.pokehub-toolbar-menu-open {
    width: 100%;
    max-width: 100%;
    flex: none;
    min-width: 0;
    box-sizing: border-box;
    background: var(--me5rine-lab-white, #fff) !important;
    color: var(--me5rine-lab-text, #11161e) !important;
    border: 1px solid var(--me5rine-lab-border, #c9cfd6) !important;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.02em;
    box-shadow: none !important;
}

.pokehub-toolbar-menu-open:hover,
.pokehub-toolbar-menu-open:focus,
.pokehub-toolbar-menu-open:focus-visible,
.pokehub-toolbar-menu-open:active {
    background: var(--me5rine-lab-white, #fff) !important;
    color: var(--me5rine-lab-text, #11161e) !important;
    border-color: var(--me5rine-lab-border, #c9cfd6) !important;
}

.pokehub-collection-header-icon-btn {
    min-width: 0;
    padding: 0.35rem 0.5rem !important;
    background: var(--me5rine-lab-text, #11161e) !important;
    color: var(--me5rine-lab-white, #fff) !important;
    border: 1px solid var(--me5rine-lab-text, #11161e) !important;
    font-size: 0.78rem;
    line-height: 1.2;
}

.pokehub-collection-header-icon-btn .pokehub-collection-back-text,
.pokehub-collection-header-icon-btn .pokehub-btn-text {
    font-size: inherit;
}

.pokehub-toolbar-menu-back {
    order: 0;
    flex: 0 0 auto;
    width: 2rem;
    height: 2rem;
    margin: 0;
    padding: 0;
    border: 0;
    border-radius: var(--me5rine-lab-radius-sm, 6px);
    background: transparent;
    color: var(--me5rine-lab-text, #11161e);
    font-size: 1.35rem;
    line-height: 1;
    cursor: pointer;
}

.pokehub-collections-drawer-body--toolbar {
    display: flex;
    flex-direction: column;
    gap: 0;
}

.pokehub-collections-drawer-body--toolbar [data-toolbar-menu-nav] {
    display: flex;
    flex-direction: column;
    gap: 0;
}

.pokehub-toolbar-menu-action-triggers {
    display: none !important;
}

/* Sécurité : aucun bouton trade/reset legacy dans la barre header outils. */
.pokehub-collection-header-search-row .pokehub-collections-btn-trade-list,
.pokehub-collection-header-search-row .pokehub-collections-btn-reset-launch,
.pokehub-collection-header-search-row .pokehub-collections-reset-inline {
    display: none !important;
}

@media (min-width: 783px) {
    .pokehub-collection-toolbar-tools {
        border-bottom: 0;
        padding-bottom: 0;
    }

    .pokehub-collection-fixed-expand[data-flow-expand] {
        margin-top: 0.45rem;
    }
}
