@charset "utf-8";

/* ============================================================
   로그인 모달 (Integrated와 동일 - .loginWrap, #pop_dim은 common.css)
   ============================================================ */
.loginWrap {
	display: none; /* 초기 숨김 처리 */
	position: absolute; left: 50%; top: 50%; z-index: 3770; transition: 0.3s; transform: translate(-50%, -50%);
	max-width: 900px; min-width: 300px; max-height: calc(100vh - 60px); min-height: 200px; border-radius: 17px;
	background: rgba(255, 255, 255, 0.97); padding: 40px 40px 40px; box-sizing: border-box;
	backdrop-filter: blur(17px); -webkit-backdrop-filter: blur(20px);
	border: 1px solid rgba(255, 255, 255, 0.3);
	box-shadow:
		1px 1px 17px rgba(0, 110, 219, 0.3),
		inset 0 1px 0 rgba(255, 255, 255, 0.5),
		inset 0 -1px 0 rgba(255, 255, 255, 0.1),
		inset 0 0 60px 30px rgba(255, 255, 255, 3);
}
.loginWrap .loginClose {
	position: absolute; right: -10px; top: -10px; background: #1e429b;
	width: 37px; height: 37px; line-height: 37px; border-radius: 37px; text-align: center;
	display: flex; align-items: center; justify-content: center;
	border: none; padding: 0; cursor: pointer;
	font-size: 24px; font-weight: 300; color: #fff;
}
.loginWrap .loginClose:hover { color: rgba(255,255,255,0.9); }
.loginWrap .loginClose img {
	display: block;
	width: 17px;
	height: 17px;
}

