/**
 * Monazo Auth — style formularzy i toastów (Etap 2).
 * System wizualny monazo.pl: #4CBB17, DM Sans (dziedziczone z theme),
 * promień 20 px, hairline borders. Wszystko pod prefiksem .monazo-* —
 * zero kolizji z theme i innymi pluginami.
 */

/* Formularz: pełna szerokość kontenera do 420 px, wycentrowany. */
.monazo-auth {
    width: 100%;
    max-width: 420px;
    margin-left: auto;
    margin-right: auto;
}

/* [monazo_google_button] osadzony w cudzym układzie. Kontener .monazo-auth
   musi zostać, bo na nim wisi cały wygląd przycisku (pancerz na style
   motywu), ale jego szerokość i wyśrodkowanie w liście kroków przeszkadzają. */
.monazo-auth--bare {
    max-width: none;
    margin-left: 0;
    margin-right: 0;
}

.monazo-auth__intro {
    color: #6b7280;
    font-size: 15px;
    line-height: 1.55;
    margin: 0 0 16px;
}

.monazo-auth__field {
    margin-bottom: 16px;
}

.monazo-auth__field label {
    display: block;
    font-size: 14px;
    font-weight: 600;
    margin-bottom: 6px;
}

/* Inputy utwardzone jak przycisk: nasz arkusz ładuje się globalnie
   w <head>, więc reguły motywu o równej specyficzności wygrywałyby
   kolejnością — podwójny scope + !important na rdzeniu wyglądu. */
.monazo-auth .monazo-auth__field input {
    display: block !important;
    width: 100% !important;
    box-sizing: border-box !important;
    border: 1px solid #e5e7eb !important;
    border-radius: 10px !important;
    padding: 11px 14px !important;
    font-size: 15px !important;
    font-family: inherit !important;
    line-height: 1.4 !important;
    background: #fff !important;
    color: #111827 !important;
    box-shadow: none !important;
    min-height: 0 !important;
}

.monazo-auth .monazo-auth__field input:focus {
    outline: 2px solid #4CBB17 !important;
    outline-offset: 0 !important;
    border-color: transparent !important;
}

/* Przycisk jest PANCERNY: podwójna specyficzność + !important na
   właściwościach, które motywy najczęściej nadpisują globalnymi regułami
   dla button/:active/:disabled (padding, tło, transform, cień). Bez tego
   w chwili disabled/active przez ułamek sekundy "przebijał" styl motywu
   i przycisk się kurczył. Scoped !important w CSS widgetu broniącego się
   przed nieznanym motywem to uzasadniony wyjątek od reguły. */
.monazo-auth .monazo-auth__btn,
.monazo-auth .monazo-auth__btn:hover,
.monazo-auth .monazo-auth__btn:focus,
.monazo-auth .monazo-auth__btn:active,
.monazo-auth .monazo-auth__btn:disabled {
    -webkit-appearance: none !important;
    appearance: none !important;
    display: block !important;
    width: 100% !important;
    box-sizing: border-box !important;
    text-align: center !important;
    min-height: 0 !important;
    background: #4CBB17 !important;
    color: #fff !important;
    border: 0 !important;
    border-radius: 10px !important;
    /* Standard wysokości CTA: ~42 px (padding-block 13 + tekst 15/1.2). */
    padding: 13px 26px !important;
    min-height: 42px !important;
    margin: 4px 0 0 !important;
    font-size: 15px !important;
    font-weight: 600 !important;
    font-family: inherit !important;
    line-height: 1.2 !important;
    letter-spacing: normal !important;
    text-transform: none !important;
    text-decoration: none !important;
    box-shadow: none !important;
    transform: none !important;
    transition: filter 0.15s ease, opacity 0.15s ease !important;
    cursor: pointer !important;
}

.monazo-auth .monazo-auth__btn:hover {
    filter: brightness(0.95) !important;
}

/* Dwa różne "nie klikaj": przycisk wyłączony, bo nie ma czego zapisać
   (not-allowed — standardowy sygnał dla nieaktywnej kontrolki), oraz
   przycisk zajęty wysyłką (wait — kursor systemowy niesie tam prawdziwą
   informację "czekaj"). Wcześniej oba stany dzieliły "wait", przez co
   spokojny formularz wyglądał, jakby coś w tle mielił. */
.monazo-auth .monazo-auth__btn:disabled {
    opacity: 0.55 !important;
    cursor: not-allowed !important;
    filter: none !important;
}

.monazo-auth .monazo-auth__btn:disabled:hover {
    filter: none !important;
}

.monazo-auth .monazo-auth__btn.is-busy:disabled {
    cursor: wait !important;
}

