/* =========================================================
   ROSSARD PWA - INSTALL UI
   ========================================================= */


/* ---------------------------------------------------------
   BOUTON D'INSTALLATION
   --------------------------------------------------------- */

.rossard-pwa-install-button {
    position: fixed;
    right: 20px;
    bottom: 20px;
    z-index: 999999;

    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 10px;

    min-height: 48px;
    padding:
        var(--rossard-pwa-button-padding-y, 12px) var(--rossard-pwa-button-padding-x, 20px);

    border-style: solid;
    border-width:
        var(--rossard-pwa-button-border-width, 0);
    border-color:
        var(--rossard-pwa-button-border-color, #111111);
    border-radius:
        var(--rossard-pwa-button-radius,
            999px);

    font: inherit;
    font-size:
        var(--rossard-pwa-button-font-size, 15px);

    font-weight:
        var(--rossard-pwa-button-font-weight, 600);
    line-height: 1.2;

    cursor: pointer;

    background:
        var(--rossard-pwa-button-bg,
            #111111);

    color:
        var(--rossard-pwa-button-color,
            #ffffff);
    white-space: nowrap;
    box-shadow:
        0 10px 30px rgba(0, 0, 0, 0.22);

    transition:
        transform 0.15s ease,
        box-shadow 0.15s ease,
        opacity 0.15s ease;
}


/* Caché */
.rossard-pwa-install-button[hidden] {
    display: none !important;
}


/* Hover */
.rossard-pwa-install-button:hover {
    transform: translateY(-2px);

    box-shadow:
        0 14px 34px rgba(0, 0, 0, 0.28);
}


/* Click */
.rossard-pwa-install-button:active {
    transform: translateY(0);
}


/* Focus clavier */
.rossard-pwa-install-button:focus-visible {
    outline: 3px solid rgba(34, 113, 177, 0.35);
    outline-offset: 3px;
}


/* Désactivé */
.rossard-pwa-install-button:disabled {
    cursor: default;

    opacity: 0.65;

    transform: none;
}


/* ---------------------------------------------------------
   OVERLAY IOS
   --------------------------------------------------------- */

.rossard-pwa-ios-overlay {
    position: fixed;
    inset: 0;
    z-index: 1000000;

    display: flex;
    align-items: center;
    justify-content: center;

    padding: 24px;

    background:
        rgba(0, 0, 0, 0.55);

    backdrop-filter:
        blur(8px);

    -webkit-backdrop-filter:
        blur(8px);
}


/* ---------------------------------------------------------
   DIALOGUE IOS
   --------------------------------------------------------- */

.rossard-pwa-ios-dialog {
    position: relative;

    width: 100%;
    max-width: 460px;

    padding: 28px;

    border-radius: 20px;

    background:
        var(--rossard-pwa-ios-bg,
            #ffffff);

    color:
        var(--rossard-pwa-ios-color,
            #111111);

    box-shadow:
        0 24px 80px rgba(0, 0, 0, 0.30);

    animation:
        rossard-pwa-dialog-in 0.22s ease-out;
}


/* ---------------------------------------------------------
   TITRE
   --------------------------------------------------------- */

.rossard-pwa-ios-dialog h2 {
    margin:
        0 40px 16px 0;

    font-size: 24px;
    line-height: 1.2;
}


/* ---------------------------------------------------------
   TEXTE
   --------------------------------------------------------- */

.rossard-pwa-ios-dialog p {
    margin:
        0 0 18px;

    font-size: 16px;
    line-height: 1.6;

    color: #555555;
}


/* ---------------------------------------------------------
   LISTE D'ETAPES
   --------------------------------------------------------- */

.rossard-pwa-ios-dialog ol {
    margin:
        0;

    padding-left: 24px;
}


.rossard-pwa-ios-dialog li {
    margin-bottom: 12px;

    font-size: 16px;
    line-height: 1.5;
}


.rossard-pwa-ios-dialog li:last-child {
    margin-bottom: 0;
}


/* ---------------------------------------------------------
   BOUTON FERMER
   --------------------------------------------------------- */

.rossard-pwa-ios-close {
    position: absolute;
    top: 16px;
    right: 16px;

    width: 36px;
    height: 36px;

    display: flex;
    align-items: center;
    justify-content: center;

    padding: 0;

    border: 0;
    border-radius: 50%;

    background: #f0f0f1;
    color: #333333;

    font-size: 24px;
    line-height: 1;

    cursor: pointer;

    transition:
        background 0.15s ease,
        transform 0.15s ease;
}


.rossard-pwa-ios-close:hover {
    background: #e2e2e2;

    transform: scale(1.05);
}


.rossard-pwa-ios-close:focus-visible {
    outline: 3px solid rgba(34, 113, 177, 0.35);
    outline-offset: 2px;
}


/* ---------------------------------------------------------
   ANIMATION
   --------------------------------------------------------- */

@keyframes rossard-pwa-dialog-in {

    from {
        opacity: 0;
        transform:
            translateY(12px) scale(0.98);
    }

    to {
        opacity: 1;
        transform:
            translateY(0) scale(1);
    }

}


/* ---------------------------------------------------------
   MOBILE
   --------------------------------------------------------- */

@media (max-width: 600px) {

    .rossard-pwa-install-button {
        right: 12px;
        bottom: 12px;

        min-height: 46px;

        padding:
            11px 16px;

        font-size: 14px;
    }


    .rossard-pwa-ios-overlay {
        align-items: flex-end;

        padding: 12px;
    }


    .rossard-pwa-ios-dialog {
        max-width: none;

        padding:
            24px 20px;

        border-radius:
            20px 20px 16px 16px;
    }

}


/* ---------------------------------------------------------
   DARK MODE
   --------------------------------------------------------- */

@media (prefers-color-scheme: dark) {

    .rossard-pwa-ios-dialog {
        background: #181818;
        color: #ffffff;
    }


    .rossard-pwa-ios-dialog p {
        color: #c8c8c8;
    }


    .rossard-pwa-ios-close {
        background: #2b2b2b;
        color: #ffffff;
    }


    .rossard-pwa-ios-close:hover {
        background: #383838;
    }

}


/* ---------------------------------------------------------
   REDUCED MOTION
   --------------------------------------------------------- */

@media (prefers-reduced-motion: reduce) {

    .rossard-pwa-install-button,
    .rossard-pwa-ios-close,
    .rossard-pwa-ios-dialog {
        transition: none;
        animation: none;
    }

}