﻿@font-face {
    font-family: 'Pretendard';
    src: url('/fonts/Pretendard-Regular.woff2') format('woff2'), url('/fonts/Pretendard-Regular.woff') format('woff');
    font-weight: normal;
    font-style: normal;
}

/* 전체 기본 설정 */
* {
    margin: 0;
    padding: 0;
    box-sizing: border-box;
    font-family: 'Pretendard', -apple-system, BlinkMacSystemFont, system-ui, sans-serif;
    overflow-x: hidden;
}

body {
    margin: 0;
    padding: 0;
    height: 100vh;
    /*min-width: 850px;*/
    display: flex;
    align-items: center;
    justify-content: center;
    background: radial-gradient(circle at center, #202020 0%, #000000 100%);
    color: #fff;
}

/* 카드 컨테이너 */
.login-container {
    display: flex;
    flex-direction: column;
    width: 450px;
    min-width: 450px;
    height: auto;
    border-radius: 20px;
    padding: 0;
    overflow: hidden;
    /* 살짝 유리 느낌 */
    background: rgba(8, 8, 10, 0.9);
    border: 1px solid rgba(255, 255, 255, 0.06);
    box-shadow: 0 18px 45px rgba(0, 0, 0, 0.85), 0 0 0 1px rgba(255, 255, 255, 0.02);
    backdrop-filter: blur(18px);
}

/* 상단 이미지 영역 */
.login-image {
    width: 100%;
    min-width: auto;
    height: 200px;
    background: linear-gradient(135deg, rgba(15, 20, 28, 0.95), rgba(10, 10, 14, 0.98));
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 20px 30px;
    border-bottom: 1px solid rgba(255, 255, 255, 0.06);
}

    .login-image img {
        width: auto;
        height: 60%;
        object-fit: contain;
        filter: drop-shadow(0 6px 16px rgba(0, 0, 0, 0.8));
    }

/* 폼 영역 */
.login-form {
    flex: 1;
    padding: 42px 52px 32px 52px;
    text-align: center;
    background: transparent;
}

.title {
    font-size: 24px;
    font-weight: 600;
    color: #f5f5f5;
    margin-bottom: 26px;
}

/* 폼 요소 */
.form-group {
    margin-bottom: 16px;
    text-align: left;
    position: relative;
}

.form-label {
    display: block;
    font-weight: 500;
    color: #d0d3dd;
    margin-bottom: 6px;
    font-size: 13px;
    letter-spacing: 0.01em;
}

.form-control {
    width: 100%;
    padding: 9px 10px;
    border-radius: 10px;
    font-size: 14px;
    border: 1px solid rgba(255, 255, 255, 0.06);
    background: rgba(20, 20, 24, 0.95);
    color: #f5f5f5;
    transition: border-color 0.2s ease, background-color 0.2s ease, box-shadow 0.2s ease;
}

    .form-control::placeholder {
        color: #6f7280;
    }

    .form-control:focus {
        outline: none;
        border-color: #4f8cff;
        background-color: #121218;
        box-shadow: 0 0 0 1px rgba(79, 140, 255, 0.45);
    }

    .form-control.input-validation-error {
        border-color: #ff4b6b;
        box-shadow: 0 0 0 1px rgba(255, 75, 107, 0.5);
    }

/* 필드 에러 */
.field-validation-error {
    color: #ff9aa6;
    font-size: 11px;
    position: absolute;
    right: 0;
    background: rgba(26, 8, 11, 0.95);
    padding: 2px 6px;
    border-radius: 4px;
    border: 1px solid rgba(255, 75, 107, 0.55);
    display: none;
}

    .field-validation-error:not(:empty) {
        display: inline-block;
    }

/* 아래쪽 체크박스 + 링크 */
.form-bottom {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin: 14px 0 6px;
    gap: 10px;
    justify-content: flex-end;
}

.form-check {
    display: flex;
    align-items: center;
    text-align: left;
}

.form-check-input {
    margin-right: 7px;
    margin-top: 0;
}

.form-check-label {
    color: #9ea2b3;
    font-size: 12px;
}

.forgot-links {
    display: flex;
    gap: 10px;
    justify-content: flex-end;
}

    .forgot-links a {
        color: #a4b5ff;
        text-decoration: none;
        font-size: 12px;
        opacity: 0.9;
    }

        .forgot-links a:hover {
            text-decoration: underline;
            opacity: 1;
        }

/* 버튼 */
.btn-container {
    display: flex;
    gap: 10px;
    margin: 26px 0 18px 0;
}

.btn {
    flex: 1;
    padding: 11px 12px;
    border-radius: 9px;
    border: none;
    font-size: 14px;
    cursor: pointer;
    transition: all 0.18s ease;
    font-weight: 500;
}

/* 좌측: 기본 로그인 버튼 (살짝 어두운 톤) */
.btn-login {
    background: rgba(32, 34, 45, 0.95);
    color: #f5f5f5;
    border: 1px solid rgba(255, 255, 255, 0.06);
}

    .btn-login:hover {
        background: rgba(45, 49, 63, 0.98);
    }

/* 우측: 가입 버튼 (포인트 블루) */
.btn-signup {
    background: linear-gradient(135deg, #3f7cff 0%, #7a5cff 100%);
    color: #fff;
    box-shadow: 0 8px 20px rgba(80, 120, 255, 0.45);
    border: none;
}

    .btn-signup:hover {
        box-shadow: 0 10px 26px rgba(80, 120, 255, 0.6);
    }

/* 한 개만 쓰는 로그인 버튼 버전 */
.btn-signin-new {
    width: 100%;
    padding: 12px;
    border-radius: 10px;
    border: none;
    font-size: 15px;
    cursor: pointer;
    transition: background 0.28s ease;
    background: linear-gradient(135deg, #3f7cff 0%, #7a5cff 100%);
    color: white;
    font-weight: 500;
}

    .btn-signin-new:hover {
        background: linear-gradient(135deg, #5a8dff 0%, #9a7cff 100%);
    }

/* 회원가입 텍스트 */
.signup-text {
    text-align: center;
    margin-top: 16px;
    font-size: 13px;
    color: #9ea2b3;
}

.signup-link {
    color: #c2d0ff;
    text-decoration: none;
    font-weight: 500;
}

    .signup-link:hover {
        text-decoration: underline;
    }

/* 구분선 */
.divider {
    border: none;
    height: 1px;
    background: linear-gradient( to right, transparent, rgba(255, 255, 255, 0.12), transparent );
    margin: 22px 0 18px;
}

/* 소셜 로그인 */
.social-login {
    margin-top: 18px;
    display: flex;
    justify-content: center;
    gap: 18px;
    overflow: visible;
}

.social-btn {
    width: 40px;
    height: 40px;
    border-radius: 50%;
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: center;
    border: none;
    background: rgba(26, 28, 36, 0.95);
    box-shadow: 0 6px 14px rgba(0, 0, 0, 0.65);
    transition: transform 0.18s ease, box-shadow 0.18s ease, background-color 0.18s ease;
}

    .social-btn:hover {
        transform: translateY(-2px);
        background: rgba(35, 38, 48, 1);
        box-shadow: 0 10px 22px rgba(0, 0, 0, 0.8);
    }

    .social-btn img {
        height: 16px;
        width: auto;
        object-fit: contain;
    }

/* 브랜드 컬러는 유지하지만 너무 튀지 않게 살짝 톤다운 */
.btn-naver {
    background: #03C75A;
    color: white;
}

    .btn-naver:hover {
        background: #02b252;
    }

.btn-kakao {
    background: #FEE500;
    color: #191919;
}

    .btn-kakao:hover {
        background: #f4d900;
    }

/* 메시지 박스 */
.error-message {
    background: rgba(42, 16, 20, 0.98);
    border: 1px solid rgba(255, 75, 107, 0.7);
    color: #ffb9c0;
    padding: 10px 11px;
    border-radius: 10px;
    margin-bottom: 18px;
    font-size: 13px;
    text-align: left;
}

.success-message {
    background: rgba(9, 32, 21, 0.98);
    border: 1px solid rgba(72, 192, 116, 0.7);
    color: #b1f3cc;
    padding: 10px 11px;
    border-radius: 10px;
    margin-bottom: 18px;
    font-size: 13px;
    text-align: left;
}

/* 하단 카피라이트 */
.copyright {
    color: #6f7280;
    font-size: 11px;
    text-align: center;
    padding: 10px 0 14px;
    letter-spacing: 0.03em;
}

@media (max-width: 500px) {
    .login-container {
        width: 350px;
        min-width: 350px;
    }

    .login-form {
        padding: 30px 40px 30px 40px;
    }

    .login-image {
        height: 150px;
    }
}