.monazo-auth__links {
    font-size: 14px;
    color: #6b7280;
    margin: 14px 0 0;
}

/* Stopka formularza: dwa bloki obok siebie w kształcie kart — etykieta
   wersalikami + link-CTA pod nią. auto-fit z minmax zamiast media query:
   przy bardzo wąskim kontenerze (np. przyszły popup) bloki same przechodzą
   pod siebie, zachowując równą wysokość dzięki rozciągnięciu w gridzie. */
.monazo-auth__footer {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(148px, 1fr));
    gap: 10px;
    margin-top: 25px;
}

.monazo-auth__cta {
    position: relative;
    min-width: 0;
    border: 1px solid #e5e7eb;
    border-radius: 12px;
    padding: 12px 14px;
    text-align: center;
    transition: background-color 0.15s ease, border-color 0.15s ease;
}

.monazo-auth__cta:hover {
    background: #f9fafb;
    border-color: #d1d5db;
}

/* Fokus klawiaturą pada na link, ale obrys rysujemy wokół całej karty —
   bo to ona jest polem klikalnym (::after linku). */
.monazo-auth__cta:focus-within {
    outline: 2px solid #4CBB17;
    outline-offset: 2px;
}

.monazo-auth .monazo-auth__cta-label {
    display: block;
    font-size: 11px;
    font-weight: 600;
    letter-spacing: 0.07em;
    text-transform: uppercase;
    line-height: 1.35;
    color: #6b7280;
}

.monazo-auth .monazo-auth__cta-link {
    display: block;
    margin-top: 4px;
    font-size: 15px;
    font-weight: 700;
    line-height: 1.35;
    color: #4CBB17 !important;
    text-decoration: none !important;
}

/* Link krzyżowy bywa <a> (strona) albo <button> (nakładka: data-mnz-go /
   data-mnz-back). Ten sam komponent ma wyglądać identycznie w obu
   postaciach, więc zdejmujemy z przycisku jego chrom. Selektor dotyczy
   WYŁĄCZNIE naszej klasy — zero wiedzy o silniku nakładek, zgodnie
   z podziałem odpowiedzialności uzgodnionym z Essentials.

   Formanty formularza nie dziedziczą kroju pisma i mają własne width:auto
   (shrink-to-fit) nawet przy display:block, stąd font: inherit i szerokość
   wprost — bez nich przycisk byłby węższy od karty i pisany Arialem. */
.monazo-auth button.monazo-auth__cta-link {
    appearance: none;
    -webkit-appearance: none;
    background: none;
    border: 0;
    padding: 0;
    width: 100%;
    text-align: center;
    font: inherit;
    cursor: pointer;
}

/* Cała karta jest celem kliknięcia, a w drzewie dostępności to nadal
   jeden zwykły link — bez duplikowania href-ów i bez JS-a. */
.monazo-auth .monazo-auth__cta-link::after {
    content: '';
    position: absolute;
    inset: 0;
    border-radius: inherit;
}

.monazo-auth__links a,
.monazo-auth__links button {
    color: #4CBB17;
    font-weight: 600;
    text-decoration: none;
}

/* Wariant przyciskowy siedzi w środku zdania ("Masz już konto? …"),
   więc musi zostać w linii — inaczej rozbiłby akapit na dwa wiersze. */
.monazo-auth__links button {
    display: inline;
    appearance: none;
    -webkit-appearance: none;
    background: none;
    border: 0;
    padding: 0;
    font: inherit;
    font-weight: 600;
    cursor: pointer;
}

/* Komunikaty pod polami: sam tekst, zero tla i ramek. Blad = czerwien;
   sukces = kolor tekstu bazowego z malym zielonym znacznikiem przed
   trescia — sygnal "ok" daje akcent, nie krzyczacy pasek. */
.monazo-auth__msg {
    background: none;
    border: 0;
    padding: 0;
    font-size: 13.5px;
    line-height: 1.55;
    margin: 2px 0 14px;
}

.monazo-auth__msg--error {
    color: #dc2626;
}

.monazo-auth__msg--ok {
    color: #111827;
}

.monazo-auth__msg--ok::before {
    content: '\2713\00a0';
    color: #4CBB17;
    font-weight: 700;
}

/* Semantyka [hidden] wygrywa z naszym własnym pancerzem !important:
   atrybut hidden to zwykłe display:none z arkusza przeglądarki, więc
   nasze display:block/flex !important go zabijały (stąd "nieznikające"
   przyciski po rejestracji). Selektory z [hidden] mają wyższą
   specyficzność niż odpowiedniki bez atrybutu — remis !important
   rozstrzyga się na naszą korzyść. */
