/* =============================================
   SUBHALI PARIBAHAN — BRAND STYLESHEET
   Colors: #D93B48 (red) | #1043A6 (blue) | #fff
   ============================================= */

*, *::before, *::after {
    margin: 0;
    padding: 0;
    box-sizing: border-box;
}

/* ── GLOBAL BOX SIZING ── */
*, *::before, *::after {
    box-sizing: border-box;
}

html, body {
    overflow-x: hidden;
    max-width: 100%;
}

:root {
    --green:       #D93B48;
    --green-dark:  #B71C2B;
    --green-light: #FCEBED;
    --gold:        #1043A6;
    --gold-dark:   #0D3490;
    --white:       #ffffff;
    --gray-50:     #f9fafb;
    --gray-100:    #f3f4f6;
    --gray-200:    #e5e7eb;
    --gray-400:    #9ca3af;
    --gray-600:    #4b5563;
    --gray-700:    #374151;
    --gray-800:    #1f2937;
    --red:         #dc2626;
    --red-light:   #fef2f2;
    --gold-light:  #EEF3FD;
    --navy:        #122954;
    --shadow-sm:   0 1px 3px rgba(0,0,0,0.08);
    --shadow-md:   0 4px 16px rgba(0,0,0,0.10);
    --shadow-lg:   0 8px 32px rgba(0,0,0,0.13);
    --radius-sm:   6px;
    --radius-md:   12px;
    --radius-lg:   20px;
    --radius-full: 9999px;
    --transition:  all 0.3s ease;
}

html, body {
    font-family: 'Poppins', sans-serif;
    background-color: var(--white);
    color: var(--gray-800);
    min-height: 100vh;
    scroll-behavior: smooth;
}

/* ── BUTTONS ───────────────────────────────── */
.btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    padding: 12px 28px;
    border: none;
    border-radius: var(--radius-full);
    font-family: 'Poppins', sans-serif;
    font-size: 15px;
    font-weight: 600;
    cursor: pointer;
    transition: var(--transition);
    text-decoration: none;
    white-space: nowrap;
}

.btn-primary {
    background-color: var(--green);
    color: var(--white);
}
.btn-primary:hover {
    background-color: var(--green-dark);
    transform: translateY(-1px);
    box-shadow: 0 6px 20px rgba(14,102,58,0.35);
}

.btn-gold {
    background-color: var(--gold);
    color: var(--white);
}
.btn-gold:hover {
    background-color: var(--gold-dark);
    transform: translateY(-1px);
    box-shadow: 0 6px 20px rgba(206,167,46,0.35);
}

.btn-outline {
    background-color: transparent;
    color: var(--green);
    border: 2px solid var(--green);
}
.btn-outline:hover {
    background-color: var(--green);
    color: var(--white);
    transform: translateY(-1px);
}

.btn-outline-white {
    background-color: transparent;
    color: var(--white);
    border: 2px solid var(--white);
}
.btn-outline-white:hover {
    background-color: var(--white);
    color: var(--green);
    transform: translateY(-1px);
}

.btn-lg {
    padding: 15px 40px;
    font-size: 16px;
}

.btn-block {
    width: 100%;
}

/* ── FORM ELEMENTS ─────────────────────────── */
.form-group {
    margin-bottom: 20px;
}

.form-label {
    display: block;
    font-size: 13px;
    font-weight: 600;
    color: var(--gray-600);
    margin-bottom: 7px;
    text-transform: uppercase;
    letter-spacing: 0.5px;
}

.form-control {
    width: 100%;
    padding: 12px 16px;
    border: 1.5px solid var(--gray-200);
    border-radius: var(--radius-md);
    font-family: 'Poppins', sans-serif;
    font-size: 14px;
    color: var(--gray-800);
    background-color: var(--white);
    transition: var(--transition);
    outline: none;
}
.form-control:focus {
    border-color: var(--green);
    box-shadow: 0 0 0 3px rgba(14,102,58,0.10);
}
.form-control.is-invalid {
    border-color: var(--red);
    box-shadow: 0 0 0 3px rgba(220,38,38,0.10);
}
.form-control-icon {
    position: relative;
}
.form-control-icon i {
    position: absolute;
    left: 14px;
    top: 50%;
    transform: translateY(-50%);
    color: var(--gray-400);
    font-size: 15px;
}
.form-control-icon .form-control {
    padding-left: 42px;
}