.loginWrap .logo { width: 290px; margin: 0px auto 0px; }
.loginWrap .logo span { display: block; text-align: center; font-size: 27px; font-weight: bold; color: #1e429b; margin-top: 20px; }
.loginWrap .logo img { width: 100%; }

.loginWrap .loginCont {
	width: 100%; height: 100%;
}
.loginWrap .loginCont .loginBtn {
	width: 100%; border: 1px solid #4379ff;
	border-radius: 45px; font-size: 0;
}
.loginWrap .loginCont .loginBtn li {
	display: inline-block; width: calc(55% - 2px); margin: 0 -5%;
	cursor: pointer; line-height: 45px; color: #fff; text-align: center; border-radius: 45px;
	font-size: 14px; font-weight: bold;
}
.loginWrap .loginCont .loginBtn li.on { background: #1e429b; }
.loginWrap .loginCont .loginBtn li:first-child.on { border-right: 1px solid #4379ff; }
.loginWrap .loginCont .loginBtn li:last-child.on { border-left: 1px solid #4379ff; }

.loginWrap .loginCont .loginInput { margin: 10px 0 0; }
.loginWrap .loginCont .loginInput li { line-height: 0; font-size: 0; }
.loginWrap .loginCont .loginInput li label { font-size: 0; text-indent: -9999px; }
.loginWrap .loginCont .loginInput li .loginInputCont {
	width: 100%; line-height: 40px; font-size: 15px;
	padding: 0 0 0 10px; box-sizing: border-box;
	border: 1px solid #1e429b; border-radius: 7px; outline: none;
}

.loginWrap .loginCont .loginInput li:last-child {
	display: flex;
	align-items: center;
	justify-content: space-between;
	padding: 0 0 0 7px;
	box-sizing: border-box;
	line-height: normal;
}
.loginWrap .loginCont .loginInput li:last-child label { font-size: 13px; color: #333; text-indent: 0; }

.loginWrap .loginCont .loginInput li:last-child .idPsdSearch {
	position: static;
	letter-spacing: -0.7px;
	font-size: 13px; padding: 0 5px; color: #333; line-height: 22px; border-radius: 7px;
}

.loginWrap .loginCont .loginClearBtn { width: 100%; height: 45px; font-size: 16px; font-weight: bold; color: #fff; background: #1e429b; margin-top: 10px; border: 1px solid #4379ff; border-radius: 7px; }
.loginWrap .loginCont .loginPsdClearBtn { line-height: 37px; background: none; font-size: 14px; color: #333; }

/* ============================================================
   개인정보 동의 UI (/subscribe/consent 전용 페이지·레이어 공통)
   ============================================================ */
.subscribe-consent-overlay {
	position: fixed;
	top: 0;
	left: 0;
	right: 0;
	bottom: 0;
	background: transparent;
	z-index: 10000;
	display: flex;
	align-items: center;
	justify-content: center;
	padding: 1rem;
	box-sizing: border-box;
}
.subscribe-consent-modal {
	position: relative;
	background: #fff;
	border-radius: 8px;
	max-width: 520px;
	width: 100%;
	max-height: 90vh;
	overflow-y: auto;
	padding: 1.5rem;
	box-sizing: border-box;
	box-shadow: 0 4px 20px rgba(0, 0, 0, 0.15);
}
.subscribe-consent-close {
	position: absolute;
	top: 0.75rem;
	right: 0.75rem;
	width: 32px;
	height: 32px;
	padding: 0;
	border: none;
	background: transparent;
	font-size: 1.5rem;
	line-height: 1;
	color: #666;
	cursor: pointer;
}
.subscribe-consent-close:hover { color: #333; }
.subscribe-consent-title {
	margin: 0 0 0.5rem;
	font-size: 1.1rem;
	font-weight: 600;
}
.subscribe-consent-desc {
	margin: 0 0 1rem;
	color: #555;
	font-size: 0.9rem;
}
.subscribe-consent-terms-title {
	margin: 0 0 0.5rem;
	font-size: 0.95rem;
	font-weight: 600;
}
.subscribe-consent-textarea {
	width: 100%;
	min-height: 160px;
	padding: 0.75rem;
	border: 1px solid #ddd;
	border-radius: 4px;
	font-size: 0.85rem;
	resize: vertical;
	box-sizing: border-box;
}
.subscribe-consent-error {
	color: #c00;
	margin: 0.5rem 0;
	font-size: 0.9rem;
}
.subscribe-consent-check-wrap {
	display: block;
	margin: 1rem 0;
	font-size: 0.95rem;
}
.subscribe-consent-check-wrap input {
	margin-right: 0.5rem;
	min-width: 18px;
	min-height: 18px;
}
.subscribe-consent-actions { margin-top: 1rem; }
.subscribe-consent-btn {
	width: 100%;
	padding: 12px 16px;
	background: #2563eb;
	color: #fff;
	border: none;
	border-radius: 6px;
	font-size: 1rem;
	cursor: pointer;
}
.subscribe-consent-btn:hover { background: #1d4ed8; }
@media (max-width: 480px) {
	.subscribe-consent-modal { padding: 1rem; }
	.subscribe-consent-title { font-size: 1rem; }
}

/* 260417 kakim 추가: 공사직원 로그인 토글 (Integrated common.css 이식) */
.loginWrap .toggle {
	display: flex;
	align-items: center;
	justify-content: flex-end;
	gap: 6px;
	margin: 4px 4px 14px;
	cursor: pointer;
}
.loginWrap .toggle .input { display: none; }
.loginWrap .toggle .label {
	position: relative;
	width: 38px;
	height: 18px;
	background-color: #e0e0e0;
	border-radius: 20px;
	transition: background-color 0.3s ease;
	cursor: pointer;
}
.loginWrap .toggle .button {
	position: absolute;
	top: 3px;
	left: 3px;
	width: 12px;
	height: 12px;
	background-color: white;
	border-radius: 50%;
	box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1);
	transition: transform 0.3s ease;
}
.loginWrap .toggle .txt {
	font-size: 14px;
	letter-spacing: -1px;
	color: #202002;
	user-select: none;
	transition: color 0.3s;
}
.loginWrap .toggle .input:checked + .label { background-color: #007bff; }
.loginWrap .toggle .input:checked + .label .button { transform: translateX(20px); }
.loginWrap .toggle .input:checked ~ .txt { color: #333; font-weight: 600; }