.monazo-auth [hidden],
.monazo-auth .monazo-auth__btn[hidden],
.monazo-auth .monazo-auth__google[hidden],
.monazo-account [hidden] {
    display: none !important;
}

.monazo-auth .monazo-auth__field input::placeholder {
    color: #9ca3af !important;
    opacity: 1 !important;
}

.monazo-auth__remember {
    display: flex;
    align-items: center;
    gap: 9px;
    font-size: 14px;
    color: #374151;
    margin: 2px 0 14px;
    cursor: pointer;
}

.monazo-auth__remember input[type="checkbox"] {
    width: 17px;
    height: 17px;
    margin: 0;
    flex: 0 0 auto;
    accent-color: #4CBB17;
    cursor: pointer;
}

/* Box sukcesu rejestracji: jedyny element, który zostaje po wysłaniu
   formularza — subtelne zielone tło z akcentu, większy tekst. */
.monazo-auth__success {
    background: #f3f4f6; /* neutralnie, jak hover tabów — zero zieleni */
    border-radius: 14px;
    padding: 24px 20px 22px;
    text-align: center;
    animation: monazo-success-in 0.4s cubic-bezier(0.22, 1, 0.36, 1) both;
}

.monazo-auth__success p {
    margin: 0;
    font-size: 15.5px;
    line-height: 1.6;
    color: #111827;
}

/* Ikona sukcesu: okrąg rysuje się obwodem, po nim "ptaszek" — dwie
   kreski w akcencie, zero wypełnień. Animacja startuje sama, bo box
   wchodzi z display:none, a przeglądarka odpala keyframes dopiero
   w chwili, gdy element realnie się pojawia. */
.monazo-auth__success-icon {
    display: block;
    width: 56px;
    height: 56px;
    margin: 0 auto 14px;
    overflow: visible;
}

.monazo-auth__success-ring {
    fill: none;
    stroke: #4CBB17;
    stroke-width: 2.5;
    /* 2πr dla r=23 ≈ 144,5 — dasharray równy obwodowi chowa cały okrąg. */
    stroke-dasharray: 145;
    stroke-dashoffset: 145;
    transform-origin: 26px 26px;
    transform: rotate(-90deg); /* start rysowania od góry, nie od prawej */
    animation: monazo-success-draw 0.6s cubic-bezier(0.65, 0, 0.45, 1) 0.05s forwards;
}

.monazo-auth__success-check {
    fill: none;
    stroke: #4CBB17;
    stroke-width: 3.4;
    stroke-linecap: round;
    stroke-linejoin: round;
    stroke-dasharray: 30;
    stroke-dashoffset: 30;
    animation: monazo-success-draw 0.32s cubic-bezier(0.65, 0, 0.45, 1) 0.5s forwards;
}

@keyframes monazo-success-draw {
    to { stroke-dashoffset: 0; }
}

@keyframes monazo-success-in {
    from { opacity: 0; transform: translateY(8px) scale(0.98); }
    to   { opacity: 1; transform: none; }
}

/* Ograniczona animacja: stan końcowy od razu, bez rysowania i wjazdu. */
@media (prefers-reduced-motion: reduce) {
    .monazo-auth__success,
    .monazo-auth__success-ring,
    .monazo-auth__success-check {
        animation: none;
    }

    .monazo-auth__success-ring,
    .monazo-auth__success-check {
        stroke-dashoffset: 0;
    }
}

/* W kartach panelu formularz rozciąga się na pełną szerokość karty —
   centrowanie do 420 px ma sens na stronach auth, nie wewnątrz karty
   (inputy wyglądały na wcięte względem nagłówków). */
.monazo-account .monazo-auth {
    max-width: none;
    margin: 0;
}

/* Honeypot: wyniesienie poza ekran zamiast display:none — pole ma istnieć
   dla naiwnego bota, a być niedostępne dla człowieka (także z klawiatury,
   stąd tabindex=-1 w HTML). aria-hidden ukrywa je przed czytnikami. */
.monazo-auth__hp {
    position: absolute;
    left: -9999px;
    top: -9999px;
    width: 1px;
    height: 1px;
    overflow: hidden;
}

.monazo-auth__terms {
    display: flex;
    align-items: flex-start;
    gap: 9px;
    font-size: 14px;
    color: #374151;
    line-height: 1.5;
    margin: 2px 0 14px;
    cursor: pointer;
}

.monazo-auth__terms input[type="checkbox"] {
    width: 17px;
    height: 17px;
    margin: 2px 0 0;
    flex: 0 0 auto;
    accent-color: #4CBB17;
    cursor: pointer;
}