/* ── ALERTS ────────────────────────────────── */
.alert {
    padding: 12px 16px;
    border-radius: var(--radius-md);
    font-size: 14px;
    font-weight: 500;
    margin-bottom: 18px;
    display: flex;
    align-items: center;
    gap: 10px;
}
.alert-success {
    background-color: var(--green-light);
    color: var(--green-dark);
    border: 1px solid rgba(14,102,58,0.2);
}
.alert-danger {
    background-color: var(--red-light);
    color: var(--red);
    border: 1px solid rgba(220,38,38,0.2);
}
.alert-warning {
    background-color: #fffbeb;
    color: #92400e;
    border: 1px solid rgba(206,167,46,0.3);
}

/* ── CARD ──────────────────────────────────── */
.gs-card {
    background-color: var(--white);
    border-radius: var(--radius-lg);
    box-shadow: var(--shadow-md);
    padding: 36px;
}

/* ── AUTH PAGES WRAPPER ────────────────────── */
.auth-wrapper {
    min-height: 100vh;
    display: flex;
    align-items: center;
    justify-content: center;
    background: linear-gradient(135deg, var(--green-light) 0%, var(--white) 60%);
    padding: 20px;
}

.auth-box {
    width: 100%;
    max-width: 480px;
    background: var(--white);
    border-radius: var(--radius-lg);
    box-shadow: var(--shadow-lg);
    padding: 40px;
}

.auth-logo {
    text-align: center;
    margin-bottom: 28px;
}

.auth-logo .logo-text {
    font-size: 28px;
    font-weight: 800;
    color: var(--green);
}

.auth-logo .logo-text span {
    color: var(--gold);
}

.auth-logo p {
    font-size: 13px;
    color: var(--gray-400);
    margin-top: 4px;
}

.auth-title {
    font-size: 22px;
    font-weight: 700;
    color: var(--gray-800);
    margin-bottom: 6px;
}

.auth-subtitle {
    font-size: 13px;
    color: var(--gray-400);
    margin-bottom: 28px;
}

/* ── INVALID FEEDBACK ──────────────────────── */
.invalid-feedback {
    font-size: 12px;
    color: var(--red);
    margin-top: 5px;
    display: flex;
    align-items: center;
    gap: 4px;
}

/* ── OTP INPUT ─────────────────────────────── */
.otp-inputs {
    display: flex;
    gap: 14px;
    justify-content: center;
    margin: 24px 0;
}

.otp-input {
    width: 62px;
    height: 68px;
    text-align: center;
    font-size: 26px;
    font-weight: 700;
    border: 2px solid var(--gray-200);
    border-radius: var(--radius-md);
    color: var(--green);
    transition: var(--transition);
    outline: none;
    font-family: 'Poppins', sans-serif;
}
.otp-input:focus {
    border-color: var(--green);
    box-shadow: 0 0 0 3px rgba(14,102,58,0.12);
}
.otp-input.filled {
    border-color: var(--green);
    background-color: var(--green-light);
}

/* ── TIMER ─────────────────────────────────── */
.otp-timer {
    text-align: center;
    font-size: 14px;
    color: var(--gray-600);
    margin-bottom: 10px;
}
.otp-timer span {
    font-weight: 700;
    color: var(--red);
}
.otp-timer.expired span {
    color: var(--gray-400);
}

/* ── DIVIDER ───────────────────────────────── */
.divider {
    display: flex;
    align-items: center;
    gap: 12px;
    margin: 20px 0;
    color: var(--gray-400);
    font-size: 13px;
}
.divider::before,
.divider::after {
    content: '';
    flex: 1;
    height: 1px;
    background: var(--gray-200);
}

/* ── PASSWORD TOGGLE ───────────────────────── */
.password-wrapper {
    position: relative;
}
.password-wrapper .form-control {
    padding-right: 44px;
}
.password-toggle {
    position: absolute;
    right: 14px;
    top: 50%;
    transform: translateY(-50%);
    background: none;
    border: none;
    cursor: pointer;
    color: var(--gray-400);
    font-size: 15px;
    padding: 0;
    transition: var(--transition);
}
.password-toggle:hover {
    color: var(--green);
}

/* ── UTILITY ───────────────────────────────── */
.text-center { text-align: center; }
.text-green  { color: var(--green); }
.text-gold   { color: var(--gold); }
.text-muted  { color: var(--gray-400); font-size: 13px; }
.mt-1  { margin-top:  8px; }
.mt-2  { margin-top: 16px; }
.mt-3  { margin-top: 24px; }
.mb-1  { margin-bottom:  8px; }
.mb-2  { margin-bottom: 16px; }
.mb-3  { margin-bottom: 24px; }
.fw-600 { font-weight: 600; }
.fw-700 { font-weight: 700; }
.link-green {
    color: var(--green);
    font-weight: 600;
    text-decoration: none;
    transition: var(--transition);
}
.link-green:hover {
    color: var(--gold);
    text-decoration: underline;
}
