/* ============================================================
   SPPG Custom Styles
   ============================================================ */

/* Smooth scrolling */
html { scroll-behavior: smooth; }

/* Selection color */
::selection { background: #bae6fd; color: #0c4a6e; }

/* Scroll animation base */
.scroll-animate {
    opacity: 0;
    transform: translateY(30px);
    transition: all 0.7s cubic-bezier(0.16, 1, 0.3, 1);
}
.scroll-animate.visible {
    opacity: 1;
    transform: translateY(0);
}

/* Form step transitions */
.form-step {
    animation: fadeSlideIn 0.4s ease-out forwards;
}
@keyframes fadeSlideIn {
    0% { opacity: 0; transform: translateX(30px); }
    100% { opacity: 1; transform: translateX(0); }
}

/* Input focus glow */
.form-input:focus {
    box-shadow: 0 0 0 3px rgba(14, 165, 233, 0.15);
}
.form-input.error {
    border-color: #f43f5e !important;
    box-shadow: 0 0 0 3px rgba(244, 63, 94, 0.1) !important;
}
.form-input.success {
    border-color: #10b981 !important;
}

/* Upload dropzone drag hover */
.upload-dropzone.drag-hover {
    border-color: #0ea5e9 !important;
    background: rgba(14, 165, 233, 0.05) !important;
}

/* Custom scrollbar */
::-webkit-scrollbar { width: 8px; }
::-webkit-scrollbar-track { background: #f1f5f9; }
::-webkit-scrollbar-thumb { background: #bae6fd; border-radius: 4px; }
::-webkit-scrollbar-thumb:hover { background: #7dd3fc; }

/* Toast animation */
.toast-show {
    transform: translateY(0) !important;
    opacity: 1 !important;
}

/* Loading overlay */
.loading-overlay {
    position: fixed;
    inset: 0;
    background: rgba(255, 255, 255, 0.85);
    backdrop-filter: blur(8px);
    display: flex;
    align-items: center;
    justify-content: center;
    z-index: 9999;
}
.loading-spinner {
    width: 48px;
    height: 48px;
    border: 4px solid #e0f2fe;
    border-top-color: #0ea5e9;
    border-radius: 50%;
    animation: spin 0.8s linear infinite;
}
@keyframes spin { to { transform: rotate(360deg); } }

/* Mobile bottom safe area */
@media (max-width: 640px) {
    .form-step { animation-duration: 0.3s; }
}