.monazo-auth__terms a {
    color: #4CBB17;
    font-weight: 600;
    text-decoration: none;
}

.cf-turnstile {
    margin: 4px 0 14px;
}

/* Separator "albo" + przycisk Google (pojawiają się, gdy OIDC skonfigurowane). */
.monazo-auth__or {
    display: flex;
    align-items: center;
    gap: 12px;
    color: #9ca3af;
    font-size: 13px;
    margin: 16px 0 12px;
}

.monazo-auth__or::before,
.monazo-auth__or::after {
    content: '';
    flex: 1;
    height: 1px;
    background: #e5e7eb;
}

.monazo-auth .monazo-auth__google {
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    gap: 10px !important;
    width: 100% !important;
    box-sizing: border-box !important;
    background: #fff !important;
    color: #111827 !important;
    border: 1px solid #e5e7eb !important;
    border-radius: 10px !important;
    padding: 13px 16px !important;
    min-height: 42px !important;
    font-size: 15px !important;
    font-weight: 600 !important;
    font-family: inherit !important;
    line-height: 1.2 !important;
    text-decoration: none !important;
    box-shadow: none !important;
    cursor: pointer !important;
}

.monazo-auth .monazo-auth__google:hover {
    background: #f9fafb !important;
}

.monazo-auth__google svg {
    width: 18px;
    height: 18px;
    flex: 0 0 auto;
}

.monazo-auth__legal {
    font-size: 12px;
    color: #9ca3af;
    line-height: 1.5;
    text-align: center;
    margin: 10px 0 0;
}

/* Nota prawna pod przyciskiem Google dostaje własny oddech — reguła
   celuje w sąsiedztwo przycisku, więc te same klasy w panelu konta
   (podpowiedzi przy avatarze, opis usuwania) zostają nietknięte. */
.monazo-auth__google + .monazo-auth__legal {
    margin-top: 14px;
}

.monazo-auth__legal a {
    color: #6b7280;
    text-decoration: underline;
}

/* Wylogowanie w toku. Element należy do motywu albo do nakładki, więc
   stylujemy WYŁĄCZNIE po naszym atrybucie i naszej klasie stanu — zero
   wiedzy o cudzych klasach. Bez !important, żeby dało się to nadpisać
   jednym selektorem po stronie, która ten element rysuje. */
[data-monazo-logout][aria-busy="true"] {
    cursor: progress;
    opacity: 0.6;
}

/* Toast: lewy dolny róg, wjazd z dołu, 3 s (sterowanie w auth.js).
   Górna krawędź to pasek postępu: pełna szerokość -> zero w 3 s,
   wizualny sygnał "zaraz znikam". Czas animacji = timeout w auth.js. */
.monazo-toast {
    position: fixed;
    left: 20px;
    bottom: 20px;
    /* SKALA WARSTW uzgodniona z Monazo Essentials (2026-08):
         2147482900  dok oferty
         2147483000  zasłona nakładki
         2147483001  panel nakładki
         2147483002  tooltip
         2147483003  toast
       Wcześniejsze 99999 kładło KAŻDY toast odpalony z wnętrza nakładki
       pod przyciemnieniem — dotyczyło m.in. "Avatar zaktualizowany"
       i wszystkich komunikatów sieciowych z panelu konta. Toasty obu
       wtyczek leżą odtąd w tej samej warstwie. */
    z-index: 2147483003;
    background: #111827;
    color: #fff;
    border-radius: 14px;
    padding: 14px 20px 12px;
    font-size: 14px;
    font-family: inherit;
    box-shadow: 0 8px 24px rgba(0, 0, 0, 0.18);
    overflow: hidden;
    opacity: 0;
    transform: translateY(12px);
    transition: opacity 0.35s ease, transform 0.35s ease;
    pointer-events: none;
}

.monazo-toast::before {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    height: 3px;
    width: 100%;
    background: #4CBB17;
}

.monazo-toast--in {
    opacity: 1;
    transform: translateY(0);
}

.monazo-toast--in::before {
    animation: monazo-toast-bar 3s linear forwards;
}

@keyframes monazo-toast-bar {
    from { width: 100%; }
    to   { width: 0; }
}

/* ── Panel konta ────────────────────────────────────────────────────── */

.monazo-account {
    width: 100%;
    max-width: 560px;
    margin: 0 auto;
}

.monazo-account__loading {
    color: #6b7280;
    font-size: 15px;
}

.monazo-account__card {
    background: #fff;
    border: 1px solid #e5e7eb;
    border-radius: 14px;
    padding: 22px 20px;
    margin: 0 0 18px;
}

.monazo-account__title {
    font-size: 17px;
    font-weight: 700;
    margin: 0 0 6px;
}

