/**
 * EVT Auth CSS — Dr.EVERS 테마 (#009191)
 *
 * 디자인 토큰: style.css의 UM 오버라이드와 동일.
 *   Primary       #009191
 *   Primary Hover #007575
 *   Bg Hover      #f0fafa
 *   Border        #ddd
 *   Text          #222 / #333 / #999
 *   Radius        8px
 *   Font          Pretendard, Noto Sans KR, sans-serif
 */

:root {
    --evt-auth-primary: #009191;
    --evt-auth-primary-dark: #007575;
    --evt-auth-primary-bg: #f0fafa;
    --evt-auth-border: #ddd;
    --evt-auth-border-focus: #009191;
    --evt-auth-text: #222;
    --evt-auth-text-body: #333;
    --evt-auth-text-muted: #999;
    --evt-auth-error: #e53e3e;
    --evt-auth-error-bg: #fff5f5;
    --evt-auth-success-bg: #f0fafa;
    --evt-auth-radius: 8px;
    --evt-auth-font: 'Pretendard', 'Noto Sans KR', -apple-system, BlinkMacSystemFont, sans-serif;
}

/* ===== 레이아웃 ===== */
.evt-auth-wrap {
    max-width: 480px;
    margin: 40px auto 80px;
    padding: 0 16px;
    font-family: var(--evt-auth-font);
    color: var(--evt-auth-text-body);
    line-height: 1.6;
    word-break: keep-all;
}

.evt-auth-card {
    background: #fff;
    border: 1px solid var(--evt-auth-border);
    border-radius: var(--evt-auth-radius);
    padding: 36px 32px;
    box-shadow: 0 2px 8px rgba(0, 0, 0, 0.03);
}

.evt-auth-card--wide {
    max-width: 560px;
    margin: 0 auto;
}

.evt-auth-title {
    font-size: 24px;
    font-weight: 700;
    color: var(--evt-auth-text);
    margin: 0 0 8px;
    text-align: center;
}

.evt-auth-subtitle {
    font-size: 14px;
    color: var(--evt-auth-text-muted);
    text-align: center;
    margin: 0 0 28px;
}

.evt-auth-section-title {
    font-size: 18px;
    font-weight: 700;
    color: var(--evt-auth-text);
    margin: 0 0 20px;
    padding-bottom: 12px;
    border-bottom: 2px solid var(--evt-auth-primary);
}

/* ===== 폼 ===== */
.evt-auth-form {
    display: flex;
    flex-direction: column;
    gap: 16px;
}

.evt-auth-label {
    display: flex;
    flex-direction: column;
    gap: 6px;
    font-size: 14px;
    font-weight: 500;
    color: var(--evt-auth-text-body);
}

.evt-auth-label input {
    width: 100%;
    padding: 12px 14px;
    border: 1px solid var(--evt-auth-border);
    border-radius: var(--evt-auth-radius);
    font-size: 15px;
    font-family: inherit;
    color: var(--evt-auth-text);
    background: #fff;
    box-sizing: border-box;
    transition: border-color 0.15s, box-shadow 0.15s;
}

.evt-auth-label input:focus {
    outline: none;
    border-color: var(--evt-auth-border-focus);
    box-shadow: 0 0 0 3px rgba(0, 145, 145, 0.12);
}

.evt-auth-label input[readonly],
.evt-auth-label input[disabled] {
    background: #f5f5f5;
    color: var(--evt-auth-text-muted);
    cursor: not-allowed;
}

.evt-auth-hint {
    font-size: 12px;
    color: var(--evt-auth-text-muted);
    font-weight: 400;
    margin-left: 6px;
}

.evt-auth-hint-text {
    font-size: 13px;
    color: var(--evt-auth-text-muted);
    margin: 4px 0;
}

/* ===== 체크박스 ===== */
.evt-auth-check {
    display: flex;
    align-items: center;
    gap: 8px;
    font-size: 14px;
    color: var(--evt-auth-text-body);
    cursor: pointer;
    font-weight: 400;
}

.evt-auth-check input[type="checkbox"] {
    width: 18px;
    height: 18px;
    accent-color: var(--evt-auth-primary);
    cursor: pointer;
    flex-shrink: 0;
}

.evt-auth-check span {
    flex: 1;
}

.evt-auth-check a {
    margin-left: 4px;
    font-size: 12px;
    text-decoration: underline;
}

.evt-auth-agreements {
    border: 1px solid var(--evt-auth-border);
    border-radius: var(--evt-auth-radius);
    padding: 14px 16px;
    background: #fafafa;
}

.evt-auth-agreements > .evt-auth-check {
    padding-bottom: 12px;
    border-bottom: 1px solid var(--evt-auth-border);
    margin-bottom: 12px;
    font-size: 15px;
}

.evt-auth-agreements__list {
    display: flex;
    flex-direction: column;
    gap: 10px;
}

