/* Custom CSS for CATED HULU */

:root {
    --primary: #2C95CA;
    --secondary: #E18A3A;
    --accent: #75B546;
}

/* Stepper Transitions */
.step-item .step-circle {
    transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
}

.step-item.active .step-circle {
    transform: scale(1.1);
}

/* Form Step Transitions */
.form-step {
    display: none;
    animation: fadeIn 0.4s ease-out;
}

.form-step.active {
    display: block;
}

@keyframes fadeIn {
    from { opacity: 0; transform: translateY(10px); }
    to { opacity: 1; transform: translateY(0); }
}

/* Custom Checkbox/Radio Focus */
.form-input:focus {
    border-color: var(--primary) !important;
    box-shadow: 0 0 0 2px rgba(44, 149, 202, 0.2) !important;
}

/* Map Rounded Corners fix */
.leaflet-container {
    border-radius: 0.75rem;
    z-index: 10;
}

/* Skeleton Loading Animation */
@keyframes shimmer {
    0% { background-position: -468px 0; }
    100% { background-position: 468px 0; }
}

.skeleton {
    background: #f6f7f8;
    background-image: linear-gradient(to right, #f6f7f8 0%, #edeef1 20%, #f6f7f8 40%, #f6f7f8 100%);
    background-repeat: no-repeat;
    background-size: 800px 104px;
    display: inline-block;
    position: relative;
    animation: shimmer 1s linear infinite forwards;
}

/* Custom Scrollbar */
::-webkit-scrollbar {
    width: 6px;
    height: 6px;
}

::-webkit-scrollbar-track {
    background: #f1f1f1;
}

::-webkit-scrollbar-thumb {
    background: #ccc;
    border-radius: 10px;
}

::-webkit-scrollbar-thumb:hover {
    background: #bbb;
}

/* Utility classes for BPS colors */
.bg-bps-blue { background-color: var(--primary); }
.text-bps-blue { color: var(--primary); }
.bg-bps-orange { background-color: var(--secondary); }
.text-bps-orange { color: var(--secondary); }
.bg-bps-green { background-color: var(--accent); }
.text-bps-green { color: var(--accent); }
