@charset "utf-8";

/* ==========================================================================
   Login Page Styles
   - Cleaned & Finalized
   ========================================================================== */

#login_container {
    position: fixed !important;
    top: 0 !important;
    left: 0 !important;
    width: 100% !important;
    height: 100% !important;
    background-color: #f1f5f9 !important;
    font-family: 'Noto Sans KR', sans-serif !important;
    z-index: 2147483647 !important;
    display: flex !important;
    margin: 0 !important;
    padding: 0 !important;
    overflow: hidden !important;
}

#login_container * {
    box-sizing: border-box !important;
}

/* 
   Animation Keyframes
*/
@keyframes login_fade_up {
    0% {
        opacity: 0;
        transform: translateY(20px);
    }
    100% {
        opacity: 1;
        transform: translateY(0);
    }
}

/* 
   Left Panel
*/
#login_container .login_left_panel {
    flex: 4.5 !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    background-color: #ffffff !important;
    position: relative !important;
    z-index: 10 !important;
    min-width: 450px !important;
}

#login_container .login_card {
    width: 400px !important; 
    padding: 0 !important;
    display: flex !important;
    flex-direction: column !important;
}

/* Animation Classes */
#login_container .anim_delay_1 { animation: login_fade_up 0.8s cubic-bezier(0.2, 0.8, 0.2, 1) both !important; }
#login_container .anim_delay_2 { animation: login_fade_up 0.8s cubic-bezier(0.2, 0.8, 0.2, 1) 0.1s both !important; }
#login_container .anim_delay_3 { animation: login_fade_up 0.8s cubic-bezier(0.2, 0.8, 0.2, 1) 0.2s both !important; }

/* Header */
#login_container .login_logo_area {
    text-align: center !important;
    margin-bottom: 40px !important;
}

#login_container .login_brand_logo {
    height: 120px !important;
    width: auto !important;
    object-fit: contain !important;
    margin-bottom: 30px !important;
}

#login_container .login_brand_title {
    font-size: 26px !important;
    font-weight: 800 !important;
    color: #1e293b !important;
    margin: 0 !important;
    letter-spacing: -0.5px !important;
}

#login_container .login_brand_desc {
    font-size: 14px !important;
    color: #64748b !important;
    margin-top: 10px !important;
    font-weight: 500 !important;
}

/* Form */
#login_container .login_input_row {
    margin-bottom: 20px !important;
    width: 100% !important;
}

#login_container .login_field_label {
    display: block !important;
    font-size: 13px !important;
    font-weight: 700 !important;
    color: #334155 !important;
    margin-bottom: 8px !important;
}

#login_container input.login_text_field {
    display: block !important;
    width: 100% !important;
    height: 52px !important;
    padding: 0 16px !important;
    border-radius: 8px !important;
    background-color: #fff !important;
    border: 1px solid #e2e8f0 !important;
    font-size: 15px !important;
    color: #1e293b !important;
    outline: none !important;
}

#login_container input.login_text_field:focus {
    border-color: #0BAB8B !important;
    box-shadow: 0 0 0 3px rgba(11, 171, 139, 0.1) !important;
}

#login_container .login_option_row {
    margin-bottom: 30px !important;
    display: flex !important;
    align-items: center !important;
}

#login_container label.login_remember_me {
    display: flex !important;
    align-items: center !important;
    cursor: pointer !important;
    font-size: 14px !important;
    color: #475569 !important;
}

#login_container input.login_checkbox {
    width: 18px !important;
    height: 18px !important;
    margin: 0 10px 0 0 !important;
    accent-color: #0BAB8B !important;
    cursor: pointer !important;
}

#login_container button.login_submit_btn {
    width: 100% !important;
    height: 54px !important;
    background-color: #0BAB8B !important;
    color: #ffffff !important;
    font-size: 16px !important;
    font-weight: 700 !important;
    border: none !important;
    border-radius: 10px !important;
    cursor: pointer !important;
    padding: 0 !important;
    margin: 0 !important;
    transition: background-color 0.2s !important;
    box-shadow: none !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
}