/* ===== 버튼 ===== */
.evt-auth-btn-primary {
    display: block;
    width: 100%;
    padding: 14px 16px;
    background: var(--evt-auth-primary);
    color: #fff;
    border: 1px solid var(--evt-auth-primary);
    border-radius: var(--evt-auth-radius);
    font-size: 15px;
    font-weight: 600;
    font-family: inherit;
    cursor: pointer;
    text-align: center;
    text-decoration: none;
    transition: background 0.15s, border-color 0.15s;
    margin-top: 8px;
}

/* <a> 변형: 테마(Astra/Elementor) 링크 색상이 .evt-auth-btn-primary의 color를
   더 높은 specificity로 덮어 문구가 흐리게 보이는 문제 방지 → 앵커 흰색 강제 */
a.evt-auth-btn-primary,
a.evt-auth-btn-primary:link,
a.evt-auth-btn-primary:visited,
a.evt-auth-btn-primary:hover,
a.evt-auth-btn-primary:focus {
    color: #fff !important;
}

.evt-auth-btn-primary:hover {
    background: var(--evt-auth-primary-dark);
    border-color: var(--evt-auth-primary-dark);
    color: #fff;
}

.evt-auth-btn-primary:disabled {
    opacity: 0.6;
    cursor: not-allowed;
}

.evt-auth-btn-danger {
    display: block;
    width: 100%;
    padding: 14px 16px;
    background: var(--evt-auth-error);
    color: #fff;
    border: 1px solid var(--evt-auth-error);
    border-radius: var(--evt-auth-radius);
    font-size: 15px;
    font-weight: 600;
    cursor: pointer;
    transition: background 0.15s;
}

.evt-auth-btn-danger:hover {
    background: #c53030;
    border-color: #c53030;
}

/* ===== 링크 ===== */
.evt-auth-links {
    text-align: center;
    margin-top: 24px;
    font-size: 14px;
    color: var(--evt-auth-text-muted);
}

