/* ═══════════════════════════════════════════════
   STYLE ZEWNĘTRZNE - GRUPOWE.PRO
═══════════════════════════════════════════════ */

/* Animacje wjeżdżania elementów (Scroll Reveal) */
.reveal {
    opacity: 0;
    transform: translateY(30px);
    transition: all 0.6s ease-out;
}

.reveal.active {
    opacity: 1;
    transform: translateY(0);
}

.delay-100 { transition-delay: 100ms; }
.delay-200 { transition-delay: 200ms; }

/* -----------------------------------------------
   Logika i animacja modali
----------------------------------------------- */
.modal-overlay {
    position: fixed;
    inset: 0;
    background-color: rgba(15, 23, 42, 0.6);
    backdrop-filter: blur(4px);
    z-index: 100;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 1.25rem;
    opacity: 0;
    visibility: hidden; /* Ukryte by default - nie przeszkadza w klikaniu */
    transition: all 0.3s ease-in-out;
}

/* Stan otwarty */
.modal-overlay.active {
    opacity: 1;
    visibility: visible;
}

/* Wnętrze modala (efekt przybliżania) */
.modal-content {
    transform: scale(0.95);
    transition: transform 0.3s ease-in-out;
}

.modal-overlay.active .modal-content {
    transform: scale(1);
}

/* -----------------------------------------------
   Kółeczko ładowania (NIP API)
----------------------------------------------- */
.loader {
    border: 2px solid #f3f3f3;
    border-top: 2px solid #2a3b69;
    border-radius: 50%;
    width: 14px;
    height: 14px;
    animation: spin 1s linear infinite;
    display: none; /* Sterowane z JS (block/none) */
}

@keyframes spin {
    0% { transform: rotate(0deg); }
    100% { transform: rotate(360deg); }
}
