/* =========================================================
   ACCOUNT COMMON
========================================================= */
.member-page{
	display:flex;
	flex-direction:column;
	justify-content:center;
}
.member-wrap {
    width: 100%;
    max-width: 420px;
    margin: 0 auto; 
    border-radius: 36px;
}
 
 
/* ========================================
   회원 탭
======================================== */

.member-tab {
    display: flex;
    width: 100%; 
    margin-bottom: 32px;   
	gap:10px;
}

.member-tab button {
	position:relative;
	border:0;
    flex: 1; 
    padding: 0;  
    height: 54px;
    color: var(--color-text-sub); 
    border-radius: 8px;
    font-weight: 650;
    cursor: pointer;
	line-height: 1;
	font-size: 17px;
	display:flex;
	align-items:center;
	justify-content:center;
    transition:
        background-color .2s ease,
        color .2s ease,
        border-color .2s ease;
}
 
.member-tab button::before {
    content: '';
    overflow: hidden;
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    border: 1px solid var(--line);
    border-radius: 8px;
}

.member-tab button.active::before {
    border: 2px solid #191c24;
}
.member-tab button.active {
    background: #fff;
    color: #191c24; 
}

.member-form[hidden] {
	display: none;
}

 
.cert-number-row[hidden] {
	display: none;
} 
 
 

/* ========================================
   SNS
======================================== */

.member-sns {
    margin-top: 16px;
} 

.member-divider {
    display: flex;
    align-items: center;
    gap: 12px; 
    margin: 0 0 20px; 
    color: #999; 
}

.member-divider::before,
.member-divider::after {
    content: ""; 
    flex: 1; 
    height: 1px; 
    background: #eee;
}

.member-divider span {
    flex: none;
}


.member-sns p {
    margin: 0 0 18px; 
	font-weight: 600;
	font-size: 16px;
    text-align: center;
}


.kakao-login {
    position: relative; 
    display: flex;
    align-items: center;
    justify-content: center; 
    width: 100%;
    height: 54px; 
    border-radius: 8px; 
    background: #fee500;
    color: #191c24; 
    font-size: 16px;
    font-weight: 700; 
    text-decoration: none;
}

.kakao-icon {
    position: absolute;
    left: 30px; 
    width: 20px;
    aspect-ratio:1;
    border-radius: 50%; 
    background: url('/images/icon-kakao.svg') no-repeat center center / contain;
} 



/* ========================================
   회원가입
======================================== */

.member-signup { 
}
 


/* =========================================================
   FORM
========================================================= */

.member-form {
    display: flex;
    flex-direction: column;
    gap: 12px;
}
  
.member-input.readonly {
    background: #f6f6f6;
    color: #666;
	font-weight: 600;
	border:1px solid var(--line);
    text-align: center;
}


/* =========================================================
   INPUT + BUTTON
========================================================= */

.member-input-row {
    display: flex;
    gap: 10px;
}
.member-input-row + .member-input-row{
	margin-top: 16px;
}

.member-input-row .member-input {
    flex: 1;
}

.member-cert-btn {
    flex: 0 0 100px;
    height: 52px;
    border: 0;
    border-radius: 10px;
    background: var(--line);
    color: #777; 
    font-weight: 600;
    cursor: pointer;
}

.member-cert-btn.active {
    background: #191c24;
    color: #fff;
}


.member-cert-btn:disabled {
	background: var(--line);
	color: #777;
	cursor: default;
}



/* =========================================================
   OPTIONS
========================================================= */

.member-options {
    display: flex;
    align-items: center;
    justify-content: space-between;
    margin: 5px 0 15px;
	font-size: 14px;
}

.member-save {
    display: flex;
    align-items: center;
    gap: 10px; 
	font-weight: 600; 
    cursor: pointer;
}

.member-save input {
	appearance: none;
	position: relative;
	width: 18px;
	aspect-ratio: 1;
	margin: 0;
	border: 1px solid var(--line);
	border-radius: 4px;
	background: #fff;
	cursor: pointer;
}

.member-save input::after {
	content: "";
	position: absolute;
	left: 5px;
	top: 2px;
	width: 6px;
	height: 10px;
	border-right: 2px solid #fff;
	border-bottom: 2px solid #fff;
	transform: rotate(45deg);
	opacity: 0;
}

.member-save input:checked {
	background: #191c24;
	border-color: #191c24;
}

.member-save input:checked::after {
	opacity: 1;
}

.member-links {
    display: flex;
    align-items: center;
    gap: 10px;
    color: #666;
	font-weight: 500; 
}

.member-links a {
    color: inherit;
    text-decoration: none;
}

.member-links .divider {
    color: #c7cbd1;
}


/* =========================================================
   BUTTON
========================================================= */

