/* /Components/Layout/ReconnectModal.razor.rz.scp.css */
/* Reconnexion en pastille (refonte V1.1, planche « Les chargements », W2) : posée en bas de
   l'écran, la page reste visible derrière. Les trois barres du logo jouent pendant l'attente. */

.components-reconnect-first-attempt-visible[b-e41lz8sqnm],
.components-reconnect-repeated-attempt-visible[b-e41lz8sqnm],
.components-reconnect-failed-visible[b-e41lz8sqnm],
.components-pause-visible[b-e41lz8sqnm],
.components-resume-failed-visible[b-e41lz8sqnm],
.components-rejoining-animation[b-e41lz8sqnm] {
    display: none;
}

#components-reconnect-modal.components-reconnect-show .components-reconnect-first-attempt-visible[b-e41lz8sqnm],
#components-reconnect-modal.components-reconnect-show .components-rejoining-animation[b-e41lz8sqnm],
#components-reconnect-modal.components-reconnect-paused .components-pause-visible[b-e41lz8sqnm],
#components-reconnect-modal.components-reconnect-resume-failed .components-resume-failed-visible[b-e41lz8sqnm],
#components-reconnect-modal.components-reconnect-retrying[b-e41lz8sqnm],
#components-reconnect-modal.components-reconnect-retrying .components-reconnect-repeated-attempt-visible[b-e41lz8sqnm],
#components-reconnect-modal.components-reconnect-retrying .components-rejoining-animation[b-e41lz8sqnm],
#components-reconnect-modal.components-reconnect-failed[b-e41lz8sqnm],
#components-reconnect-modal.components-reconnect-failed .components-reconnect-failed-visible[b-e41lz8sqnm] {
    display: block;
}

/* Les textes restent en ligne normale : en flex, les espaces autour des secondes disparaissaient. */
#components-reconnect-modal.components-reconnect-show .components-rejoining-animation[b-e41lz8sqnm],
#components-reconnect-modal.components-reconnect-retrying .components-rejoining-animation[b-e41lz8sqnm] {
    display: inline-flex;
}

#components-reconnect-modal[b-e41lz8sqnm] {
    position: fixed;
    inset: auto 0 calc(1.75rem + env(safe-area-inset-bottom, 0px)) 0;
    z-index: 10000;
    width: max-content;
    max-width: calc(100vw - 2rem);
    margin: 0 auto;
    padding: 0.75rem 1.25rem;
    border: 1px solid var(--color-base-300);
    border-radius: 999px;
    background: var(--color-base-200);
    color: var(--color-base-content);
    box-shadow: 0 18px 44px rgb(0 0 0 / 0.5);
    opacity: 0;
    transition: display 0.4s allow-discrete, overlay 0.4s allow-discrete;
    animation: jl-reconnect-out-b-e41lz8sqnm 0.3s both;
}

#components-reconnect-modal[open][b-e41lz8sqnm] {
    animation: jl-reconnect-in-b-e41lz8sqnm 0.4s cubic-bezier(.2, .9, .3, 1.1) both;
}

/* La page n'est plus voilée : la pastille ne bloque rien. */
#components-reconnect-modal[b-e41lz8sqnm]::backdrop {
    display: none;
}

@keyframes jl-reconnect-in-b-e41lz8sqnm {
    from { opacity: 0; transform: translateY(16px); }
    to { opacity: 1; transform: translateY(0); }
}

@keyframes jl-reconnect-out-b-e41lz8sqnm {
    from { opacity: 1; }
    to { opacity: 0; }
}

.components-reconnect-container[b-e41lz8sqnm] {
    display: flex;
    align-items: center;
    gap: 0.75rem;
    font-size: 0.9rem;
    font-weight: 700;
    white-space: nowrap;
}

#components-reconnect-modal p[b-e41lz8sqnm] {
    margin: 0;
}

#components-reconnect-modal button[b-e41lz8sqnm] {
    border: 0;
    border-radius: var(--radius-field);
    background: var(--color-primary);
    color: var(--color-primary-content);
    padding: 0.4rem 0.9rem;
    font-weight: 800;
    font-size: 0.85rem;
}

#components-reconnect-modal button:hover[b-e41lz8sqnm] {
    filter: brightness(1.08);
}

/* Les trois barres du logo : court, long, moyen. */
.components-rejoining-animation[b-e41lz8sqnm] {
    align-items: center;
    gap: 3px;
    height: 18px;
    color: var(--color-primary);
}

.components-rejoining-animation i[b-e41lz8sqnm] {
    display: block;
    width: 3.5px;
    border-radius: 9px;
    background: currentColor;
    animation: jl-reconnect-joue-b-e41lz8sqnm 1.2s ease-in-out infinite;
}

.components-rejoining-animation i:nth-child(1)[b-e41lz8sqnm] { height: 64%; }
.components-rejoining-animation i:nth-child(2)[b-e41lz8sqnm] { height: 100%; animation-duration: 1.5s; animation-delay: -0.4s; }
.components-rejoining-animation i:nth-child(3)[b-e41lz8sqnm] { height: 42%; animation-duration: 1s; animation-delay: -0.7s; }

@keyframes jl-reconnect-joue-b-e41lz8sqnm {
    0%, 100% { transform: scaleY(0.5); }
    25% { transform: scaleY(1); }
    50% { transform: scaleY(0.34); }
    75% { transform: scaleY(0.86); }
}

@media (prefers-reduced-motion: reduce) {
    .components-rejoining-animation i[b-e41lz8sqnm] { animation: none; }
}
/* /Components/Shared/SupportWidget.razor.rz.scp.css */
/* Honeypot anti-bot : doit rester dans le DOM et "remplissable" par un bot, mais invisible
   et non focusable pour un humain. On évite donc display:none / visibility:hidden (certains
   bots les détectent) au profit d'un déport hors écran. */
.jl-hp[b-vxh2ivrhiq] {
    position: absolute;
    left: -9999px;
    top: auto;
    width: 1px;
    height: 1px;
    overflow: hidden;
}

/* Petite apparition du bouton flottant, discrète, une seule fois au montage du circuit.
   On n'anime QUE le transform : l'opacité de repos / hover est pilotée par les classes
   Tailwind (opacity-50 → hover:opacity-100). Animer l'opacité ici l'écraserait. */
.jl-support-fab[b-vxh2ivrhiq] {
    animation: jl-support-fab-in-b-vxh2ivrhiq 240ms ease-out both;
}

@keyframes jl-support-fab-in-b-vxh2ivrhiq {
    from {
        transform: translateY(8px) scale(0.92);
    }
    to {
        transform: translateY(0) scale(1);
    }
}

@media (prefers-reduced-motion: reduce) {
    .jl-support-fab[b-vxh2ivrhiq] {
        animation: none;
    }
}
