/* Custom Brand Colors */
.bg-onin-green {
    background-color: #398232 !important;
}
.text-onin-green {
    color: #398232 !important;
}
.border-onin-green {
    border-color: #398232 !important;
}


.hover-onin-blue:hover {
    background-color: #357a2f !important;
    transition: background-color 0.2s ease;
}

.bg-onin-dark-blue {
    background-color: #112D50 !important;
}
.text-onin-dark-blue {
    color: #112D50 !important;
}
.border-onin-dark-blue {
    border-color: #112D50 !important;
}


.hover-onin-lite-blue:hover {
    background-color: #6692B7 !important;
    transition: background-color 0.2s ease;
}

.bg-onin-grey {
    background-color: #828588 !important;
}
.text-onin-grey {
    color: #828588 !important;
}
.border-onin-grey {
    border-color: #828588 !important;
}


.hover-onin-grey:hover {
    background-color: #C1C2C3 !important;
    transition: background-color 0.2s ease;
}

/* --- Validation & Error States  --- */

.input-error {
    border-color: #e11d48 !important;
    background-color: #fff1f2 !important;
    animation: shake 0.2s ease-in-out 0s 2;
    transition: all 0.2s ease;
}

.error-text {
    display: none;
    color: #e11d48;
    font-size: 0.75rem;
    font-weight: 600;
    margin-top: 0.5rem;
    margin-left: 0.25rem;
}

@keyframes shake {
    0%, 100% { transform: translateX(0); }
    25% { transform: translateX(-4px); }
    75% { transform: translateX(4px); }
}

label.block.tracking-widest {
    font-size: 13px !important;
    letter-spacing: 0.08em;
    opacity: 0.85;
}

.text-slate-400 {
    color: #636569 !important;
}

/* Onin branded buttons */
.btn-onin {
    background-color: #004987;
    color: white;
    border: none;
    cursor: pointer;

    font-weight: 700;

    padding: 0.9rem 2.5rem;

    border-radius: 9999px; /* FULLY ROUND */

    transition:
        background-color 0.2s ease,
        transform 0.2s ease,
        box-shadow 0.2s ease;

    box-shadow: 0 8px 20px rgba(0, 73, 135, 0.15);
}

.btn-onin:hover {
    background-color: #003663;
    transform: translateY(-1px);
}

.btn-onin:active {
    transform: translateY(0);
}

.btn-onin:disabled {
    background-color: #cbd5e1;
    cursor: not-allowed;
    box-shadow: none;
}

/* size variants */
.btn-onin-sm {
    padding: 0.65rem 1.5rem;
    font-size: 0.875rem;
}

.btn-onin-lg {
    padding: 1rem 3rem;
    font-size: 1rem;
}