.member-btn {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 100%;
    height: 54px;
    border: 0;
    border-radius: 8px;
    background: #191c24;
    color: #fff;
    font-size: 16px; 
    font-weight: 700;
    text-decoration: none;
    cursor: pointer;
	margin : 16px 0;
	transition: 0.16s;
} 

.member-btn:disabled {
    background: #d9d9d9;
    color: #888;
    cursor: default;
}

.member-btn-outline {
    border: 1px solid var(--line);
    background: #fff;
    color: #191c24;
}
.member-btn-outline:hover {
    border-color: var(--color-border-strong);
    background: #f8f9fa;
    color: #222;
}
 

 

/* =========================================================
   NOTICE
========================================================= */

.member-notice {  
	text-align:left;
	font-size: 14px;
	margin:0;
	position:relative; 
}

.member-notice:has(.member-notice-icon){
	padding-left: 22px;

}

.member-notice.error {
    color: #dd353c;
}

.member-notice-icon {
	position:absolute;
	left:0;
	top:3px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 14px;
    aspect-ratio:1; 
    border-radius: 50%;
    background: #191c24;
    color: #fff;
    font-size: 12px;
	line-height: 1;
    font-weight: 700;
}


/* =========================================================
   RESULT
========================================================= */

.member-result-box {
    padding: 30px 20px;
    border-radius: 12px;
    background: var(--bg);   
    text-align: center;
	font-size: 18px;
	font-weight: 500;
	margin-bottom: 32px;
}


/* =========================================================
   FIND
========================================================= */

.member-find { 
}

.member-find-desc {
    margin: 0 0 15px;  
	font-size: 16px;  
	font-weight: 650;
}

.member-find-desc strong {
    color: #1c59e9;
	font-weight: 700;
}


/* =========================================================
   STATUS
========================================================= */

.member-status { 
}

.member-status-badge {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    height: 28px;
    padding: 0 12px;
    border: 1px solid;
    border-radius: 999px;
    font-size: 13px;
    font-weight: 700;
	margin-bottom: 20px; 
}

.member-status-badge.success {
    border-color: #91d6a1;
    background: #effaf1;
    color: #2e9b48;
} 
.member-status-badge.reapply {
    border-color: #9AD9A4;
    background: #E8F8EC;
    color: #2E7D3D;
}

.member-status-badge.waiting {
    border-color: #ffc477;
    background: #fff7ec;
    color: #f28a22;
}

.member-status-badge.reject {
    border-color: #ff9b9f;
    background: #fff0f1;
    color: #f0444c;
}
 
.member-status-box { 
    padding: 30px;
	margin-bottom: 32px;
    border-radius: 10px;
    background: var(--bg);
}

.member-status-box strong {
    display: block;
    margin-bottom: 10px;  
	font-weight: 650; 
	font-size: 17px;
}

.member-status-box p {   
	color: #666;
}

.member-status-box p span {
    display: block;
	margin:8px 0;
}

/* =========================================================
	Join Type
========================================================= */

.member-join-type { 
}
  

.member-type-list {
	display: flex;
	gap: 16px; 
	margin-bottom: 40px;
}


.member-type-item {
	display: flex;
	flex-direction: column;
	width: 50%;
	height: 240px;
	padding: 24px;
	background: var(--bg); 
	border-radius: 16px; 
	text-align: left;
	cursor: pointer;
	border:2px solid var(--color-blue-bg);
	transition:
		border-color .35s ease,
		background .35s ease;
} 

.member-type-item strong {
	display: block;  
	margin-bottom: 10px; 
	font-size: 22px;
	font-weight: 700;  
}


.member-type-item span { 
	color: #666;
}


.member-type-item:hover,
.member-type-item.active {  
	border-color: #1c59e9;
    color: #1c59e9; 
	background: var(--color-blue-bg); 
}

 

.member-type-notice {
	margin: 16px 0 0; 
	color: #888;
}




/* =========================================================
   MY PAGE
========================================================= */

.my-info-wrap{
    display: grid;
    grid-template-columns: 300px minmax(0, 1fr);
    gap: 80px;
    margin: 0 auto;
    align-items: flex-start;
}

.my-info-content{
	min-width:0;
}
.my-info-content .join-form-fields .form-row{

	grid-template-columns: 100px minmax(0, 1fr); 
}
.my-info-profile{ 
    border-radius: var(--radius-card);
    padding: 30px  24px;
    border: 1px solid var(--line);
}

.profile-image{
	position:relative;
	display:flex;
	align-items:center;
	justify-content:center;
	width:92px;
	aspect-ratio:1;
	margin:0 auto 20px;
	border-radius:50%; 
	overflow:hidden;
}

.profile-image::before{
	content:'';
	position:absolute;
	inset:0;
	background: url('/images/icon-image.png') #ddd no-repeat center center / 30px;
	opacity:.15;
}

