/**
 * ssc-to-top.css - przycisk "na górę strony" (O-29)
 *
 * Globalny element frontu: okrągły przycisk w prawym dolnym rogu, ukryty do
 * momentu przewinięcia strony (klasa `is-visible` dokładana przez ssc-to-top.js).
 * Wygląd wg mockupu `scroll-to-top-mockup.html` (48 px desktop / 44 px mobile).
 *
 * ── DECYZJE ───────────────────────────────────────────────────────────────────
 * 1. KOLOR: mockup miał #2540e0, tutaj jest #1E40DD - kanoniczny błękit marki
 *    (--sm-blue w ssc-myaccount-unified.css:56, --ssc-pad-accent-primary
 *    w ssc-padeliva-tokens.css, 12 wystąpień w ssc-glowna.css). Różnica
 *    optycznie niewidoczna, spójność z resztą serwisu realna. Powrót do wartości
 *    z mockupu = podmiana dwóch wartości w :root poniżej.
 * 2. BEZ ZALEŻNOŚCI OD TOKENÓW: ssc-padeliva-tokens.css ładuje się TYLKO na
 *    stronach panelu - ten przycisk jest globalny, więc kolory trzymamy lokalnie
 *    (var(--ssc-pad-*) byłby tu pusty na 90% stron).
 * 3. SELEKTOR `button.ssc-to-top` (0,1,1) zamiast `.ssc-to-top` (0,1,0) - obrona
 *    przed kaskadą motywu/Elementora, które stylują `button` i `.button`.
 *    ZERO !important.
 * 4. NIE ustawiamy `scroll-behavior` na `html` (mockup to robił) - płynność
 *    siedzi w `window.scrollTo({behavior:'smooth'})`, więc nie zmieniamy
 *    zachowania kotwic i innych skoków na całym serwisie.
 *
 * O-29 (04.08.2026). Plik nowy, nic nie nadpisuje.
 */

:root {
    --ssc-to-top-bg: #1E40DD;
    --ssc-to-top-bg-hover: #1733B4;
}

button.ssc-to-top {
    position: fixed;
    right: 24px;
    bottom: 24px;
    z-index: 40;

    width: 48px;
    height: 48px;
    padding: 0;
    margin: 0;
    border: none;
    border-radius: 50%;

    background: var(--ssc-to-top-bg);
    color: #fff;
    cursor: pointer;
    -webkit-appearance: none;
    appearance: none;
    line-height: 1;

    display: flex;
    align-items: center;
    justify-content: center;

    box-shadow: 0 6px 18px rgba(30, 64, 221, 0.34);

    /* Stan spoczynkowy - niewidoczny i wyjęty z tab-order (visibility:hidden). */
    opacity: 0;
    visibility: hidden;
    transform: translateY(10px);
    transition: opacity 0.2s ease, transform 0.2s ease, visibility 0.2s, background 0.15s;
}

button.ssc-to-top.is-visible {
    opacity: 1;
    visibility: visible;
    transform: none;
}

button.ssc-to-top:hover {
    background: var(--ssc-to-top-bg-hover);
}

button.ssc-to-top:focus-visible {
    outline: 3px solid rgba(30, 64, 221, 0.4);
    outline-offset: 2px;
}

button.ssc-to-top svg {
    width: 22px;
    height: 22px;
    display: block;
    fill: none;
    stroke: currentColor;
}

/* ──────────────────────────────────────────────────────────────────────────────
 * KOLIZJA Z DOLNYM PASKIEM ZAKŁADEK (max-width: 767px)
 *
 * Na stronach "Moje konto" panel wstrzykuje dolny pasek nawigacji:
 *   - klient:    .ssc-myaccount-bottomtab  (ssc-myaccount-unified.css:418-430,
 *                pokazywany w @media max-width:767px, wysokość 60 px, z-index 90)
 *   - instruktor:.ssc-v2-bottomtab         (ssc-instructor-panel-v2.css:3469-3484,
 *                @media max-width:767px, z-index 100)
 * Przy `bottom:16px` przycisk wpadałby dokładnie w ten pasek (i przegrywał
 * z nim z-indexem, więc byłby nieklikalny). Podnosimy go ponad pasek na
 * stronach konta - `body.woocommerce-account` to klasa WooCommerce, obejmuje
 * oba panele, bo oba siedzą pod /moje-konto/.
 * Próg 767 px (nie 640 px) - taki jest próg samego paska.
 * ────────────────────────────────────────────────────────────────────────────── */
@media (max-width: 767px) {
    body.woocommerce-account button.ssc-to-top {
        bottom: calc(76px + env(safe-area-inset-bottom));
    }
}

@media (max-width: 640px) {
    button.ssc-to-top {
        right: 16px;
        bottom: 16px;
        width: 44px;
        height: 44px;
    }

    body.woocommerce-account button.ssc-to-top {
        bottom: calc(76px + env(safe-area-inset-bottom));
    }
}

@media (prefers-reduced-motion: reduce) {
    button.ssc-to-top {
        transform: none;
        transition: opacity 0.2s ease, visibility 0.2s;
    }
}
