			/* 팝업 오버레이 */
			.popup-overlay {
				display: none;
				position: fixed;
				top: 0;
				left: 0;
				width: 100%;
				height: 100%;
				background-color: rgba(0, 0, 0, 0.5);
				z-index: 9998;
				justify-content: center;
				align-items: center;
			}

			.popup-overlay.active {
				display: flex;
			}

			/* 팝업 컨테이너 */
			.popup-container {
				position: relative;
				background: white;
				border-radius: 15px;
				max-width: 460px;
				width: 90%;
				max-height: 90vh;
				overflow: hidden;
				box-shadow: 0 4px 20px rgba(0, 0, 0, 0.15);
				display: flex;
				flex-direction: column;
			}

			/* 팝업 헤더 */
			.popup-header {
				flex-shrink: 0;
				background: white;
				padding: 20px 20px 0;
				z-index: 10;
				border-bottom: 1px solid #f0f0f0;
			}

			.popup-header-row {
				display: flex;
				justify-content: space-between;
				align-items: center;
				margin-bottom: 15px;
			}

			.popup-close {
				background: none;
				border: none;
				font-size: 24px;
				color: #999;
				cursor: pointer;
				padding: 0;
				width: 30px;
				height: 30px;
				display: flex;
				align-items: center;
				justify-content: center;
			}

			.popup-close:hover {
				color: #000;
			}

			/* 팝업 컨텐츠 */
			.popup-content {
				padding: 20px;
				overflow-y: auto;
				flex: 1;
			}

			.popup-container .login-title,
			.popup-container h1 {
				font-size: 24px;
				font-weight: 700;
				margin-bottom: 12px;
				text-align: center;
				color: #000;
				letter-spacing: -0.5px;
			}

			.popup-container .login-subtitle {
				font-size: 13px;
				color: #999;
				text-align: center;
				margin-bottom: 35px;
				font-weight: 400;
			}

			.popup-container .tab-container,
			.popup-container .login-methods {
				display: flex;
				width: 100%;
				background-color: #f5f5f5;
				padding: 10px;
				margin-bottom: 25px;
				border-radius: 6px;
				gap: 0;
			}

			.popup-container .tab,
			.popup-container .login-method {
				flex: 1;
				text-align: center;
				padding: 12px 0;
				cursor: pointer;
				font-size: 14px;
				font-weight: 500;
				border: none;
				transition: all 0.2s;
				border-radius: 4px;
				background: transparent;
				color: #999;
			}

			.popup-container .tab.active,
			.popup-container .login-method.active-method {
				background-color: #fff;
				color: #000;
				box-shadow: 0 1px 3px rgba(0, 0, 0, 0.08);
				font-weight: 600;
			}

			.popup-container .input-group {
				margin-bottom: 18px;
				width: 100%;
				flex-direction: column;
			}

			.popup-container .input-label,
			.popup-container .form-label {
				display: block;
				font-size: 13px;
				font-weight: 500;
				color: #000;
				margin-bottom: 8px;
			}

			.popup-container .required-mark {
				color: #ff0000;
				margin-left: 2px;
			}

			.popup-container .input-field,
			.popup-container .form-input {
				width: 100%;
				padding: 14px 10px;
				border: 1px solid #e0e0e0;
				border-radius: 4px;
				box-sizing: border-box;
				font-size: 14px;
				transition: border-color 0.2s;
				background-color: #fff;
			}

			.popup-container .input-field:focus,
			.popup-container .form-input:focus {
				outline: none;
				border-color: #000;
			}

			.popup-container .input-field::placeholder,
			.popup-container .form-input::placeholder {
				color: #d0d0d0;
			}

			.popup-container .checkbox-row {
				display: flex;
				align-items: center;
				justify-content: space-between;
				margin-bottom: 20px;
				margin-top: 5px;
			}

			.popup-container .checkbox-wrapper {
				display: flex;
				align-items: center;
			}

			.popup-container .checkbox-wrapper input[type="checkbox"] {
				appearance: none;
				-webkit-appearance: none;
				width: 18px;
				height: 18px;
				border: 1px solid #d0d0d0;
				border-radius: 2px;
				margin-right: 8px;
				cursor: pointer;
				position: relative;
				background-color: #fff;
			}

			.popup-container .checkbox-wrapper input[type="checkbox"]:checked::after {
				content: '';
				position: absolute;
				left: 5px;
				top: 2px;
				width: 5px;
				height: 9px;
				border: solid #000;
				border-width: 0 2px 2px 0;
				transform: rotate(45deg);
			}

			.popup-container .checkbox-wrapper label {
				font-size: 13px;
				color: #666;
				cursor: pointer;
				user-select: none;
			}

			.popup-container .help-links-inline {
				display: flex;
				align-items: center;
				gap: 6px;
				font-size: 13px;
			}

			.popup-container .help-links-inline .help-link {
				color: #666;
				cursor: pointer;
				text-decoration: none;
				transition: color 0.2s;
			}

			.popup-container .help-links-inline .help-link:hover {
				color: #000;
			}

			.popup-container .help-links-inline .separator {
				color: #d0d0d0;
			}

			.popup-container .login-button,
			.popup-container .signup-button,
			.popup-container .submit-btn {
				width: 100%;
				height: 50px;
				padding: 0 16px;
				border-radius: 4px;
				font-size: 15px;
				font-weight: 600;
				cursor: pointer;
				border: none;
				transition: all 0.2s ease;
				text-decoration: none;
				display: flex;
				align-items: center;
				justify-content: center;
				text-align: center;
				margin-bottom: 10px;
				box-sizing: border-box;
			}

			.popup-container .login-button,
			.popup-container .submit-btn {
				background-color: #2b2b2b;
				color: white;
			}

			.popup-container .login-button:hover,
			.popup-container .submit-btn:hover {
				background-color: #000;
			}

			.popup-container .signup-button {
				background-color: white;
				color: #000;
				border: 1px solid #505050;
				margin-bottom: 35px;
			}

			.popup-container .signup-button:hover {
				background-color: #f5f5f5;
				border-color: #d0d0d0;
			}

			.popup-container .divider {
				width: 100%;
				display: flex;
				align-items: center;
				justify-content: center;
				margin: 10px 0 30px;
				position: relative;
			}

			.popup-container .divider::before {
				content: '';
				position: absolute;
				left: 0;
				right: 0;
				height: 1px;
				background: #e0e0e0;
			}

			.popup-container .divider span {
				background: white;
				padding: 0 12px;
				position: relative;
				z-index: 1;
				color: #999;
				font-size: 12px;
			}

			.popup-container .back-to-login {
				display: block;
				margin-top: 25px;
				color: #666;
				text-decoration: underline;
				font-size: 13px;
				cursor: pointer;
				text-align: center;
			}

			.popup-container .back-to-login:hover {
				color: #000;
			}

			.popup-container .hidden {
				display: none !important;
			}

			/* 회원가입 팝업 전용 스타일 */
			#signupPopup .type-login {
				display: flex;
				flex-direction: column;
				width: 100%;
				gap: 12px;
				margin-bottom: 30px;
			}

			#signupPopup .type-login .login-btn {
				background-color: #fff;
				color: #000;
				border: 1px solid #e0e0e0;
				height: 50px;
				padding: 0 16px;
				font-weight: 500;
				transition: all 0.2s ease;
				cursor: pointer;
				border-radius: 4px;
				font-size: 15px;
				display: flex;
				align-items: center;
				justify-content: center;
				width: 100%;
			}

			#signupPopup .type-login .login-btn:hover {
				background-color: #f5f5f5;
				border-color: #d0d0d0;
			}

			#signupPopup .type-login .login-btn:only-child {
				background-color: #2b2b2b;
				color: white;
				border: none;
			}

			#signupPopup .type-login .login-btn:only-child:hover {
				background-color: #000;
			}

			#signupPopup .btn-icon {
				margin-right: 15px;
				display: flex;
				align-items: center;
				justify-content: center;
				width: 24px;
				height: 24px;
			}

			#signupPopup .btn-text {
				flex: 1;
				text-align: center;
				margin-right: 24px;
			}

			#signupPopup .already-member {
				color: #666;
				font-size: 13px;
				margin-top: 30px;
				margin-left: -20px;
				margin-right: -20px;
				padding: 20px;
				padding-top: 20px;
				padding-bottom: 0;
				border-top: 1px solid #e0e0e0;
				width: calc(100% + 40px);
				display: flex;
				justify-content: space-between;
				align-items: center;
			}

			#signupPopup .already-member a {
				color: #000;
				text-decoration: underline;
				margin-left: 8px;
				font-weight: 500;
			}

			#signupPopup .already-member a:hover {
				color: #000;
			}

			#signupPopup .social-section {
				width: 100%;
			}

			#signupPopup .social-section:has(.social-login:empty) {
				display: none;
			}

			/* 회원가입 유형이 여러 개일 때 소셜 섹션 숨김 */
			#signupPopup #lpopup_loginPage .social-section {
				display: none;
			}

			/* 회원가입 유형이 1개일 때만 소셜 섹션 표시 */
			#signupPopup #lpopup_loginPage .type-login:has(.login-btn:only-child) ~ .social-section {
				display: block;
			}

			#signupPopup .signup-subtitle {
				font-size: 13px;
				color: #999;
				text-align: center;
				margin-bottom: 35px;
				font-weight: 400;
			}

			#signupPopup .info-box {
				border: 1px solid #e0e0e0;
				border-radius: 5px;
				padding: 20px;
				margin-bottom: 30px;
			}

			#signupPopup .info-title {
				font-weight: bold;
				margin-bottom: 10px;
			}

			#signupPopup .divider-line {
				width: 100%;
				height: 1px;
				background-color: #e0e0e0;
				margin: 15px 0;
			}

			#signupPopup .info-text {
				color: #666;
				font-size: 14px;
				line-height: 1.5;
				margin-bottom: 15px;
			}

			#signupPopup .link-row {
				margin: 15px 0;
			}

			#signupPopup .link-button {
				color: #666;
				text-decoration: none;
				font-size: 14px;
			}

			#signupPopup .link-row .link-button::after {
				content: "보기";
				color: #999;
				margin-left: 5px;
			}

			#signupPopup .form-title {
				font-size: 18px;
				font-weight: bold;
				margin: 30px 0 20px 0;
				padding-bottom: 10px;
				border-bottom: 1px solid #e0e0e0;
			}

			#signupPopup .form-group {
				margin-bottom: 18px;
				position: relative;
			}

			#signupPopup .form-label {
				display: block;
				margin-bottom: 8px;
				font-size: 13px;
				font-weight: 500;
				color: #000;
			}

			#signupPopup .required::after {
				content: " *";
				color: #ff0000;
				margin-left: 2px;
			}

			#signupPopup .form-input {
				width: 100%;
				height: fit-content;
				padding: 10px 16px;
				border: 1px solid #e0e0e0;
				border-radius: 4px;
				font-size: 13px;
				background-color: #fff;
				min-width: 0;
				box-sizing: border-box;
				transition: border-color 0.2s;
			}

			#signupPopup .form-input:focus {
				outline: none;
				border-color: #000;
			}

			#signupPopup .form-input::placeholder {
				color: #d0d0d0;
			}

			#signupPopup .email-input {
				width: 100%;
				max-width: 300px;
			}

			#signupPopup .select-group {
				display: flex;
				gap: 8px;
				align-items: center;
				flex-wrap: nowrap;
				width: 100%;
			}

			#signupPopup .email-input-group {
				display: flex;
				align-items: center;
				width: 100%;
				margin-bottom: 10px;
				gap: 8px;
				flex-wrap: nowrap;
			}

			#signupPopup .email-input {
				flex: 1;
				min-width: 0;
				border-radius: 5px;
			}

			#signupPopup .email-at {
				margin: 0;
				color: #666;
				font-weight: bold;
				flex: 0 0 auto;
				font-size: 14px;
			}

			#signupPopup .email-domain {
				flex: 1;
				min-width: 0;
				border-radius: 5px;
			}

			#signupPopup .domain-select {
				flex: 0 0 120px;
				padding: 10px 16px;
				border: 1px solid #e0e0e0;
				border-radius: 4px;
				font-size: 14px;
				background-color: #fff;
				appearance: menulist;
				cursor: pointer;
				transition: border-color 0.2s;
			}

			#signupPopup .domain-select:focus {
				outline: none;
				border-color: #000;
			}

			#signupPopup select.form-input {
				cursor: pointer;
				appearance: menulist;
				width: 100%;
				padding: 10px 16px;
			}

			#signupPopup textarea.form-input {
				min-height: 100px;
				resize: vertical;
				font-family: inherit;
			}

			#signupPopup .password-toggle {
				position: absolute;
				right: 14px;
				top: 50%;
				transform: translateY(-50%);
				cursor: pointer;
				color: #999;
				font-size: 18px;
				user-select: none;
			}

			#signupPopup .password-field {
				position: relative;
			}

			#signupPopup .checkbox-label {
				display: flex;
				align-items: center;
				font-size: 13px;
				color: #333;
				cursor: pointer;
			}

			#signupPopup .checkbox-custom {
				width: 18px;
				height: 18px;
				border: 1px solid #d0d0d0;
				border-radius: 2px;
				margin-right: 8px;
				display: inline-flex;
				align-items: center;
				justify-content: center;
				background-color: #ffffff;
				flex-shrink: 0;
			}

			#signupPopup input[type="checkbox"] {
				appearance: none;
				-webkit-appearance: none;
				margin: 0;
				width: 18px;
				height: 18px;
				border: 1px solid #d0d0d0;
				border-radius: 2px;
				background-color: #fff;
				cursor: pointer;
				position: relative;
			}

			#signupPopup input[type="checkbox"]:checked {
				background-color: #000;
				border-color: #000;
			}

			#signupPopup input[type="checkbox"]:checked::after {
				content: "✓";
				position: absolute;
				top: 50%;
				left: 50%;
				transform: translate(-50%, -50%);
				color: #fff;
				font-size: 12px;
				font-weight: bold;
			}

			#signupPopup input[type="checkbox"]:checked + .checkbox-custom {
				background-color: #000;
				border-color: #000;
			}

			#signupPopup input[type="checkbox"]:checked + .checkbox-custom::before {
				content: "✓";
				color: #fff;
				font-size: 12px;
				font-weight: bold;
			}

			#signupPopup input[type="radio"] {
				appearance: none;
				-webkit-appearance: none;
				width: 18px;
				height: 18px;
				border: 1px solid #d0d0d0;
				border-radius: 50%;
				margin: 0;
				margin-right: 8px;
				display: inline-flex;
				align-items: center;
				justify-content: center;
				background-color: #ffffff;
				cursor: pointer;
				flex-shrink: 0;
				position: relative;
				vertical-align: middle;
			}

			#signupPopup input[type="radio"]:checked {
				border-color: #000;
			}

			#signupPopup input[type="radio"]:checked::before {
				content: "";
				width: 10px;
				height: 10px;
				background-color: #000;
				border-radius: 50%;
				position: absolute;
			}

			#signupPopup .radio-label {
				display: inline-flex;
				align-items: center;
				font-size: 13px;
				color: #333;
				cursor: pointer;
			}

			#signupPopup .verification-options {
				display: flex;
				margin-top: 10px;
				gap: 20px;
			}

			#signupPopup .verification-option {
				display: flex;
				align-items: center;
			}

			#signupPopup .error-message {
				color: #FF4D4D;
				font-size: 13px;
				margin-top: 5px;
				display: none;
				align-items: center;
			}

			#signupPopup .error-icon {
				display: inline-block;
				width: 14px;
				height: 14px;
				margin-right: 6px;
				flex-shrink: 0;
			}

			#signupPopup .error-icon svg {
				width: 100%;
				height: 100%;
				display: block;
			}

			#signupPopup .submit-button {
				display: block;
				width: 100%;
				height: 50px;
				padding: 0 16px;
				background-color: #2b2b2b;
				color: white;
				border: none;
				border-radius: 4px;
				font-size: 15px;
				font-weight: 600;
				cursor: pointer;
				margin-top: 30px;
				transition: all 0.2s ease;
			}

			#signupPopup .submit-button:hover {
				background-color: #000;
			}

			#signupPopup .completion-page {
				display: none;
				flex-direction: column;
				align-items: center;
				text-align: center;
				max-width: 500px;
				width: 100%;
				margin: 5vh auto;
				padding: 30px 20px;
			}

			#signupPopup .completion-page.active {
				display: flex;
			}

			#signupPopup .completion-title {
				font-size: 22px;
				font-weight: bold;
				margin-bottom: 30px;
			}

			#signupPopup .check-icon-container {
				background-color: #000;
				width: 80px;
				height: 80px;
				border-radius: 6px;
				display: flex;
				align-items: center;
				justify-content: center;
				margin-bottom: 30px;
			}

			#signupPopup .check-icon {
				width: 40px;
				height: 40px;
				color: #fff;
			}

			#signupPopup .completion-message {
				font-size: 18px;
				line-height: 1.6;
				margin-bottom: 30px;
			}

			#signupPopup .completion-name {
				font-weight: bold;
			}

			#signupPopup .info-box-gray {
				background-color: #f0f0f0;
				padding: 20px;
				border-radius: 6px;
				width: 100%;
				margin-bottom: 30px;
				color: #666;
				font-size: 14px;
				line-height: 1.5;
				text-align: center;
			}

			#signupPopup .home-button {
				display: block;
				width: 100%;
				padding: 15px;
				background-color: #000;
				color: white;
				border: none;
				border-radius: 5px;
				font-size: 16px;
				cursor: pointer;
				margin-top: 10px;
				text-align: center;
				text-decoration: none;
			}

			/* 팝업 뒤로가기 버튼 */
			.popup-back-btn {
				background: none;
				border: none;
				cursor: pointer;
				padding: 5px;
				display: flex;
				align-items: center;
				justify-content: center;
				width: 30px;
				height: 30px;
				transition: opacity 0.2s;
				opacity: 1;
			}

			.popup-back-btn:hover:not(:disabled) {
				opacity: 0.7;
			}

			.popup-back-btn:disabled {
				opacity: 0.3;
				cursor: not-allowed;
			}

			.popup-back-btn svg {
				width: 24px;
				height: 24px;
				color: #000;
			}

			/* 팝업 닫기 버튼 */
			.popup-close {
				background: none;
				border: none;
				cursor: pointer;
				padding: 0;
				width: 30px;
				height: 30px;
				display: flex;
				align-items: center;
				justify-content: center;
			}

			.popup-close img {
				width: 24px;
				height: 24px;
			}

			/* 회원가입 단계 */
			.popup-signup-step {
				display: flex;
				flex-direction: column;
			}

			@media (max-width: 768px) {
				#signupPopup .email-input-group {
					flex-direction: column;
					align-items: stretch;
					gap: 15px;
				}

				#signupPopup .email-input {
					width: 100%;
					max-width: none;
				}

				#signupPopup .email-at {
					align-self: flex-start;
					margin: 0;
				}

				#signupPopup .domain-select,
				#signupPopup .email-domain {
					width: 100%;
					max-width: none;
					margin-top: 5px;
				}

				#signupPopup .verification-options {
					flex-direction: column;
					gap: 10px;
				}
			}

			/* 결과 페이지 스타일 */
			.popup-container .result-container {
				background: #f5f5f5;
				border-radius: 8px;
				padding: 30px;
				margin-top: 20px;
				display: none;
			}

			.popup-container .result-title {
				font-size: 18px;
				font-weight: bold;
				margin-bottom: 15px;
			}

			.popup-container .result-content {
				font-size: 14px;
				line-height: 1.6;
				color: #666;
				margin-bottom: 20px;
			}

			.popup-container .highlight {
				color: #000;
				font-weight: bold;
			}

			.popup-container .error-message,
			.popup-container .email-error-message {
				color: #ff0000;
				font-size: 12px;
				margin-top: 5px;
				display: none;
			}

			/* 반응형 */
			@media (max-width: 480px) {
				.popup-container {
					width: 95%;
					max-width: 95%;
				}

				.popup-container .login-title,
				.popup-container h1 {
					font-size: 22px;
				}

				.popup-container .tab,
				.popup-container .login-method {
					padding: 12px 0;
					font-size: 13px;
				}

				.popup-container .input-field,
				.popup-container .form-input {
					padding: 12px 10px;
				}

				.popup-container .login-button,
				.popup-container .signup-button,
				.popup-container .submit-btn {
					padding: 14px;
					font-size: 14px;
				}
			}