.profile-image img{
	width:100%;
	height:100%;
	object-fit:cover;
	position:relative;
	z-index:1;
}

.profile-name{
	display:flex;
	flex-direction:column;
	align-items:center;
	gap:5px;
}

.profile-name strong{
	font-size:18px;
	font-weight:700;
	letter-spacing:-.03em;
}

.profile-name span{
	font-size:14px;
	color:#98a2b3;
}

.profile-notice{
	margin:20px 0 0;
	padding:12px ;
	border-radius:7px;
	background:var(--bg);  
	font-size: 13px;
	color:var(--color-text-sub);
}

.profile-toggle{
	display:flex;
	align-items:center;
	justify-content:space-between;
	margin-top:15px; 
	font-weight:700;
}

.switch{
	position:relative;
	display:block;
	width:40px;
	height:24px;
}

.switch input{
	position:absolute;
	width:1px;
	height:1px;
	opacity:0;
}

.switch-slider{
	position:absolute;
	inset:0;
	border-radius:999px;
	background:#d0d5dd;
	cursor:pointer;
	transition:.2s;
}

.switch-slider::before{
	content:"";
	position:absolute;
	top:4px;
	left:4px;
	width:15px;
	aspect-ratio:1;
	border-radius:50%;
	background:#fff;
	box-shadow:0 1px 2px rgba(0,0,0,.15);
	transition:.2s;
}

.switch input:checked + .switch-slider{
	background:#2f7cff;
}

.switch input:checked + .switch-slider::before{
	transform:translateX(16px);
}




/* =========================================================
	추천 의사 세션
========================================================= */
 
.member-doctor{
	width:100%;
	margin-top:60px;
	padding:50px 30px 40px;
	background:#eaf5ff;
	box-sizing:border-box;
}

.member-doctor-title{
	text-align:center;
}

.member-doctor-title h2{
	margin:0;
	font-size:26px;
	font-weight:600;
	line-height:1.4;
	color:#111;
}

.member-doctor-title p{
	margin:10px 0 0;
	font-size:14px;
	line-height:1.6;
	color:#222;
}

.member-doctor-list{
	display:flex;
	gap:8px;
	max-width:765px;
	margin:30px auto 0;
}

.member-doctor-card{
	width:calc((100% - 16px) / 3);
	padding:15px;
	background:#fff;
	border-radius:12px;
	box-sizing:border-box;
}

.member-doctor-profile{
	display:flex;
	align-items:center;
	gap:28px;
}

.member-doctor-image{
	width:45px;
	height:45px;
	flex-shrink:0;
	display:flex;
	align-items:center;
	justify-content:center;
	border-radius:50%;
	background:#bbb;
}

.member-doctor-image span{
	display:none;
}

.member-doctor-info{
	min-width:0;
}

.member-doctor-info strong{
	display:block;
	font-size:17px;
	font-weight:500;
	line-height:1.4;
	color:#111;
}

.member-doctor-info p{
	margin:2px 0 0;
	font-size:13px;
	line-height:1.4;
	color:#111;
	white-space:nowrap;
}

.member-doctor-info i{
	font-style:normal;
	margin:0 2px;
	color:#777;
}

.member-doctor-specialty{
	margin-top:11px;
	padding-left:73px;
}

.member-doctor-specialty > strong{
	display:block;
	font-size:11px;
	font-weight:500;
	line-height:1.4;
	color:#111;
}

.member-doctor-tags{
	display:flex;
	gap:3px;
	margin-top:5px;
}

.member-doctor-tags span{
	padding:3px 5px;
	background:#f1f1f1;
	font-size:9px;
	line-height:1.2;
	color:#222;
	white-space:nowrap;
}

@media (max-width:760px){

	.my-info-wrap{
		grid-template-columns:1fr;
		gap:30px;
		padding:35px 0 60px;
	}

}

@media (max-width: 480px) {

	.member-join-type {
		padding: 30px 20px;
	}
 
	.member-type-list {
		gap: 10px;
	}

	.member-type-item {
		padding: 12px;
	}

	.member-type-item strong {
		font-size: 14px;
	}

}

 

/* =========================================================
   RESPONSIVE
========================================================= */

@media (max-width: 767px) {
 
    .member-card { 
        padding: 35px 24px;
        border-radius: 14px;
    }
 

    .member-status {
        padding: 35px 24px;
    }

    .member-status-title {
        font-size: 22px;
    }

    .member-options {
        flex-wrap: wrap;
        gap: 15px;
    }

    .member-links {
        margin-left: auto;
    }

    .member-input-row {
        gap: 7px;
    }

    .member-cert-btn {
        flex-basis: 90px;
    }
}