/* 마이페이지 소셜 계정 연결 섹션 */
.evt-social-links { margin-top: 12px; }
.evt-social-link-row {
    display: flex;
    align-items: center;
    gap: 12px;
    padding: 14px 0;
    border-bottom: 1px solid #eee;
}
.evt-social-link-name { flex: 1; font-weight: 600; }
.evt-social-link-badge { font-size: 13px; color: #999; }
.evt-social-link-badge.is-on { color: #03c75a; font-weight: 600; }
.evt-social-link-form { display: inline; margin: 0; }
.evt-social-link-btn {
    display: inline-block;
    padding: 8px 16px;
    font-size: 13px;
    border-radius: 6px;
    cursor: pointer;
    border: 1px solid #ddd;
    background: #fff;
    text-decoration: none;
    color: var(--evt-auth-text-body);
}
.evt-social-link-btn.on { background: var(--evt-auth-primary); color: #fff; border-color: var(--evt-auth-primary); }
.evt-social-link-btn.off { color: #d33; border-color: #f0c0c0; }

.evt-auth-links a {
    color: var(--evt-auth-text-body);
    text-decoration: none;
    transition: color 0.15s;
}

.evt-auth-links a:hover {
    color: var(--evt-auth-primary);
}

.evt-auth-link-primary {
    color: var(--evt-auth-primary) !important;
    font-weight: 600;
}

.evt-auth-link-primary:hover {
    color: var(--evt-auth-primary-dark) !important;
}

.evt-auth-link-muted {
    color: var(--evt-auth-text-muted) !important;
    font-size: 12px;
    background: none;
    border: none;
    cursor: pointer;
    padding: 0;
    font-family: inherit;
}

.evt-auth-link-muted:hover {
    color: var(--evt-auth-primary) !important;
}

.evt-auth-sep {
    margin: 0 10px;
    color: var(--evt-auth-border);
}

/* ===== 메시지 ===== */
.evt-auth-msg {
    padding: 12px 14px;
    border-radius: var(--evt-auth-radius);
    margin-bottom: 16px;
    font-size: 14px;
    line-height: 1.5;
}

.evt-auth-msg--error {
    background: var(--evt-auth-error-bg);
    color: var(--evt-auth-error);
    border: 1px solid #fed7d7;
}

.evt-auth-msg--success {
    background: var(--evt-auth-success-bg);
    color: var(--evt-auth-primary-dark);
    border: 1px solid #b2dfdb;
}

.evt-auth-msg--info {
    background: #eff6ff;
    color: #1d4ed8;
    border: 1px solid #bfdbfe;
}

/* ===== 경고 박스 (탈퇴) ===== */
.evt-auth-warning {
    background: #fff5f5;
    border: 1px solid #fed7d7;
    border-radius: var(--evt-auth-radius);
    padding: 16px;
    margin-bottom: 20px;
    color: var(--evt-auth-error);
    font-size: 14px;
}

.evt-auth-warning ul {
    margin: 8px 0 0;
    padding-left: 20px;
}

.evt-auth-warning li {
    margin: 4px 0;
}

/* ===== 마이페이지 레이아웃 ===== */
.evt-auth-account {
    max-width: 960px;
    margin: 40px auto 80px;
    padding: 0 16px;
    display: grid;
    grid-template-columns: 240px 1fr;
    gap: 24px;
    font-family: var(--evt-auth-font);
    color: var(--evt-auth-text-body);
}

.evt-auth-account__nav {
    background: #fff;
    border: 1px solid var(--evt-auth-border);
    border-radius: var(--evt-auth-radius);
    padding: 20px;
    height: fit-content;
}

.evt-auth-account__user {
    padding-bottom: 16px;
    border-bottom: 1px solid var(--evt-auth-border);
    margin-bottom: 16px;
}

.evt-auth-account__name {
    font-size: 16px;
    font-weight: 700;
    color: var(--evt-auth-text);
    margin-bottom: 4px;
}

.evt-auth-account__email {
    font-size: 12px;
    color: var(--evt-auth-text-muted);
    word-break: break-all;
}

.evt-auth-account__menu {
    list-style: none;
    padding: 0;
    margin: 0 0 16px;
}

.evt-auth-account__menu li {
    margin: 2px 0;
}

.evt-auth-account__menu a {
    display: block;
    padding: 10px 12px;
    color: var(--evt-auth-text-body);
    text-decoration: none;
    border-radius: var(--evt-auth-radius);
    font-size: 14px;
    transition: background 0.15s, color 0.15s;
}

.evt-auth-account__menu a:hover {
    background: var(--evt-auth-primary-bg);
    color: var(--evt-auth-primary);
}

.evt-auth-account__menu li.is-active a {
    background: var(--evt-auth-primary);
    color: #fff;
    font-weight: 600;
}

.evt-auth-account__logout {
    border-top: 1px solid var(--evt-auth-border);
    padding-top: 12px;
    text-align: center;
}

.evt-auth-account__content {
    background: #fff;
    border: 1px solid var(--evt-auth-border);
    border-radius: var(--evt-auth-radius);
    padding: 32px;
    min-height: 400px;
}

/* ===== 예약 테이블 ===== */
.evt-auth-rv-table {
    width: 100%;
    border-collapse: collapse;
    font-size: 14px;
}

.evt-auth-rv-table th {
    background: #f5f5f5;
    padding: 10px 12px;
    text-align: left;
    font-weight: 600;
    font-size: 13px;
    color: #555;
    border-bottom: 2px solid #e5e5e5;
}

.evt-auth-rv-table td {
    padding: 12px;
    border-bottom: 1px solid #f0f0f0;
    vertical-align: middle;
}

.evt-auth-rv-table tbody tr:hover {
    background: var(--evt-auth-primary-bg);
}

.evt-auth-rv-table .rv-id {
    color: var(--evt-auth-primary);
    font-weight: 600;
}

.evt-auth-rv-table .rv-items {
    max-width: 200px;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.evt-auth-rv-table .rv-price {
    font-weight: 600;
    white-space: nowrap;
}

.evt-auth-rv-table .rv-date {
    color: var(--evt-auth-text-muted);
    white-space: nowrap;
}

.evt-auth-rv-table .rv-status {
    display: inline-block;
    padding: 3px 10px;
    border-radius: 12px;
    color: #fff;
    font-size: 12px;
    font-weight: 500;
}

.evt-auth-empty {
    text-align: center;
    padding: 60px 20px;
}

.evt-auth-empty p {
    color: var(--evt-auth-text-muted);
    margin-bottom: 20px;
}

.evt-auth-empty .evt-auth-btn-primary {
    display: inline-block;
    width: auto;
    padding: 12px 32px;
}

.evt-auth-text {
    text-align: center;
    color: var(--evt-auth-text-body);
    margin: 20px 0;
}

/* ===== 홈페이지 회원가입 (outline 버튼) ===== */
.evt-auth-btn-outline {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 100%;
    height: 50px;
    background: #fff;
    color: var(--evt-auth-primary);
    border: 1.5px solid var(--evt-auth-primary);
    border-radius: 12px;
    font-size: 15px;
    font-weight: 600;
    font-family: inherit;
    text-decoration: none;
    cursor: pointer;
    transition: background 0.15s;
    margin: 8px 0;
}

.evt-auth-btn-outline:hover {
    background: var(--evt-auth-primary-bg);
    color: var(--evt-auth-primary-dark);
}

/* ===== 구분선 — "간편 가입/로그인" ===== */
.evt-auth-divider {
    display: flex;
    align-items: center;
    gap: 12px;
    margin: 24px 0 12px;
    color: var(--evt-auth-text-muted);
    font-size: 13px;
    font-weight: 500;
}

.evt-auth-divider::before,
.evt-auth-divider::after {
    content: "";
    flex: 1;
    height: 1px;
    background: var(--evt-auth-border);
}

/* ===== 소셜 버튼 — 네이버/카카오 공식 규격 ===== */
.evt-social-btn {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 100%;
    height: 50px;
    border-radius: 12px; /* 공식 가이드: 12px */
    font-size: 15px;
    font-weight: 600;
    font-family: inherit;
    text-decoration: none;
    cursor: pointer;
    margin: 8px 0;
    position: relative;
    transition: filter 0.15s, transform 0.05s;
    user-select: none;
}

.evt-social-btn:hover {
    filter: brightness(0.95);
}

.evt-social-btn:active {
    transform: translateY(1px);
}

.evt-social-btn__symbol {
    position: absolute;
    left: 18px;
    top: 50%;
    transform: translateY(-50%);
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
}

.evt-social-btn__label {
    line-height: 1;
}

/* 네이버 공식 — Naver Green #03C75A, 흰색 텍스트 */
.evt-social-btn--naver,
.evt-social-btn--naver:link,
.evt-social-btn--naver:visited,
.evt-social-btn--naver:hover,
.evt-social-btn--naver:active,
.evt-social-btn--naver:focus {
    background: #03C75A !important;
    color: #fff !important;
}
.evt-social-btn--naver .evt-social-btn__label,
.evt-social-btn--naver .evt-social-btn__symbol {
    color: #fff !important;
}
.evt-social-btn--naver .evt-social-btn__symbol svg path {
    fill: #fff !important;
}

/* 카카오 공식 — Kakao Yellow #FEE500, 검정 텍스트 (#191919) */
.evt-social-btn--kakao,
.evt-social-btn--kakao:link,
.evt-social-btn--kakao:visited,
.evt-social-btn--kakao:hover,
.evt-social-btn--kakao:active,
.evt-social-btn--kakao:focus {
    background: #FEE500 !important;
    color: #191919 !important;
}
.evt-social-btn--kakao .evt-social-btn__label,
.evt-social-btn--kakao .evt-social-btn__symbol {
    color: #191919 !important;
}
.evt-social-btn--kakao .evt-social-btn__symbol svg path {
    fill: #191919 !important;
}

/* OAuth 추가정보 — 소셜 계정 정보 표시 박스 */
.evt-auth-oauth-info {
    background: var(--evt-auth-primary-bg);
    border: 1px solid #b2dfdb;
    border-radius: var(--evt-auth-radius);
    padding: 10px 14px;
    margin-bottom: 16px;
    font-size: 13px;
    color: var(--evt-auth-primary-dark);
}

.evt-auth-oauth-info strong {
    color: var(--evt-auth-text);
    margin-right: 6px;
}

/* ===== Turnstile 위젯 ===== */
.cf-turnstile {
    margin: 8px 0;
    display: flex;
    justify-content: center;
}

/* ===== 모바일 ===== */
@media (max-width: 768px) {
    .evt-auth-wrap {
        margin: 20px auto 60px;
    }

    .evt-auth-card {
        padding: 28px 20px;
    }

    .evt-auth-title {
        font-size: 22px;
    }

    .evt-auth-account {
        grid-template-columns: 1fr;
        gap: 16px;
        margin: 20px auto 60px;
    }

    .evt-auth-account__nav {
        padding: 16px;
    }

    .evt-auth-account__menu {
        display: flex;
        flex-wrap: wrap;
        gap: 6px;
        margin-bottom: 0;
    }

    .evt-auth-account__menu li {
        flex: 1 1 calc(50% - 3px);
        margin: 0;
    }

    .evt-auth-account__menu a {
        text-align: center;
        padding: 10px 8px;
        font-size: 13px;
    }

    .evt-auth-account__logout {
        display: none;
    }

    .evt-auth-account__content {
        padding: 20px;
    }

    .evt-auth-rv-table {
        font-size: 13px;
    }

    .evt-auth-rv-table th,
    .evt-auth-rv-table td {
        padding: 8px 6px;
    }

    .evt-auth-rv-table .rv-items {
        max-width: 100px;
    }
}

/* =========================================================================
   마이페이지 (/account/) — MYPAGE(33813) 디자인 이식
   -------------------------------------------------------------------------
   원본은 Elementor HTML 위젯의 .dr-* 마크업/CSS.
   전역 `*` 리셋과 `body` 규칙은 의도적으로 제외 (테마 헤더/푸터 보호).
   모든 선택자를 `.dr-mypage` 로 스코프 → Astra `.entry-content button/input`
   (0,2,0) 같은 테마 규칙보다 specificity 우위 확보.
   ========================================================================= */
.dr-mypage,
.dr-mypage *,
.dr-mypage *::before,
.dr-mypage *::after {
    box-sizing: border-box;
}

/* ===== LAYOUT ===== */
.dr-mypage {
    width: 100%;
    max-width: 1200px;
    margin: 80px auto;
    padding: 40px 20px;
    font-family: 'Pretendard', 'Noto Sans KR', -apple-system, BlinkMacSystemFont, sans-serif;
    color: #222;
}
.dr-mypage .dr-wrap {
    display: flex;
    gap: 40px;
    align-items: stretch;
}

/* ===== SIDEBAR & PROFILE ===== */
.dr-mypage .dr-sidebar {
    width: 240px;
    background: #fff;
    border-radius: 20px;
    padding: 40px 24px;
    box-shadow: 0 12px 40px rgba(0, 145, 145, 0.04);
    border: 1px solid #cce3e3;
    height: fit-content;
    flex-shrink: 0;
}
.dr-mypage .dr-sidebar h2 {
    font-size: 28px;
    color: #111;
    font-weight: 700;
    margin-bottom: 24px;
    letter-spacing: -0.8px;
    line-height: 1.2;
}
.dr-mypage .dr-sidebar-profile {
    display: flex;
    align-items: center;
    gap: 16px;
    margin-bottom: 30px;
    padding-bottom: 30px;
    border-bottom: 1px solid #eaeaea;
}
.dr-mypage .dr-sidebar-icon {
    width: 54px;
    height: 54px;
    border-radius: 50%;
    background-color: #f2f9f9;
    background-image: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="%23009191" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"><path d="M20 21v-2a4 4 0 0 0-4-4H8a4 4 0 0 0-4 4v2"></path><circle cx="12" cy="7" r="4"></circle></svg>');
    background-repeat: no-repeat;
    background-position: center;
    background-size: 24px;
    border: 1px solid #e0eeee;
    flex-shrink: 0;
}
.dr-mypage .dr-sidebar-info {
    display: flex;
    flex-direction: column;
    gap: 4px;
}
.dr-mypage .dr-sidebar-info h3 {
    font-size: 16px;
    font-weight: 700;
    color: #111;
    line-height: 1.2;
}
.dr-mypage .dr-sidebar-info span {
    color: #888;
    font-size: 13px;
    font-weight: 400;
    letter-spacing: -0.5px;
    line-height: 1.2;
    word-break: break-all;
}
.dr-mypage .dr-sidebar-menu {
    display: flex;
    flex-direction: column;
    gap: 8px;
    margin: 0;
    padding: 0;
}
.dr-mypage .dr-sidebar-menu#dr-menu {
    margin-bottom: 30px;
    padding-bottom: 30px;
    border-bottom: 1px solid #eaeaea;
}
.dr-mypage .dr-sidebar-menu#dr-menu a {
    text-decoration: none;
    color: #666;
    font-size: 15px;
    font-weight: 500;
    background: #f8f9fa;
    border: 1px solid #e9ecef;
    transition: all 0.3s ease;
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 12px 16px;
    border-radius: 10px;
    cursor: pointer;
}
.dr-mypage .dr-sidebar-menu#dr-menu a.active {
    color: #009191;
    font-weight: 700;
    background: rgba(0, 145, 145, 0.05);
    border: 1px solid #009191;
}
.dr-mypage .dr-sidebar-menu#dr-menu a.active::after {
    content: '';
    width: 14px;
    height: 14px;
    background: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" fill="none" stroke="%23009191" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round" viewBox="0 0 24 24"><polyline points="9 18 15 12 9 6"/></svg>') no-repeat center/contain;
}
.dr-mypage .dr-sidebar-menu#dr-menu a:hover:not(.active) {
    color: #333;
    background: #eef1f3;
    border-color: #dce1e5;
}
/* 로그아웃 — 원본은 <a>, 여기선 POST <button> (CSRF nonce 유지) */
.dr-mypage .dr-sidebar-menu .logout-btn {
    text-decoration: none;
    display: flex;
    align-items: center;
    justify-content: flex-start;
    color: #777;
    font-size: 14px;
    font-weight: 500;
    padding: 12px 16px;
    border-radius: 10px;
    background: #f8f9fa;
    border: 1px solid #e9ecef;
    transition: all 0.3s ease;
    width: 100%;
    cursor: pointer;
    font-family: inherit;
    line-height: 1.2;
}
.dr-mypage .dr-sidebar-menu .logout-btn:hover {
    color: #e53e3e;
    background: #fff8f8;
    border-color: #ffe8e8;
}