#login_container button.login_submit_btn:hover {
    background-color: #099276 !important;
}

/*
   Right Panel
*/
#login_container .login_right_panel {
    flex: 5.5 !important;
    background-color: #0f172a !important;
    position: relative !important;
    display: flex !important;
    align-items: center !important;
    justify-content: flex-start !important;
    padding: 0 10% !important;
    overflow: hidden !important;
}

/* Decorative Circles */
#login_container .login_deco_circle {
    position: absolute !important;
    border-radius: 50% !important;
    pointer-events: none !important;
}

#login_container .circle_1 {
    width: 700px !important;
    height: 700px !important;
    background: rgba(11, 171, 139, 0.05) !important;
    top: -150px !important;
    right: -150px !important;
}

#login_container .circle_2 {
    width: 500px !important;
    height: 500px !important;
    background: rgba(59, 130, 246, 0.05) !important;
    bottom: -50px !important;
    left: -50px !important;
}

/* Branding Text */
#login_container .login_brand_content {
    position: relative !important;
    z-index: 2 !important;
    color: #fff !important;
    padding: 0 !important;
    max-width: 100% !important;
    animation: login_fade_up 1s cubic-bezier(0.2, 0.8, 0.2, 1) 0.2s both !important;
}

#login_container .login_tag {
    display: inline-block !important;
    font-size: 14px !important;
    font-weight: 700 !important;
    color: #0BAB8B !important;
    margin-bottom: 20px !important;
    text-transform: uppercase !important;
    letter-spacing: 1px !important;
}

#login_container .login_hero_title {
    font-size: 64px !important;
    font-weight: 800 !important;
    line-height: 1.2 !important;
    margin-bottom: 24px !important;
    color: #fff !important;
}

#login_container .login_hero_title span { color: #0BAB8B !important; }

#login_container .login_hero_text {
    font-size: 18px !important;
    color: #94a3b8 !important;
    line-height: 1.6 !important;
    opacity: 0.9 !important;
}

#login_container .login_copyright {
    position: absolute !important;
    bottom: 40px !important;
    left: 0 !important;
    width: 100% !important;
    text-align: center !important;
    color: rgba(255, 255, 255, 0.3) !important;
    font-size: 12px !important;
}

.login_hide_elem { display: none !important; }

/* Responsive */
@media (max-width: 1200px) {
    #login_container .login_right_panel { display: none !important; }
    #login_container .login_left_panel { flex: 1 !important; background-color: #f1f5f9 !important; }
    #login_container .login_card { padding: 40px !important; background: #fff !important; border-radius: 16px !important; }
}

@media (min-width: 1200px) and (max-width: 1600px) {
    #login_container .login_hero_title { font-size: 56px !important; }
    #login_container .login_right_panel { padding: 0 8% !important; }
}

/* ==========================================================================
   TOTP 2FA 인증 영역
   ========================================================================== */
#login_container .totp_header {
    text-align: center !important;
    margin-bottom: 20px !important;
}

#login_container .totp_icon {
    font-size: 32px !important;
    color: #0BAB8B !important;
    margin-bottom: 12px !important;
    display: block !important;
}

#login_container .totp_title {
    font-size: 18px !important;
    font-weight: 700 !important;
    color: #222 !important;
    margin: 0 !important;
}

#login_container button.login_cancel_btn {
    width: 100% !important;
    height: 54px !important;
    margin: 0 !important;
    margin-top: 12px !important;
    padding: 0 !important;
    background-color: #fff !important;
    color: #374151 !important;
    font-size: 16px !important;
    font-weight: 700 !important;
    border: 1px solid #d1d5db !important;
    border-radius: 10px !important;
    cursor: pointer !important;
    box-shadow: none !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    transition: background-color 0.2s !important;
}

#login_container button.login_cancel_btn:hover {
    background-color: #f3f4f6 !important;
}