.monazo-account__desc {
    font-size: 13px;
    color: #6b7280;
    line-height: 1.55;
    margin: 0 0 16px;
}

.monazo-account__avatar-row {
    display: flex;
    align-items: center;
    gap: 16px;
    margin-bottom: 18px;
}

.monazo-account__avatar {
    width: 72px;
    height: 72px;
    border-radius: 50%;
    object-fit: cover;
    border: 1px solid #e5e7eb;
    flex: 0 0 auto;
    display: block;
}

.monazo-account__avatar--placeholder {
    background: #f3f4f6;
}

.monazo-account__avatar-actions {
    flex: 1;
    min-width: 0;
}

/* „Usuń avatar" POD przyciskiem, wyśrodkowany względem niego.
   inline-flex kurczy się do najszerszego dziecka, czyli do przycisku —
   dzięki temu link centruje się względem NIEGO, a nie względem całej
   szerokości kolumny. Notka o formacie pliku zostaje poza tym
   kontenerem i dalej rozciąga się na pełną szerokość, więc nie łamie
   się przedwcześnie.
   vertical-align: top zdejmuje miejsce na wydłużenia dolne, które
   element inline-level zostawiłby pod sobą. */
.monazo-account__avatar-buttons {
    display: inline-flex;
    flex-direction: column;
    align-items: center;
    gap: 8px;
    vertical-align: top;
}

/* Przycisk uploadu = label, więc pancerz .monazo-auth__btn go nie łapie —
   nadajemy mu wygląd przycisku wprost, w wariancie "secondary". */
.monazo-account .monazo-account__upload {
    display: inline-flex !important;
    align-items: center !important;
    width: auto !important;
    background: #111827 !important;
    color: #fff !important;
    border-radius: 10px !important;
    padding: 11px 18px !important;
    min-height: 42px !important;
    box-sizing: border-box !important;
    font-size: 14px !important;
    font-weight: 600 !important;
    cursor: pointer !important;
    /* Odstęp w dół należy teraz do gap kolumny .monazo-account__avatar-buttons
       (było 6 px, które sumowało się z gap i dawało 20 px zamiast lekkiego). */
    margin: 0 !important;
}

.monazo-account__link-btn {
    background: none;
    border: 0;
    /* Odstęp robi teraz gap kolumny (było: margin-left obok przycisku).
       Padding to cel dotknięcia — sam tekst 14 px był na telefonie
       za małym celem tuż pod przyciskiem o wysokości 42 px. */
    padding: 6px 10px;
    margin: 0;
    color: #b91c1c;
    font-size: 14px;
    font-weight: 600;
    font-family: inherit;
    cursor: pointer;
    text-decoration: underline;
}

.monazo-account__login-link {
    text-decoration: none;
}

/* ── Widget użytkownika w navbarze ──────────────────────────────────── */

.monazo-navbar-user {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    background: none;
    border: 0;
    padding: 4px 8px;
    border-radius: 10px;
    font-family: inherit;
    font-size: 14px;
    font-weight: 600;
    color: inherit;
    cursor: pointer;
}

.monazo-navbar-user:hover {
    background: rgba(0, 0, 0, 0.05);
}

.monazo-navbar-user img[data-monazo-avatar] {
    width: 32px;
    height: 32px;
    border-radius: 50%;
    object-fit: cover;
    display: block;
}

.monazo-navbar-user [data-monazo-initial] {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 32px;
    height: 32px;
    border-radius: 50%;
    background: #4CBB17;
    color: #fff;
    font-size: 14px;
    font-weight: 700;
}

/* iOS: Safari przybliża stronę przy fokusie na polu o czcionce MNIEJSZEJ
   niż 16px — nasze mają 15px, czyli piksel poniżej progu. Podnosimy je
   wyłącznie na urządzeniach dotykowych, żeby na desktopie zachować
   dotychczasową typografię (przy szerokim formularzu różnica jest widoczna).
   Wysokość pól zostaje bez zmian, bo wynika z paddingu, nie z czcionki. */
@media (pointer: coarse) {
    .monazo-auth .monazo-auth__field input,
    .monazo-account .monazo-auth__field input {
        font-size: 16px !important;
    }
}

/* Wyzwanie pojawiające się dopiero na żądanie serwera (seria porażek). */
.monazo-auth__challenge {
    margin: 4px 0 14px;
}

/* ── Guard formularzy auth (cache-safe, patrz Assets/Shortcodes) ────── */