/* ===== CONTENT ===== */
.dr-mypage .dr-content {
    flex: 1;
    background: #fff;
    padding: 44px 60px 50px 60px;
    border-radius: 20px;
    box-shadow: 0 12px 40px rgba(0, 145, 145, 0.03);
    border: 1px solid #cce3e3;
}
.dr-mypage .dr-tab-panel {
    display: none;
    animation: drFadeIn 0.4s ease forwards;
}
.dr-mypage .dr-tab-panel.active {
    display: block;
}
@keyframes drFadeIn {
    from { opacity: 0; transform: translateY(10px); }
    to   { opacity: 1; transform: translateY(0); }
}
.dr-mypage .dr-tab-title {
    font-size: 22px;
    font-weight: 700;
    color: #111;
    padding-bottom: 18px;
    margin-bottom: 18px;
    border-bottom: 1px solid #eaeaea;
    letter-spacing: -0.5px;
    line-height: 1.2;
}
.dr-mypage .dr-tab-pwd-notice {
    font-size: 14px;
    color: #666;
    margin-bottom: 16px;
}

/* ===== FORM LAYOUT ===== */
.dr-mypage .dr-form-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 20px 50px;
}
.dr-mypage #tab-password .dr-form-grid {
    grid-template-columns: 1fr;
}
.dr-mypage .dr-form-group {
    display: flex;
    align-items: center;
    gap: 16px;
}
.dr-mypage .dr-form-group label {
    width: 110px;
    font-size: 14px;
    font-weight: 600;
    color: #555;
    word-break: keep-all;
    flex-shrink: 0;
}
.dr-mypage .dr-form-group input {
    flex: 1;
    height: 40px;
    border: 1px solid #e4e4e4;
    border-radius: 6px;
    padding: 0 14px;
    font-size: 14px;
    color: #222;
    background: #fff;
    outline: none;
    transition: all 0.25s ease;
    font-family: inherit;
    min-width: 0;
}
.dr-mypage .dr-form-group input:not([readonly]):focus {
    border-color: #009191;
    box-shadow: 0 0 0 3px rgba(0, 145, 145, 0.15);
}
.dr-mypage .dr-form-group input[readonly] {
    background-color: #f7f9fa;
    color: #888;
    border-color: #eee;
    cursor: not-allowed;
}

