@import url("https://fonts.googleapis.com/css2?family=Nunito+Sans:ital,opsz,wght@0,6..12,200..1000;1,6..12,200..1000&display=swap");

:root {
    --primary: #23ade4;
    --dark: #454545;
    --ash: #aeaeae;
    --tw-rotate: 0;
    --tw-skew-x: 0;
    --tw-skew-y: 0;
    --tw-scale-x: 1;
    --tw-scale-y: 1;
    --tw-ring-offset-shadow: 0 0 #0000;
    --tw-ring-shadow: 0 0 #0000;
    --tw-shadow-color: #fff;
    --tw-ring-inset: var(--tw-empty, /*!*/ /*!*/);
    --tw-ring-offset-width: 0px;
    --tw-ring-offset-color: #fff;
    --tw-ring-color: #1c64f2;
    --tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0;
    --tw-border-opacity: 1;
}

body {
    font-family: "Nunito Sans", sans-serif;
    background-color: white;
}

.card-container {
    display: flex;
    justify-content: center;
    align-items: center;
    min-height: 100vh;
    padding: 1rem 0;
}

.common-card {
    min-height: 500px;
    width: 91.666667%;
    max-width: 32rem;
    border-radius: 0.5rem;
    border-width: 1px;
    border-style: solid;
    --tw-border-opacity: 1;
    border-color: rgb(243 244 246 / var(--tw-border-opacity));
    --tw-bg-opacity: 1;
    background-color: rgb(255 255 255 / var(--tw-bg-opacity));
    padding-top: 1.5rem;
    padding-bottom: 1.5rem;
    padding-left: 1.5rem;
    padding-right: 1.5rem;
    --tw-shadow: 0 4px 6px -1px rgb(0 0 0 / 0.1), 0 2px 4px -2px rgb(0 0 0 / 0.1);
    --tw-shadow-colored: 0 4px 6px -1px var(--tw-shadow-color),
    0 2px 4px -2px var(--tw-shadow-color);
    box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000),
    var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);
    margin: auto;

    @media (min-width: 640px) {
        padding-top: 3rem;
        padding-bottom: 3rem;
        padding-left: 5rem;
        padding-right: 5rem;
    }
}

.title {
    font-weight: 700;
    font-size: 20px;
    color: var(--dark);
    margin: 20px 0px;

    @media (min-width: 375px) {
        margin-top: 1.25rem;
        margin-bottom: 1.25rem;
    }
}

.form-control {
    width: 100%;
    border-radius: 0.375rem;
    border-width: 1px;
    border-color: var(--ash);
    padding-left: 2.25rem;
    padding-right: 2.25rem;
    padding-top: 0.75rem;
    padding-bottom: 0.75rem;
    font-size: 0.75rem;
    line-height: 1rem;
    font-weight: 600;
    color: var(--dark); /* Keep typed text readable and dark */
}

.form-control::placeholder {
    font-family: Nunito, sans-serif;
    font-size: 0.75rem;
    line-height: 1rem;
    font-weight: 600;
    line-height: 1;
    color: var(--ash);
}

input[type="text"]:focus,
input[type="password"]:focus,
input[type="tel"]:focus,
input[type="number"]:focus {
    border-color: var(--primary);
    box-shadow: none;
}

input[type="password"]::-ms-reveal,
input[type="password"]::-ms-clear {
    display: none;
}

.form-control.is-valid {
    border-color: #2ec4b6 !important; /* Elegant green border for valid inputs */
}

.form-control.is-invalid {
    border-color: #ff3366 !important; /* Elegant red border for invalid inputs */
}

.icon-left {
    position: absolute;
    top: 50%;
    left: 0.75rem;
    transform: translateY(-50%);
    font-size: 0.75rem;
    line-height: 1rem;
    font-weight: 600;
    color: var(--ash);
}

.icon-right {
    position: absolute;
    top: 50%;
    right: 0.75rem;
    transform: translateY(-50%);
    font-size: 0.75rem;
    line-height: 1rem;
    font-weight: 600;
    color: var(--ash);
}

.primary-btn {
    height: 2.5rem;
    width: 100%;
    border-radius: 0.25rem;
    background-color: var(--primary);
    font-size: 0.875rem;
    line-height: 1.25rem;
    font-weight: 700;
    color: #fff;
}