/* PRZEŁĄCZANIE GAŁĘZI PRZED PIERWSZYM MALOWANIEM.
   Prymityw [data-monazo-when] przełącza dotąd wyłącznie hydrate(), a auth.js
   jedzie z defer — czyli po pierwszym malowaniu. W nagłówku, obecnym na
   każdej podstronie, zalogowany widziałby przez moment ikonę gościa i dopiero
   potem swój avatar. Klasę monazo-in ustawia trzylinijkowy skrypt z <head>,
   a ten arkusz też jest w <head> i blokuje renderowanie, więc decyzja zapada
   przed malowaniem. hydrate() ustawia potem to samo atrybutem `hidden`
   i przelicza klasę, więc rozjazd (np. uszkodzone ciasteczko) sam się goi.

   WARUNEK dla markupu: gałąź zalogowanego NIE MOŻE mieć atrybutu `hidden` —
   inaczej nie pokaże jej ani CSS, ani nic innego do czasu hydratacji.
   Bez JS-u klasa się nie pojawia, więc widoczna zostaje gałąź gościa. */
/* Ikona konta w nagłówku: dla gościa glif, dla zalogowanego avatar —
   ten sam kwadrat 24 px, żeby przełączenie nie ruszyło układu nagłówka.
   Szare koło jest tłem kontenera, więc pole nigdy nie jest puste, nawet
   zanim obrazek się wczyta. */
[data-monazo-account-icon] {
    display: inline-flex;
    width: 24px;
    height: 24px;
    border-radius: 50%;
    overflow: hidden;
    background: #e5e7eb;
    vertical-align: middle;
    flex: 0 0 auto;
}

[data-monazo-account-icon] img[data-monazo-avatar] {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
    border-radius: 50%;
}

/* REGUŁY ANTY-MRUGNIĘCIA NIE MIESZKAJĄ JUŻ TUTAJ.
   Cztery reguły sterowane klasą html.monazo-in — chowanie formularzy przed
   zalogowanym, wyjątek dla admina i przełączanie gałęzi [data-monazo-when] —
   są wpisane WPROST w <head>, w Frontend/Assets.php. Powód: ten arkusz
   bywa dostarczany bez blokowania renderowania (krytyczny CSS, optymalizatory,
   Cloudflare), a wtedy nagłówek maluje się przed ich zadziałaniem i widać
   obie gałęzie naraz. Styl w <head> nie ma jak się spóźnić.
   Nie duplikuj ich tutaj — jedno źródło prawdy. */

/* ── Taby panelu konta ──────────────────────────────────────────────── */

.monazo-tabs {
    position: relative;
    background: #fff;
    border: 1px solid #e5e7eb;
    border-radius: 14px;
    padding: 6px;
    margin: 0 0 18px;
}

.monazo-tabs__scroller {
    display: flex;
    gap: 6px;
    overflow-x: auto;
    /* Scrollbar niewidoczny na wszystkich silnikach; przewijanie zostaje:
       touch na mobile, wheel + drag na desktopie (auth.js). */
    scrollbar-width: none;
    -ms-overflow-style: none;
    -webkit-overflow-scrolling: touch;
}

.monazo-tabs__scroller::-webkit-scrollbar {
    display: none;
}

.monazo-tabs__scroller--dragging {
    cursor: grabbing;
    user-select: none;
}

.monazo-tabs__tab {
    flex: 0 0 auto;
    background: none;
    border: 0;
    border-radius: 10px;
    padding: 9px 16px;
    font-family: inherit;
    font-size: 14px;
    font-weight: 600;
    color: #6b7280;
    cursor: pointer;
    white-space: nowrap;
}

.monazo-tabs__tab:hover {
    background: #f3f4f6;
    color: #111827;
}

.monazo-tabs__tab[aria-selected="true"] {
    background: #4CBB17;
    color: #fff;
}

.monazo-tabs__tab:focus-visible {
    outline: 2px solid #4CBB17;
    outline-offset: 1px;
}

/* Fade'y na krawędziach: gradient do bieli paska; pointer-events none,
   żeby nie przechwytywały kliknięć w częściowo widoczny tab. */
.monazo-tabs__fade {
    position: absolute;
    top: 1px;
    bottom: 1px;
    width: 40px;
    pointer-events: none;
    border-radius: 13px;
}