/* ===== COMMON BUTTONS ===== */
.dr-mypage .dr-submit {
    display: flex;
    justify-content: center;
    gap: 10px;
    margin-top: 40px;
}
.dr-mypage .dr-submit button {
    width: 320px;
    height: 50px;
    border-radius: 6px;
    font-size: 15px;
    font-weight: 700;
    cursor: pointer;
    transition: all 0.25s ease;
    font-family: inherit;
    display: flex;
    align-items: center;
    justify-content: center;
    text-decoration: none;
}
.dr-mypage .dr-submit button.half {
    flex: 1;
    max-width: 154px;
}
.dr-mypage .dr-submit button.dr-modify-btn {
    background: #009191;
    border: none;
    color: #fff !important;
}
.dr-mypage .dr-submit button.dr-modify-btn:hover {
    background: #007a7a;
}
.dr-mypage .dr-submit button.dr-btn-cancel {
    background: #fff;
    border: 1px solid #d9d9d9;
    color: #777 !important;
    font-weight: 600;
}
.dr-mypage .dr-submit button.dr-btn-cancel:hover {
    background: #f9f9f9;
    border-color: #ccc;
    color: #111 !important;
}
.dr-mypage .dr-submit button.dr-btn-danger {
    background: #e53e3e;
    border: none;
    color: #fff !important;
}
.dr-mypage .dr-submit button.dr-btn-danger:hover {
    background: #c53030;
}

