/* =========================================
   1. GLOBAL VARIABLES & BASE STYLES
========================================= */

:root {
    --bank-primary: #005A89;
    --bank-primary-dark: #00466B;
    --bank-primary-light: #2A7FB0;

    --bank-secondary: #D48C1F;
    --bank-secondary-dark: #B87415;
    --bank-secondary-light: #E6A84A;

    --bank-dark: #1F2A37;
    --bank-light: #F8FAFC;

    --bank-border: #E2E8F0;
    --bg-page: #F1F5F9;

    --success: #22C55E;
    --danger: #EF4444;
    --warning: #F59E0B;
    --info: #0EA5E9;
}

body { 
    font-family: 'Segoe UI', Tahoma, Geneva, Verdana, sans-serif; 
    background-color: #ffffff;
    color: var(--bank-dark); 
    margin: 0;
    padding: 0;
}

/* Typography */
.text-primary-bank { color: var(--bank-primary) !important; }
.text-secondary-bank { color: var(--bank-secondary) !important; }

.bg-primary-bank { 
    background-color: var(--bank-primary) !important; 
    color: white; 
}

.bg-secondary-bank { 
    background-color: var(--bank-secondary) !important; 
    color: white; 
}

.bg-light-bank { 
    background-color: var(--bank-light) !important; 
}


/* =========================================
   2. GLOBAL BUTTONS
========================================= */

.btn-bank { 
    background-color: var(--bank-secondary); 
    color: white; 
    font-weight: 700; 
    border-radius: 4px; 
    text-transform: uppercase; 
    font-size: 0.9rem; 
    padding: 12px 24px; 
    border: 1px solid var(--bank-secondary); 
    transition: 0.3s; 
    letter-spacing: 0.5px; 
}

.btn-bank:hover { 
    background-color: var(--bank-secondary-dark); 
    border-color: var(--bank-secondary-dark); 
    color: white; 
    box-shadow: 0 4px 8px rgba(212,140,31,0.3); 
}

.btn-outline-bank { 
    background-color: transparent; 
    color: var(--bank-primary); 
    font-weight: 700; 
    border-radius: 4px; 
    text-transform: uppercase; 
    font-size: 0.85rem; 
    padding: 10px 24px; 
    border: 2px solid var(--bank-primary); 
    transition: 0.3s; 
}

.btn-outline-bank:hover { 
    background-color: var(--bank-primary); 
    color: white; 
}


/* =========================================
   3. HOME PAGE STYLES
========================================= */

.top-bar { 
    background-color: var(--bank-light); 
    border-bottom: 1px solid var(--bank-border); 
    font-size: 0.8rem; 
    letter-spacing: 0.3px; 
}

.hero-section { 
    background: linear-gradient(to right, rgb(0 40 60 / 95%), rgba(0, 70, 107, 0.85));
    padding: 80px 0 140px; 
    color: white; 
}

.card-service { 
    border: 1px solid var(--bank-border); 
    border-top: 4px solid var(--bank-secondary); 
    border-radius: 6px; 
    box-shadow: 0 6px 12px rgba(0,0,0,0.04); 
    transition: transform 0.2s; 
    background: white; 
}

.card-service:hover { 
    transform: translateY(-5px); 
}

.overlap-section { 
    margin-top: -90px; 
    position: relative; 
    z-index: 10; 
}

.icon-square { 
    width: 55px; 
    height: 55px; 
    background-color: rgba(212,140,31,0.1); 
    color: var(--bank-secondary); 
    display: flex; 
    align-items: center; 
    justify-content: center; 
    border-radius: 6px; 
    font-size: 26px; 
    margin-bottom: 18px; 
}

.dense-list li { 
    padding: 10px 0; 
    border-bottom: 1px dashed var(--bank-border); 
    font-size: 0.9rem; 
    display: flex; 
    align-items: flex-start; 
}

.dense-list li:last-child { 
    border-bottom: none; 
}

.dense-list i { 
    margin-top: 4px; 
}