.monazo-tabs__fade--left {
    left: 1px;
    background: linear-gradient(to right, #fff 20%, rgba(255, 255, 255, 0));
}

.monazo-tabs__fade--right {
    right: 1px;
    background: linear-gradient(to left, #fff 20%, rgba(255, 255, 255, 0));
}

/* ── Przycisk destrukcyjny (usunięcie konta) ────────────────────────── */

.monazo-account .monazo-account__danger {
    -webkit-appearance: none !important;
    appearance: none !important;
    display: inline-block !important;
    background: #b91c1c !important;
    color: #fff !important;
    border: 0 !important;
    border-radius: 10px !important;
    padding: 13px 22px !important;
    min-height: 42px !important;
    font-size: 15px !important;
    font-weight: 600 !important;
    font-family: inherit !important;
    line-height: 1.2 !important;
    cursor: pointer !important;
    box-shadow: none !important;
    transform: none !important;
}

.monazo-account .monazo-account__danger:hover {
    filter: brightness(0.92) !important;
}

.monazo-account [data-acc-delete-msg] {
    margin-top: 14px;
}

.monazo-account .monazo-account__danger:disabled {
    opacity: 0.55 !important;
    cursor: not-allowed !important;
}

.monazo-account .monazo-account__danger.is-busy:disabled {
    cursor: wait !important;
}

/* ════════════════════════════════════════════════════════════════════
   DARK MODE — prefiks html[data-scheme="dark"] (przelacznik Monazo).
   Tlo serwisu #1C1C1C, powierzchnie #232323, hairline #333, tekst
   #f3f4f6, wyciszony #9ca3af. Akcent #4CBB17 wspolny z trybem jasnym.
   Reguly celowo lustrzane wzgledem jasnych (te same selektory + prefiks,
   !important tam, gdzie jasne uzywaja !important) — kazda przyszla
   zmiana w jasnym ma swoj oczywisty odpowiednik tutaj.
   ════════════════════════════════════════════════════════════════════ */

/* Zielone elementy w dark: tekst #1C1C1C zamiast bieli — zieleń akcentu
   na ciemnym tle niesie dość światła, ciemny tekst daje lepszy kontrast
   i bardziej "fintechowy" charakter. Dotyczy CTA, aktywnego taba
   i inicjału w navbarze (ta sama rodzina akcentowych plakietek). */
html[data-scheme="dark"] .monazo-auth .monazo-auth__btn,
html[data-scheme="dark"] .monazo-auth .monazo-auth__btn:hover,
html[data-scheme="dark"] .monazo-auth .monazo-auth__btn:focus,
html[data-scheme="dark"] .monazo-auth .monazo-auth__btn:active,
html[data-scheme="dark"] .monazo-auth .monazo-auth__btn:disabled {
    color: #1C1C1C !important;
}

html[data-scheme="dark"] .monazo-account__login-link {
    color: #1C1C1C !important;
}

html[data-scheme="dark"] [data-monazo-account-icon] {
    background: #2c2c2c;
}

html[data-scheme="dark"] .monazo-navbar-user [data-monazo-initial] {
    color: #1C1C1C;
}

html[data-scheme="dark"] .monazo-auth .monazo-auth__field input::placeholder {
    color: #7a7f87 !important;
}

html[data-scheme="dark"] .monazo-auth__remember {
    color: #9ca3af;
}

/* Checkboxy w dark: natywny widget rysuje BIAŁE pudełko niezależnie od
   accent-color (ta koloruje wyłącznie stan zaznaczony), więc na ciemnym
   tle świecił jak latarnia. Przejmujemy render: powierzchnia i hairline
   jak w polach formularza, a zaznaczenie to akcent z ciemnym ptaszkiem
   — spójnie z zasadą "tekst na zieleni w dark = #1C1C1C". */
html[data-scheme="dark"] .monazo-auth__remember input[type="checkbox"],
html[data-scheme="dark"] .monazo-auth__terms input[type="checkbox"] {
    -webkit-appearance: none;
    appearance: none;
    background: #232323;
    border: 1px solid #3d3d3d;
    border-radius: 5px;
    transition: background-color 0.15s ease, border-color 0.15s ease;
}

html[data-scheme="dark"] .monazo-auth__remember input[type="checkbox"]:hover,
html[data-scheme="dark"] .monazo-auth__terms input[type="checkbox"]:hover {
    border-color: #4d4d4d;
}

html[data-scheme="dark"] .monazo-auth__remember input[type="checkbox"]:checked,
html[data-scheme="dark"] .monazo-auth__terms input[type="checkbox"]:checked {
    background-color: #4CBB17;
    border-color: #4CBB17;
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath fill='none' stroke='%231C1C1C' stroke-width='2.6' stroke-linecap='round' stroke-linejoin='round' d='M3.5 8.3l3 3 6-6'/%3E%3C/svg%3E");
    background-size: 12px 12px;
    background-position: center;
    background-repeat: no-repeat;
}

html[data-scheme="dark"] .monazo-auth__remember input[type="checkbox"]:focus-visible,
html[data-scheme="dark"] .monazo-auth__terms input[type="checkbox"]:focus-visible {
    outline: 2px solid #4CBB17;
    outline-offset: 2px;
}

html[data-scheme="dark"] .monazo-auth__success p {
    color: #f3f4f6;
}

html[data-scheme="dark"] .monazo-auth__success {
    background: #2c2c2c;
}

html[data-scheme="dark"] .monazo-auth__intro,
html[data-scheme="dark"] .monazo-auth__links {
    color: #9ca3af;
}

html[data-scheme="dark"] .monazo-auth__cta {
    border-color: #333333;
}

html[data-scheme="dark"] .monazo-auth__cta:hover {
    background: rgba(255, 255, 255, 0.05);
    border-color: #3d3d3d;
}

html[data-scheme="dark"] .monazo-auth .monazo-auth__cta-label {
    color: #9ca3af;
}

html[data-scheme="dark"] .monazo-auth__field label {
    color: #f3f4f6;
}

html[data-scheme="dark"] .monazo-auth .monazo-auth__field input {
    background: #232323 !important;
    border-color: #333333 !important;
    color: #f3f4f6 !important;
}

html[data-scheme="dark"] .monazo-auth__msg--ok {
    color: #f3f4f6;
}

html[data-scheme="dark"] .monazo-auth__msg--error {
    color: #f87171; /* czerwien rozjasniona — #dc2626 tonie na #1C1C1C */
}

html[data-scheme="dark"] .monazo-auth__terms {
    color: #9ca3af;
}

html[data-scheme="dark"] .monazo-auth__or {
    color: #9ca3af;
}

html[data-scheme="dark"] .monazo-auth__or::before,
html[data-scheme="dark"] .monazo-auth__or::after {
    background: #333333;
}

html[data-scheme="dark"] .monazo-auth .monazo-auth__google {
    background: #232323 !important;
    border-color: #333333 !important;
    color: #f3f4f6 !important;
}

html[data-scheme="dark"] .monazo-auth .monazo-auth__google:hover {
    background: #2c2c2c !important;
}

html[data-scheme="dark"] .monazo-auth__legal {
    color: #7a7f87;
}

html[data-scheme="dark"] .monazo-auth__legal a {
    color: #9ca3af;
}

/* Toast: w dark powierzchnia jasniejsza od tla + hairline zamiast cienia
   (cien na ciemnym tle znika); pasek postepu bez zmian — akcent. */
html[data-scheme="dark"] .monazo-toast {
    background: #232323;
    color: #f3f4f6;
    border: 1px solid #333333;
    box-shadow: 0 8px 24px rgba(0, 0, 0, 0.5);
}

/* Panel konta */
html[data-scheme="dark"] .monazo-account__loading,
html[data-scheme="dark"] .monazo-account__desc {
    color: #9ca3af;
}

html[data-scheme="dark"] .monazo-account__card {
    background: #232323;
    border-color: #333333;
}

html[data-scheme="dark"] .monazo-account__title {
    color: #f3f4f6;
}

html[data-scheme="dark"] .monazo-account__avatar {
    border-color: #333333;
}

html[data-scheme="dark"] .monazo-account__avatar--placeholder {
    background: #2c2c2c;
}

html[data-scheme="dark"] .monazo-account .monazo-account__upload {
    background: #363636 !important;
}

html[data-scheme="dark"] .monazo-account__link-btn {
    color: #f87171;
}

/* Taby */
html[data-scheme="dark"] .monazo-tabs {
    background: #232323;
    border-color: #333333;
}

html[data-scheme="dark"] .monazo-tabs__tab {
    color: #9ca3af;
}

html[data-scheme="dark"] .monazo-tabs__tab:hover {
    background: #2c2c2c;
    color: #f3f4f6;
}

html[data-scheme="dark"] .monazo-tabs__tab[aria-selected="true"] {
    background: #4CBB17;
    color: #1C1C1C; /* tekst na zieleni w dark — jak na CTA */
}

/* Fade'y musza gradientowac do KOLORU POWIERZCHNI paska — w dark to
   #232323, nie biel (bialy fade na ciemnym tle to smuga mgly). */
html[data-scheme="dark"] .monazo-tabs__fade--left {
    background: linear-gradient(to right, #232323 20%, rgba(35, 35, 35, 0));
}

html[data-scheme="dark"] .monazo-tabs__fade--right {
    background: linear-gradient(to left, #232323 20%, rgba(35, 35, 35, 0));
}

/* Widget navbara */
html[data-scheme="dark"] .monazo-navbar-user:hover {
    background: rgba(255, 255, 255, 0.06);
}

html[data-scheme="dark"] .monazo-navbar-user img[data-monazo-avatar] {
    border: 1px solid #333333;
}