/* ===== TAB: RESERVATION (예약확인) ===== */
.dr-mypage .dr-res-section {
    margin-bottom: 30px;
}
.dr-mypage .dr-res-list {
    display: flex;
    flex-direction: column;
    gap: 20px;
}
.dr-mypage .dr-res-section h4 {
    font-size: 15px !important;
    font-weight: 700 !important;
    color: #009191 !important;
    margin-bottom: 14px !important;
    letter-spacing: -0.3px !important;
}
.dr-mypage .dr-res-card {
    border: 1px solid #eaeaea;
    border-radius: 16px;
    padding: 28px 32px;
    background: #fff;
    transition: all 0.3s ease;
    position: relative;
    overflow: hidden;
    box-shadow: 0 4px 20px rgba(0, 0, 0, 0.01);
}
.dr-mypage .dr-res-card:hover {
    border-color: #d1ebeb;
    box-shadow: 0 6px 24px rgba(0, 145, 145, 0.06);
    transform: translateY(-2px);
}
.dr-mypage .dr-res-card::before {
    content: '';
    position: absolute;
    left: 0;
    top: 0;
    bottom: 0;
    width: 5px;
    background: #e0e0e0;
}
.dr-mypage .dr-res-card.active-res::before {
    background: #009191;
}
.dr-mypage .dr-res-header {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-bottom: 20px;
    width: 100%;
}
.dr-mypage .dr-res-date {
    font-size: 16px;
    font-weight: 700;
    color: #111;
    display: flex;
    align-items: center;
    gap: 8px;
}
.dr-mypage .dr-res-date svg {
    width: 20px;
    height: 20px;
    stroke: #009191;
}
.dr-mypage .dr-res-badge {
    font-size: 13px;
    font-weight: 700;
    padding: 6px 14px;
    border-radius: 20px;
}
.dr-mypage .dr-res-badge.upcoming {
    background: rgba(0, 145, 145, 0.1);
    color: #009191;
}
.dr-mypage .dr-res-badge.done {
    background: #f4f4f4;
    color: #888;
}
.dr-mypage .dr-res-body h4 {
    font-size: 18px !important;
    font-weight: 700 !important;
    color: #222 !important;
    margin-bottom: 10px !important;
}
.dr-mypage .dr-res-body p {
    font-size: 14px;
    color: #666;
    display: flex;
    align-items: center;
    gap: 6px;
}
.dr-mypage .dr-res-body p svg {
    width: 15px;
    height: 15px;
    stroke: #999;
}
.dr-mypage .dr-empty-state {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    padding: 60px 20px;
    background: #fff;
    border-radius: 16px;
    border: 1px dashed #d9d9d9;
}
.dr-mypage .dr-empty-state svg {
    width: 48px;
    height: 48px;
    stroke: #ccc;
    margin-bottom: 16px;
}
.dr-mypage .dr-empty-state p {
    font-size: 16px;
    color: #777;
    margin-bottom: 24px;
    font-weight: 500;
}
.dr-mypage .dr-empty-btn {
    background: #009191;
    color: #fff;
    border: none;
    padding: 14px 40px;
    border-radius: 8px;
    font-size: 15px;
    font-weight: 700;
    cursor: pointer;
    transition: 0.3s ease;
    font-family: inherit;
}
.dr-mypage .dr-empty-btn:hover {
    background: #007a7a;
}

