/* my — 회원·마이페이지·예약 상세/수정/취소/환불 (담당 my). 접두어 .my- 만, 색은 var(--토큰), 크기는 rem.
   site.css 의 .my-booking · .my-guest(홈)와 겹치지 않게 다른 이름을 쓴다. */

/* 틀: 본문 + 오른쪽 안내(모바일은 위아래) */
.my-grid { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 22.5rem); gap: var(--sp-5); align-items: start; }
.my-body { margin-top: var(--sp-5); }
.my-body.my-grid { margin-top: var(--sp-5); }
.my-aside { position: sticky; top: calc(var(--header-h) + var(--sp-4)); }
@media (max-width: 960px) {
  .my-grid { grid-template-columns: minmax(0, 1fr); }
  .my-aside { position: static; }
}
.my-tabs { margin-top: var(--sp-2); }
.my-2col { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.4fr); gap: var(--sp-4); }
.my-3col { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.4fr) minmax(0, 1fr); gap: var(--sp-3); }
@media (max-width: 760px) { .my-2col, .my-3col { grid-template-columns: minmax(0, 1fr); } }
.my-fs { min-width: 0; }
.my-fs[disabled] .input, .my-fs[disabled] .select, .my-fs[disabled] .textarea { background: var(--surface-2); color: var(--ink-3); cursor: not-allowed; }

/* 정보 목록 */
.my-kv { grid-template-columns: 7rem minmax(0, 1fr); }
.my-kv dd { overflow-wrap: anywhere; }
@media (max-width: 520px) { .my-kv { grid-template-columns: minmax(0, 1fr); } }
.my-price { color: var(--warm-ink); font-weight: 800; }
.my-big { font-size: var(--fs-h3); font-weight: 800; color: var(--ink); letter-spacing: -0.01em; overflow-wrap: anywhere; }

