/* ==========================================================================
   SportSystem — walidacja na żywo (walidacja.js): /kontakt, /zaloguj,
   /zaloz-klub. Reguły pokazuje serwer; ten arkusz tylko je ubiera:
   komunikat pod polem, czerwona obwódka, zielony znacznik, spinner.
   Zmienne z strona.css (--koral-tekst, --zielen-tekst, --r-m).
   ========================================================================== */

/* Komunikaty błędów pod polem — jak render serwera (`.pole ul`). */
.blad-js {
    list-style: none;
    padding: 0;
    margin: 0;
    color: var(--koral-tekst);
    font-size: .86rem;
    font-weight: 600;
}

/* Pole z błędem — czerwień na kontrolce (checkbox/radio bez ramki zostają). */
.pole--blad input:not([type='checkbox']):not([type='radio']),
.pole--blad select,
.pole--blad textarea {
    border-color: var(--koral-tekst);
    background: #FFF8F6;
}

.pole--blad .adres-klubu {
    border-color: var(--koral-tekst);
}

/* „Pigułka" adresu (krok 2 kreatora, /zaloguj): obwódkę ma wrapper. */
.pole--ok .adres-klubu {
    border-color: var(--zielen-tekst);
}

/* Pole sprawdzone i poprawne: zielona obwódka + znacznik w polu. */
.pole--ok input:not([type='checkbox']):not([type='radio']):not([type='file']),
.pole--ok textarea {
    border-color: var(--zielen-tekst);
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%230E7A41' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m5 12.5 4.5 4.5L19 7.5'/%3E%3C/svg%3E");
    background-repeat: no-repeat;
    background-position: right 12px center;
    background-size: 17px;
    padding-right: 40px;
}

.pole--ok .adres-klubu input[type='text'] {
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%230E7A41' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m5 12.5 4.5 4.5L19 7.5'/%3E%3C/svg%3E");
    background-repeat: no-repeat;
    background-position: right 44px center;
    background-size: 17px;
}

/* Błąd globalny (odpowiedź serwera bez konkretnego pola) nad formularzem. */
.wal-globalne {
    margin-bottom: 1.2rem;
}

.wal-globalne p + p {
    margin-top: .35rem;
}

/* Spinner na przycisku w trakcie wysyłki. */
.przycisk--czeka {
    pointer-events: none;
    opacity: .75;
}

.przycisk--czeka::after {
    content: '';
    display: inline-block;
    width: 13px;
    height: 13px;
    margin-left: .55rem;
    vertical-align: -2px;
    border: 2px solid currentColor;
    border-top-color: transparent;
    border-radius: 50%;
    animation: wal-obrot .7s linear infinite;
}

@keyframes wal-obrot {
    to { transform: rotate(360deg); }
}

@media (prefers-reduced-motion: reduce) {
    .przycisk--czeka::after { animation-duration: 1.8s; }
}
