/* Signup 공통 스타일 */
.signup-header {
    text-align: center;
    margin-bottom: 40px;
}

.signup-header h1 {
    font-size: 28px;
    font-weight: 500;
    color: #333;
    margin-bottom: 30px;
}

.signup-header .sub-text {
    font-size: 14px;
    color: #999;
    margin-top: -18px;
}

.step-indicator {
    display: flex;
    justify-content: center;
    align-items: center;
    margin-bottom: 50px;
}

.step {
    display: flex;
    align-items: center;
    font-size: 14px;
    color: #999;
}

.step.active {
    color: #333;
    font-weight: 500;
}

.step.completed {
    color: #333;
}

.step-number {
    display: inline-block;
    width: 24px;
    height: 24px;
    line-height: 24px;
    text-align: center;
    border-radius: 50%;
    background-color: #e0e0e0;
    color: #999;
    margin-right: 8px;
    font-size: 12px;
}

.step.active .step-number {
    background-color: #333;
    color: #fff;
}

.step.completed .step-number {
    background-color: #333;
    color: #fff;
}

.step-divider {
    width: 100px;
    height: 1px;
    background-color: #e0e0e0;
    margin: 0 20px;
}

.step.completed + .step-divider {
    background-color: #333;
}

.button-group {
    display: flex;
    justify-content: center;
    gap: 10px;
    margin-top: 40px;
}

/* SSO 간편가입 폼 — 기본정보/약관 동의 섹션
 *
 * 이 파일은 step1~step3 이 함께 로드하므로, 아래 규칙을 스코프 없이 두면
 * 같은 클래스명(.form-container/.form-table)을 쓰는 step2 까지 덮어쓴다.
 * 실제로 .form-container{max-width:560px} 와 .form-table input{max-width:320px} 가
 * step2 의 폼 폭과 입력창을 잘라먹고 있었다. 따라서 SSO 전용임을 셀렉터로 못박는다.
 * 사용하려면 폼 최상위 래퍼에 sso-form 을 함께 준다 → <div class="form-container sso-form"> */
.form-container.sso-form {
    max-width: 560px;
    margin: 0 auto;
}

.sso-form .form-section {
    margin-bottom: 40px;
}

.sso-form .form-section-title {
    font-size: 16px;
    font-weight: 500;
    color: #333;
    padding-bottom: 12px;
    margin-bottom: 20px;
    border-bottom: 1px solid #ddd;
}

.sso-form .form-table {
    width: 100%;
    border-collapse: collapse;
}

.sso-form .form-table th {
    width: 140px;
    padding: 14px 0;
    text-align: left;
    font-size: 14px;
    font-weight: 500;
    color: #333;
    vertical-align: top;
}

.sso-form .form-table td {
    padding: 10px 0;
}

.sso-form .form-table input[type="text"],
.sso-form .form-table input[type="email"],
.sso-form .form-table input[type="tel"] {
    width: 100%;
    max-width: 320px;
    padding: 12px 15px;
    border: 1px solid #ddd;
    border-radius: 4px;
    font-size: 14px;
}

.sso-form .form-table input[readonly] {
    background-color: #f5f5f5;
    color: #666;
    cursor: not-allowed;
}

.sso-form .required-icon {
    color: #ff4444;
    margin-right: 3px;
}

.sso-form .agree-checkbox {
    display: flex;
    align-items: center;
    gap: 8px;
    margin-bottom: 12px;
    font-size: 14px;
    color: #333;
}

.sso-form .agree-checkbox input[type="checkbox"] {
    width: 16px;
    height: 16px;
    cursor: pointer;
}

.sso-form .agree-checkbox label {
    cursor: pointer;
}

.sso-form .input-group {
    display: flex;
    gap: 8px;
}

.sso-form .input-group input {
    flex: 1;
}

.sso-form .btn-check {
    padding: 0 16px;
    border: 1px solid #333;
    background: #fff;
    color: #333;
    border-radius: 4px;
    font-size: 13px;
    white-space: nowrap;
    cursor: pointer;
}

.sso-form .btn-check:hover {
    background: #333;
    color: #fff;
}

/* 중복확인/SMS인증 결과 메시지 색상 — signup/step2.css와 동일한 배색으로 통일 */
.sso-form .verification-success {
    color: #28a745;
}

.sso-form .verification-error {
    color: #ff4444;
}

@media (max-width: 768px) {
    /* SSO 전용 — step2 의 모바일 레이아웃은 signup/step2.css 가 따로 정의한다 */
    .sso-form .form-table,
    .sso-form .form-table tbody,
    .sso-form .form-table tr,
    .sso-form .form-table th,
    .sso-form .form-table td {
        display: block;
        width: 100%;
    }

    .sso-form .form-table th {
        padding-bottom: 6px;
    }

    .sso-form .form-table td {
        padding-top: 0;
        padding-bottom: 4px;
    }

    .sso-form .form-table input[type="text"],
    .sso-form .form-table input[type="email"],
    .sso-form .form-table input[type="tel"] {
        max-width: none;
    }

    .signup-header h1 {
        font-size: 24px;
    }
    
    .step-indicator {
        flex-wrap: wrap;
        gap: 10px;
        margin-bottom: 30px;
    }
    
    .step {
        font-size: 12px;
    }
    
    .step-number {
        width: 20px;
        height: 20px;
        line-height: 20px;
        font-size: 11px;
    }
    
    .step-divider {
        width: 50px;
        margin: 0 10px;
    }
}

@media (max-width: 480px) {
    .signup-header h1 {
        font-size: 20px;
    }
    
    .step-indicator {
        flex-direction: column;
        gap: 15px;
    }
    
    .step-divider {
        width: 1px;
        height: 30px;
        margin: 0;
    }
    
    .button-group {
        flex-direction: column;
    }
    
    .button-group .btn {
        width: 100%;
    }
}