.primary-btn:hover {
    background-color: rgba(35, 173, 228, 0.9);
    color: #fff;
}

.primary-link-btn {
    display: inline-block;
    width: 100%;
    border-radius: 0.25rem;
    background-color: var(--primary);
    padding-top: 0.75rem;
    padding-bottom: 0.75rem;
    text-align: center;
    font-size: 0.875rem;
    line-height: 1.25rem;
    font-weight: 700;
    color: #fff;
    text-decoration: none;
}

.primary-link-btn:hover {
    background-color: rgba(35, 173, 228, 0.9);
    color: #fff;
}

.text-baseline {
    font-weight: 400;
    font-size: 14px;
    color: var(--dark);
}

.color-primary {
    color: var(--primary);
}

.error-msg {
    font-weight: 500;
    font-size: 12px;
}

.text-para {
    font-weight: 400;
    font-size: 14px;
    color: var(--dark);
}

/* Chrome, Safari, Edge, Opera */
input::-webkit-outer-spin-button,
input::-webkit-inner-spin-button {
    -webkit-appearance: none;
    margin: 0;
}

/* Firefox */
input[type="number"] {
    -moz-appearance: textfield;
}

.check-label {
    font-weight: 700;
    font-size: 0.75rem;
    color: var(--dark);
}

.remember-password-input {
    margin-right: 0.5rem;
    height: 13px;
    width: 13px;
    border-radius: 0.125rem;
    border-width: 1px;
    border-style: solid;
    --tw-border-opacity: 1;
    border-color: rgb(174 174 174 / var(--tw-border-opacity)) !important;
    cursor: pointer;
}

input[type="checkbox"] {
    background-image: url("data:image/svg+xml,%3csvg aria-hidden='true' xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 16 12'%3e %3cpath stroke='white' stroke-linecap='round' stroke-linejoin='round' stroke-width='3' d='M1 5.917 5.724 10.5 15 1.5'/%3e %3c/svg%3e");
    background-color: var(--primary);
    border-width: 1px;
    border-style: solid;
    --tw-border-opacity: 1;
    border-color: rgb(174 174 174 / var(--tw-border-opacity)) !important;
}

.text-link {
    font-size: 12px;
    color: var(--primary);
    text-decoration: none;
}

.otp {
    height: 2.5rem;
    width: 2.5rem;
    border-radius: 0.375rem;
    border-width: 1px;
    border-style: solid;
    --tw-border-opacity: 1;
    border-color: rgb(174 174 174 / var(--tw-border-opacity));
    text-align: center;
    font-size: 0.75rem;
    line-height: 1rem;
    font-weight: 600;
    --tw-text-opacity: 1;
    color: rgb(69 69 69 / var(--tw-text-opacity));
}

.otp::-moz-placeholder {
    font-family: Nunito, sans-serif;
    font-size: 0.75rem;
    line-height: 1rem;
    font-weight: 600;
    line-height: 1;
    --tw-text-opacity: 1;
    color: rgb(174 174 174 / var(--tw-text-opacity));
}

.otp::placeholder {
    font-family: Nunito, sans-serif;
    font-size: 0.75rem;
    line-height: 1rem;
    font-weight: 600;
    line-height: 1;
    --tw-text-opacity: 1;
    color: rgb(174 174 174 / var(--tw-text-opacity));
}

.otp:focus {
    --tw-border-opacity: 1;
    border-color: rgb(35 173 228 / var(--tw-border-opacity));
    outline: 2px solid transparent;
    outline-offset: 2px;
    --tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0
    var(--tw-ring-offset-width) var(--tw-ring-offset-color);
    --tw-ring-shadow: var(--tw-ring-inset) 0 0 0
    calc(0px + var(--tw-ring-offset-width)) var(--tw-ring-color);
    box-shadow: var(--tw-ring-offset-shadow), var(--tw-ring-shadow),
    var(--tw-shadow, 0 0 #0000);
}

.modal-dialog {
    width: 300px;
    margin: 0 auto;
}

.modal-header {
    border-bottom: 0;
}

.modal-footer {
    display: block;
    padding: 0px 60px;
    border-top: 0;
}
