@charset "utf-8";

/* 로그인 */
.wrap--login {display: flex; justify-content: center; align-items: center; padding: 50px 0;}
.auth-logo {margin-bottom: 30px; padding: 0 20px;}
.auth-text {margin-bottom: 48px; padding: 0 20px;}
.auth-text .auth-title {font-size: 24px; font-weight: 700; line-height: 1.3; color: #222; margin-bottom: 16px;}
.auth-text .auth-desc {font-size: 14px; font-weight: 500; line-height: 1.3; color: #666;}

.auth-form .form-group:not(:last-child) {margin-bottom: 32px;}
.auth-form--login .form-group:not(:last-child) {margin-bottom: 12px;}

.auth-links {display: flex; justify-content: center; margin-top: 30px;}
.auth-links a {position: relative; font-size: 14px; font-weight: 600; line-height: 1.3; color: #6B6B6B; text-decoration: none; padding: 0 12px;}
.auth-links a:hover {text-decoration: underline; text-underline-offset: 3px;}
.auth-links a:after {content: '|'; color: #DADADA; position: absolute; right: -2px; top: 50%; transform: translateY(-50%);}
.auth-links a:last-child:after {display: none;}

/* 회원가입 */
.auth form {display: flex; flex-direction: column; min-height: calc(100dvh - 80px);}
.auth-form .form-content {flex: 1;}
.auth-form .input-wrap {position: relative;}
.auth-form .input-wrap:not(:first-child) {margin-top: 8px;}
.auth-form .label {display: block; font-size: 14px; font-weight: 600; line-height: 1.3; margin-bottom: 10px; color: #333;}
.auth-form .label .required {color: #F75640;}
.auth-form .input {padding-right: 90px;}
.auth-form--signup .input::placeholder {color: #999;}

.auth-form .btn-small {position: absolute; right: 10px; top: 50%; transform: translateY(-50%); z-index: 5;}
.auth-form .error-msg {display: flex; align-items: center; gap: 8px; font-size: 14px; line-height: 1.28; color: #F2564B; letter-spacing: -0.28px; margin-top: 8px;}
.auth-form .error-msg .icon-error {display: flex; align-items: center; justify-content: center; width: 18px; height: 18px; background: #F2564B; border-radius: 50%; flex-shrink: 0;}
.auth-form .error-msg .error-text {padding-top: 3px;}
.auth-form .btn-toggle-pw {position: absolute; right: 20px; top: 50%; transform: translateY(-50%); background: none; border: 0; width: 24px; height: 24px; cursor: pointer; z-index: 5;}
.auth-form .btn-toggle-pw.is-active svg {opacity: 0.5;}

.auth .btn-area {position: sticky; bottom: 0; background: #fff; padding-top: 20px; padding-bottom: calc(20px + env(safe-area-inset-bottom)); z-index: 10;}

/* 본인인증 */
.auth-content {display: flex; flex-direction: column; min-height: calc(100dvh - 80px);}
.auth-body {flex: 1; display: flex; flex-direction: column; justify-content: center;}

/* 디지털 안전 서약 */
.auth-pledge .auth-body {display: block;}
.document {display: flex; flex-direction: column; gap: 45px;}
.document p {font-size: 16px; line-height: 1.5; letter-spacing: -0.32px; color: #1B1C1E;}
.document-sections {display: flex; flex-direction: column; gap: 16px;}
.document-section .document-title {display: block; font-weight: 600; margin-bottom: 8px;}
.document-section .document-desc:not(:last-child) {margin-bottom: 10px;}
.document-notice {font-weight: 700;}
.document-list {display: flex; flex-direction: column; gap: 5px;}
.document-list li {font-size: 16px; line-height: 1.5; letter-spacing: -0.32px; color: #1B1C1E;}
.document-list li .num {display: inline-block;  width: 22px;  font-weight: 600;}
.document-sublist {margin: 10px 0;}

/* 회원가입 약관 동의 */
.agree-terms {margin-top: 8px;}
.agree-item {display: flex; align-items: center; gap: 8px; cursor: pointer;}
.agree-item input {display: none;}
.agree-check {flex-shrink: 0; line-height: 0;}
.agree-check svg circle {fill: #ccc; transition: fill .2s;}
.agree-item input:checked + .agree-check svg circle {fill: #00AEEF;}
.agree-label {font-size: 14px; font-weight: 500; line-height: 1.3; color: #444;}
.agree-label em {font-style: normal; color: #F2564B;}
.agree-all {padding-bottom: 12px; margin-bottom: 12px; border-bottom: 1px solid #eee;}
.agree-all .agree-label {font-weight: 600; color: #1B1C1E;}
.agree-list {display: flex; flex-direction: column; gap: 12px;}
.agree-row {display: flex; align-items: center; justify-content: space-between; gap: 8px;}
.agree-view {flex-shrink: 0; background: none; border: 0; padding: 0; font-size: 12px; color: #999; text-decoration: underline; text-underline-offset: 2px; cursor: pointer;}

/* 약관 본문 모달(스크롤) — 마이페이지 약관 화면 본문 재사용 */
.modal--terms {max-width: 340px; width: calc(100% - 40px); padding: 24px 16px 16px; text-align: left;}
.modal--terms .modal-title {text-align: center; margin-bottom: 16px;}
.modal--terms .modal-scroll {max-height: 55vh; overflow-y: auto; -webkit-overflow-scrolling: touch;}
.modal--terms .modal-footer {margin-top: 16px;}
.modal--terms .document {gap: 20px;}
.modal--terms .document p,
.modal--terms .document-list li {font-size: 13px; line-height: 1.5;}