/* =========================================
   4. LOGIN & REGISTER PAGE STYLES
========================================= */

.auth-wrapper, 
.login-wrapper, 
.register-wrapper {
    min-height: calc(100vh - 120px);
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 40px 20px;
    background-color: var(--bg-page);
}

.auth-card, 
.login-card, 
.register-card {
    border: none;
    border-radius: 12px;
    overflow: hidden;
    box-shadow: 0 15px 35px rgba(0,0,0,0.08);
    width: 100%;
    background: white;
}

.login-card, 
.auth-card { 
    max-width: 950px; 
}

.register-card { 
    max-width: 900px; 
}


/* Branding */

.auth-branding, 
.login-branding, 
.register-header {
    background: linear-gradient(
        135deg,
        var(--bank-primary) 0%,
        var(--bank-primary-dark) 100%
    );
    color: white;
    position: relative;
}

.auth-branding, 
.login-branding {
    padding: 3rem;
    display: flex;
    flex-direction: column;
    justify-content: space-between;
}

.register-header {
    padding: 2.5rem;
    text-align: center;
}


/* Pattern */

.auth-branding::before, 
.login-branding::before, 
.register-header::before {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    background-image: radial-gradient(circle at 2px 2px, rgba(255,255,255,0.05) 1px, transparent 0);
    background-size: 20px 20px;
    z-index: 1;
}

.auth-branding > *, 
.login-branding > *, 
.register-header > * { 
    position: relative; 
    z-index: 2; 
}


/* Form Container */

.auth-form-container, 
.login-form-container { 
    padding: 3.5rem 4rem; 
}

.register-form-container { 
    padding: 3rem; 
}


/* Inputs */

.auth-form-container .input-group-text,
.login-form-container .input-group-text,
.register-form-container .input-group-text,
.custom-input-group .input-group-text {
    background-color: #f8f9fa;
    border-right: none;
    color: var(--bank-primary);
}

.auth-form-container .form-control,
.login-form-container .form-control,
.register-form-container .form-control,
.custom-input-group .form-control {
    border-left: none;
    background-color: #f8f9fa;
    box-shadow: none;
}

.auth-form-container .form-control:focus,
.login-form-container .form-control:focus,
.register-form-container .form-control:focus,
.custom-input-group .form-control:focus {
    background-color: white;
    border-color: var(--bank-border);
}


/* Focus State */

.auth-form-container .input-group:focus-within,
.login-form-container .input-group:focus-within,
.register-form-container .input-group:focus-within,
.custom-input-group:focus-within {
    border-radius: 0.375rem;
    box-shadow: 0 0 0 0.25rem rgba(212,140,31,0.15);
}

.auth-form-container .input-group:focus-within .input-group-text,
.auth-form-container .input-group:focus-within .form-control,
.login-form-container .input-group:focus-within .input-group-text,
.login-form-container .input-group:focus-within .form-control,
.register-form-container .input-group:focus-within .input-group-text,
.register-form-container .input-group:focus-within .form-control,
.custom-input-group:focus-within .input-group-text,
.custom-input-group:focus-within .form-control {
    border-color: var(--bank-secondary);
}


/* Checkbox */

.form-check-input:checked, 
.custom-checkbox:checked {
    background-color: var(--bank-primary);
    border-color: var(--bank-primary);
}


/* Eye Icon */

.eye-toggle {
    cursor: pointer;
    background-color: transparent !important;
    border-left: none !important;
    color: #6c757d !important;
}


/* Back button */

.back-to-home {
    position: absolute;
    top: 20px;
    left: 20px;
    color: white;
    text-decoration: none;
    font-size: 0.85rem;
    opacity: 0.8;
    transition: 0.3s;
    z-index: 10;
}

.back-to-home:hover { 
    opacity: 1; 
    color: white; 
}


/* Responsive */

@media (max-width: 767px) {

    .auth-form-container, 
    .login-form-container { 
        padding: 2rem; 
    }

    .register-form-container { 
        padding: 2rem 1.5rem; 
    }

}