/* ===== TAB: WITHDRAW (회원탈퇴) ===== */
.dr-mypage .dr-withdraw-notice {
    background: #fff8f8;
    border: 1px solid #ffe8e8;
    border-radius: 12px;
    padding: 24px;
    margin-bottom: 24px;
}
.dr-mypage .dr-withdraw-notice h4 {
    color: #e53e3e !important;
    font-size: 16px !important;
    margin-bottom: 14px !important;
    display: flex !important;
    align-items: center !important;
    gap: 8px !important;
}
.dr-mypage .dr-withdraw-notice h4::before {
    content: '!';
    display: inline-flex;
    justify-content: center;
    align-items: center;
    width: 20px;
    height: 20px;
    background: #e53e3e;
    color: #fff;
    border-radius: 50%;
    font-size: 12px;
    font-weight: bold;
}
.dr-mypage .dr-withdraw-notice p {
    color: #e53e3e;
    font-size: 14px;
    line-height: 1.6;
    margin-bottom: 8px;
}
.dr-mypage .dr-withdraw-notice p:last-child {
    margin-bottom: 0;
}
/* 탈퇴 본인확인 안내 — 입력칸 바로 위 강조 */
.dr-mypage .dr-withdraw-confirm-guide {
    background: #fffbe6;
    border: 1px solid #ffe58f;
    border-left: 4px solid #faad14;
    border-radius: 8px;
    padding: 12px 14px;
    margin: 0 0 14px;
    color: #614700;
    font-size: 14px;
    line-height: 1.6;
    font-weight: 500;
}
.dr-mypage .dr-withdraw-confirm-guide strong {
    color: #ad6800;
    font-weight: 700;
}