/* 목록: 요약 카드 · 필터 · 표/카드 */
.my-sum { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: var(--sp-3); margin-bottom: var(--sp-4); }
.my-sum .card { display: flex; flex-direction: column; gap: var(--sp-2); padding: var(--sp-4); }
.my-sum .card.is-on { border-color: var(--accent); box-shadow: 0 0 0 0.0625rem var(--accent); }
.my-sum-v { font-size: var(--fs-h3); font-weight: 800; }
.my-sum-v small { font-size: var(--fs-sm); font-weight: 650; color: var(--ink-3); margin-left: 0.125rem; }
@media (max-width: 560px) { .my-sum { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
.my-filters { display: flex; justify-content: space-between; align-items: center; gap: var(--sp-3); flex-wrap: wrap; }
.my-filters .chips { flex: 1 1 auto; }
.my-cnt { font-size: var(--fs-xs); opacity: .8; }
.my-sort .select { min-width: 11rem; }
.my-total { margin: var(--sp-3) 0; }
.my-only-m { display: none; }
@media (max-width: 760px) {
  .my-only-pc { display: none; }
  .my-only-m { display: grid; }
  .my-filters .chips { flex-wrap: nowrap; overflow-x: auto; padding-bottom: 0.25rem; scrollbar-width: none; max-width: 100%; }
  .my-sort, .my-sort .select { width: 100%; }
}
.my-cards { gap: var(--sp-3); }
.my-bcard { display: flex; flex-direction: column; gap: 0.375rem; padding: var(--sp-4); }
.my-bcard-row { display: flex; align-items: center; gap: 0.375rem; font-size: var(--fs-sm); flex-wrap: wrap; }
.my-bcard-row .ic { color: var(--ink-3); }
.my-bcard-go { display: inline-flex; align-items: center; gap: 0.25rem; color: var(--accent-ink); font-weight: 700; font-size: var(--fs-sm); margin-top: 0.25rem; }
.my-bcard .btn { align-self: flex-start; margin-top: 0.25rem; }
.my-help { display: flex; align-items: center; gap: var(--sp-4); flex-wrap: wrap; }
.my-help > div { flex: 1 1 16rem; }

/* 예약 상세 */
.my-partner { display: flex; gap: var(--sp-3); align-items: flex-start; }
.my-partner p + p { margin-top: 0.25rem; }
.my-wait { display: flex; gap: var(--sp-3); align-items: flex-start; }
.my-photos { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--sp-4); }
@media (max-width: 560px) { .my-photos { grid-template-columns: minmax(0, 1fr); } }
.my-ph { display: flex; flex-direction: column; gap: var(--sp-2); margin: 0; }
.my-ph img { width: 100%; aspect-ratio: 4 / 3; object-fit: cover; border-radius: var(--r-sm); border: 0.0625rem solid var(--line); background: var(--surface-2); }
.my-ph-list { display: grid; gap: var(--sp-2); }
.my-ph-list a { display: block; border-radius: var(--r-sm); }
.my-ph-empty { flex-direction: column; gap: 0.375rem; font-size: var(--fs-sm); font-weight: 650; }
.my-bar { display: block; width: 100%; margin-right: 0; }
.my-checks { display: grid; gap: 0.125rem; }
.my-checks li { display: grid; grid-template-columns: auto minmax(0, 1fr) auto; gap: var(--sp-2); align-items: center; padding: .55rem 0; border-bottom: 0.0625rem solid var(--line); font-size: var(--fs-sm); }
.my-checks li:last-child { border-bottom: 0; }
.my-checks .ic { color: var(--line-strong); }
.my-checks li.is-on .ic { color: var(--ok); }
.my-actions { padding-top: var(--sp-2); }
.my-actions [aria-disabled="true"] { opacity: .55; cursor: not-allowed; }
.my-pol { display: grid; gap: 0.125rem; }
.my-pol li { display: flex; justify-content: space-between; gap: var(--sp-3); padding: .55rem 0; border-bottom: 0.0625rem dashed var(--line); font-size: var(--fs-sm); }
.my-pol li:last-child { border-bottom: 0; }
.my-cs { background: var(--paper); }

/* 예약 수정: 시간대 · 예약금 재확인 */
.my-left { display: block; font-size: var(--fs-xs); font-weight: 600; opacity: .85; }
.my-2col .seg-opt span { flex-direction: column; gap: 0; padding: .4rem .6rem; }
.my-2col .seg-opt input:checked + span::before { display: none; }
.my-dep { display: grid; gap: var(--sp-2); }
.my-dep > div { display: flex; justify-content: space-between; gap: var(--sp-3); font-size: var(--fs-sm); }
.my-dep dt { color: var(--ink-3); }
.my-dep dd { font-weight: 700; }
.my-dep-total { border-top: 0.0625rem solid var(--line); padding-top: var(--sp-2); font-size: var(--fs-md) !important; }
.my-extra { padding: var(--sp-3); border-radius: var(--r-sm); background: var(--warm-soft); }

/* 환불 기준표 · 금액 */
.my-rtable .table { min-width: 0; }
.my-rtable th, .my-rtable td { padding: .6rem .7rem; font-size: var(--fs-sm); }
.my-rnow th, .my-rnow td { background: var(--accent-soft); font-weight: 750; }
.my-refund-box { border-color: var(--accent); }

/* 가입·찾기 */
.my-ig { flex-wrap: wrap; }
.my-ig .input { flex: 1 1 10rem; }
@media (max-width: 420px) { .my-ig .btn { width: 100%; } }
.my-ok { display: flex; align-items: center; gap: 0.25rem; color: var(--ok); font-weight: 700; }
.my-allagree { padding: var(--sp-3) var(--sp-4); border-radius: var(--r-sm); background: var(--accent-soft); }
.my-terms { display: grid; gap: 0; border: 0.0625rem solid var(--line); border-radius: var(--r-sm); }
.my-terms li { display: flex; align-items: center; justify-content: space-between; gap: var(--sp-2); flex-wrap: wrap; padding: 0 var(--sp-4); border-bottom: 0.0625rem solid var(--line); }
.my-terms li:last-child { border-bottom: 0; }
.my-terms .field-err { width: 100%; padding-bottom: var(--sp-2); }
.my-terms .link { min-height: var(--tap); display: inline-flex; align-items: center; }
.my-quick { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: var(--sp-3); }
.my-quick .card { display: flex; gap: var(--sp-3); align-items: center; padding: var(--sp-4); }
.my-quick .card > span:last-child { display: flex; flex-direction: column; }
.my-quick small { color: var(--ink-3); font-size: var(--fs-sm); }
@media (max-width: 640px) { .my-quick { grid-template-columns: minmax(0, 1fr); } }
.my-found { text-align: center; padding: var(--sp-5) var(--sp-4); border-radius: var(--r); background: var(--accent-soft); display: flex; flex-direction: column; align-items: center; gap: 0.375rem; }
.my-found .ico-box { background: var(--surface); }
.my-side { align-self: start; }
.my-side .card { background: var(--paper); }
.my-ol { display: grid; gap: var(--sp-2); padding-left: 1.25rem; list-style: decimal; font-size: var(--fs-sm); }
ul.my-ol { list-style: disc; }
.my-sent { margin-top: var(--sp-2); padding: var(--sp-3) var(--sp-4); border-radius: var(--r-sm); background: var(--ok-soft); color: var(--ink); display: grid; gap: var(--sp-2); font-size: var(--fs-sm); }
.my-status { padding: var(--sp-5) 0 0; }
.my-pwchips { display: flex; flex-wrap: wrap; gap: 0.375rem; }
.my-pwchips li { display: inline-flex; align-items: center; gap: 0.25rem; padding: 0.125rem 0.625rem; border-radius: var(--r-pill); background: var(--muted-soft); color: var(--muted); font-size: var(--fs-xs); font-weight: 700; }
.my-pwchips li .ic { opacity: .35; }
.my-pwchips li.is-ok { background: var(--ok-soft); color: var(--ok); }
.my-pwchips li.is-ok .ic { opacity: 1; }

/* 마이페이지 */
.my-recent-title { font-size: var(--fs-h4); margin-top: 0.125rem; }
.my-meta { display: grid; gap: 0.375rem; font-size: var(--fs-sm); }
.my-meta li { display: flex; align-items: center; gap: 0.375rem; flex-wrap: wrap; }
.my-meta .ic { color: var(--ink-3); }
.my-notis li { font-size: var(--fs-sm); flex-wrap: wrap; }
.my-notis li .ic { color: var(--ink-3); }
.my-notis li.is-new { background: var(--accent-soft); }
.my-notis li.is-new .ic { color: var(--accent-ink); }
.my-menu > li { padding: 0; }
.my-menu > li > a { display: flex; align-items: center; gap: var(--sp-3); width: 100%; padding: .75rem 1rem; min-height: 3.5rem; }
.my-menu > li > a:hover { background: var(--surface-3); }
.my-menu strong { display: block; }
.my-menu small { display: block; color: var(--ink-3); font-size: var(--fs-xs); }
.my-promise { display: grid; gap: var(--sp-3); }
.my-promise li { display: flex; gap: var(--sp-3); align-items: flex-start; font-size: var(--fs-sm); }
.my-promise li > .ic { color: var(--accent); margin-top: 0.125rem; }
.my-promise strong { display: block; }
.my-promise small { color: var(--ink-3); }

/* 알림 설정 */
.my-noti-list { display: grid; gap: 0; border: 0.0625rem solid var(--line); border-radius: var(--r-sm); }
.my-noti-row { display: flex; align-items: center; gap: var(--sp-3); padding: var(--sp-3) var(--sp-4); }
.my-noti-list .my-noti-row { border-bottom: 0.0625rem solid var(--line); }
.my-noti-list .my-noti-row:last-child { border-bottom: 0; }
.my-noti-row label { cursor: pointer; display: flex; flex-direction: column; gap: 0.125rem; }
.my-noti-row small { color: var(--ink-3); font-size: var(--fs-sm); }
.my-noti-all { border-radius: var(--r-sm); background: var(--accent-soft); }
.my-noti-form .switch { min-height: auto; }
@media (max-width: 420px) { .my-noti-row .ico-box { display: none; } }
.my-ph-empty { aspect-ratio: 16 / 7; }