/* ===== RESPONSIVE ===== */
@media (max-width: 1024px) {
    .dr-mypage { margin: 40px auto; }
    .dr-mypage .dr-wrap { flex-direction: column; gap: 16px; align-items: stretch; }
    .dr-mypage .dr-sidebar {
        width: 100%;
        height: auto;
        display: flex;
        flex-direction: column;
        padding: 16px 16px 12px 16px;
        box-shadow: 0 10px 30px rgba(0, 145, 145, 0.06);
        border: 1px solid #b1d4d4;
    }
    .dr-mypage .dr-sidebar h2 {
        order: 1;
        text-align: center;
        font-size: 20px;
        margin-bottom: 14px;
    }
    .dr-mypage .dr-sidebar-profile {
        order: 2;
        display: flex !important;
        flex-direction: row !important;
        justify-content: center !important;
        align-items: center !important;
        gap: 16px;
        margin-bottom: 14px;
        padding-bottom: 14px;
        border-bottom: 1px solid #eaeaea;
    }
    .dr-mypage .dr-sidebar-icon {
        width: 64px;
        height: 64px;
        background-size: 30px;
    }
    .dr-mypage .dr-sidebar-info {
        text-align: left;
        gap: 4px;
    }
    .dr-mypage .dr-sidebar-info h3 { font-size: 18px; }
    .dr-mypage .dr-sidebar-info span { font-size: 14px; }
    .dr-mypage .dr-sidebar-menu#dr-menu {
        order: 3;
        display: flex;
        flex-direction: row;
        flex-wrap: nowrap;
        overflow-x: visible;
        width: 100%;
        gap: 6px;
        margin-bottom: 15px;
        padding-bottom: 15px;
        border-bottom: 1px solid #eaeaea;
    }
    .dr-mypage .dr-sidebar-menu#dr-menu a {
        flex: 1;
        min-width: 0;
        white-space: nowrap;
        justify-content: center;
        text-align: center;
        padding: 8px 6px;
        font-size: 13px;
        border-radius: 8px;
    }
    .dr-mypage .dr-sidebar-menu#dr-menu a.active::after { display: none; }
    .dr-mypage .dr-sidebar-menu:not(#dr-menu) {
        order: 4;
        display: flex !important;
        width: 100%;
        justify-content: center !important;
        margin-bottom: 0;
        padding-bottom: 0;
        border-bottom: none;
    }
    .dr-mypage .dr-sidebar-menu .logout-btn {
        width: 100%;
        justify-content: center;
        padding: 8px 16px;
        font-size: 13px;
    }
    .dr-mypage .dr-content {
        width: 100%;
        padding: 30px 24px;
        box-shadow: 0 10px 30px rgba(0, 145, 145, 0.04);
        border: 1px solid #b1d4d4;
    }
    .dr-mypage .dr-tab-title {
        font-size: 18px;
        text-align: center;
        margin-bottom: 18px;
        padding-bottom: 12px;
    }
    .dr-mypage .dr-res-section h4 {
        font-size: 14px !important;
        text-align: center !important;
        margin-bottom: 12px !important;
    }
    .dr-mypage .dr-form-grid {
        grid-template-columns: 1fr;
        gap: 16px;
        width: 100%;
    }
    .dr-mypage .dr-form-group {
        display: flex !important;
        flex-direction: row !important;
        align-items: center !important;
        gap: 6px !important;
        width: 100% !important;
        max-width: none !important;
    }
    .dr-mypage .dr-form-group label {
        width: auto !important;
        min-width: 85px !important;
        margin-bottom: 0 !important;
        flex-shrink: 0;
        font-size: 13px;
        text-align: left !important;
        color: #333;
    }
    .dr-mypage .dr-form-group input {
        flex: 1 !important;
        width: 100% !important;
        max-width: none !important;
        height: 38px !important;
        font-size: 13px !important;
    }
    .dr-mypage .dr-form-group input::placeholder { font-size: 12px !important; }
    .dr-mypage .dr-submit {
        flex-direction: row !important;
        gap: 10px !important;
        width: 100%;
        margin-top: 30px;
    }
    .dr-mypage .dr-submit button {
        flex: 1 !important;
        width: 100% !important;
        max-width: none !important;
        height: 44px;
        font-size: 14px;
    }
    .dr-mypage .dr-res-list { width: 100%; }
    .dr-mypage .dr-res-card { padding: 22px 20px; width: 100%; }
    .dr-mypage .dr-res-header { margin-bottom: 16px; }
    .dr-mypage .dr-res-badge { align-self: auto; }
    .dr-mypage .dr-res-body h4 {
        font-size: 15px !important;
        text-align: left !important;
    }
    .dr-mypage .dr-withdraw-notice { padding: 16px; margin-bottom: 20px; }
    .dr-mypage .dr-withdraw-notice h4 { font-size: 15px !important; margin-bottom: 10px !important; }
    .dr-mypage .dr-withdraw-notice p {
        font-size: 13px;
        line-height: 1.4 !important;
        margin-bottom: 4px !important;
    }
    .dr-mypage .dr-withdraw-notice p:last-child { margin-bottom: 0 !important; }
}
@media (max-width: 600px) {
    .dr-mypage .dr-sidebar-menu#dr-menu { overflow-x: auto; }
    .dr-mypage .dr-sidebar-menu#dr-menu::-webkit-scrollbar { display: none; }
    .dr-mypage .dr-sidebar-menu#dr-menu a {
        flex: 0 0 auto;
        min-width: max-content;
        padding: 8px 14px;
    }
}
@media (max-width: 480px) {
    .dr-mypage { margin: 20px auto; padding: 10px; }
    .dr-mypage .dr-sidebar { padding: 16px 12px; }
    .dr-mypage .dr-content { padding: 24px 16px; }
    .dr-mypage .dr-res-card { padding: 18px 15px; }
    .dr-mypage .dr-res-date { font-size: 14px; }
    .dr-mypage .dr-res-badge { font-size: 12px; padding: 4px 10px; }
    .dr-mypage .dr-tab-title { font-size: 17px; text-align: center; }
    .dr-mypage .dr-form-group { gap: 6px !important; }
    .dr-mypage .dr-form-group label { min-width: 82px !important; font-size: 13px; }
}
