/* 「할인·금액권」 모달 본문 — 에디터 금액내역 · 결제페이지 공용 (2026-09-03 QA #1337 · #1338)
 *
 * card/benefit-modal-panels.php 와 한 쌍이다. 두 화면이 같은 마크업을 쓰므로 CSS 도 한 벌만 둔다.
 *
 * ⚠ 색·글자는 각 화면의 토큰을 그대로 쓴다. 값을 여기 박아 두면 화면마다 다른 디자인
 *   시스템 위에서 어긋난다. var() 두 번째 인자는 토큰이 없는 화면을 위한 안전값이다.
 *
 * ⚠ 탭 개수를 CSS 에 박지 않는다. 종전 두 화면 모두 repeat(2, ...) 로 고정돼 있어
 *   세 번째 탭(할인쿠폰)을 넣으면 레이아웃이 깨졌다. flex 는 개수에 무관하다.
 */

.bmp-tabs {
    display: flex;
    width: 100%;
    margin: 0;
    padding: 0 24px;
    border-bottom: 1px solid var(--line, #e5e5e4);
    box-sizing: border-box;
}

.bmp-tab {
    flex: 1 1 0;
    min-width: 0;
    min-height: 52px;
    padding: 0 4px;
    position: relative;
    border: 0;
    background: transparent;
    color: var(--sub, #6b6b68);
    font-size: 15px;
    font-weight: 600;
    line-height: 1.4;
    cursor: pointer;
    white-space: nowrap;
    text-overflow: ellipsis;
    overflow: hidden;
}

.bmp-tab[aria-selected="true"],
.bmp-tab.is-active {
    color: var(--ink, #18181a);
}

.bmp-tab[aria-selected="true"]::after,
.bmp-tab.is-active::after {
    content: "";
    position: absolute;
    right: 0;
    bottom: -1px;
    left: 0;
    height: 2px;
    background: var(--ink, #18181a);
}

.bmp-body {
    padding: 24px;
}

.bmp-panel[hidden] {
    display: none;
}

.bmp-head {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 20px;
    margin-bottom: 20px;
}

.bmp-head h3 {
    margin: 0;
    color: var(--ink, #18181a);
    font-size: 18px;
    font-weight: 600;
    line-height: 1.5;
}

.bmp-head p {
    margin: 4px 0 0;
    color: var(--sub, #6b6b68);
    font-size: 14px;
    line-height: 1.55;
    word-break: keep-all;
}

.bmp-detail {
    flex: 0 0 auto;
    min-height: 44px;
    padding: 10px 0;
    color: var(--sub, #6b6b68);
    font-size: 14px;
    text-decoration: underline;
    text-underline-offset: 3px;
}

/* ── 입력부 (추천인 ID · 금액권 코드) ───────────────────────────────── */

.bmp-field {
    display: block;
}

.bmp-label {
    display: block;
    margin: 0 0 8px;
    color: var(--ink, #18181a);
    font-size: 14px;
    font-weight: 600;
}

.bmp-inputwrap {
    display: flex;
    gap: 8px;
    align-items: stretch;
}

.bmp-input {
    flex: 1 1 auto;
    min-width: 0;
    min-height: 48px;
    padding: 0 14px;
    border: 1px solid var(--line, #e5e5e4);
    border-radius: var(--bj-control-radius, 8px);
    background: var(--card, #fff);
    color: var(--ink, #18181a);
    font-size: 15px;
    box-sizing: border-box;
}

.bmp-input:read-only {
    background: var(--bj-surface-muted, #f6f6f5);
    color: var(--sub, #6b6b68);
}

.bmp-apply {
    flex: 0 0 auto;
    min-width: 84px;
    min-height: 48px;
    padding: 0 18px;
    border: 0;
    border-radius: var(--bj-control-radius, 8px);
    background: var(--ink, #18181a);
    color: #fff;
    font-size: 15px;
    font-weight: 600;
    cursor: pointer;
}

.bmp-apply[disabled] {
    opacity: .45;
    cursor: default;
}

.bmp-msg {
    margin-top: 10px;
    color: var(--sub, #6b6b68);
    font-size: 13px;
    line-height: 1.5;
    min-height: 1em;
}

.bmp-msg.is-error {
    color: var(--bj-danger, #c8322b);
}

/* ── 할인쿠폰 패널 ──────────────────────────────────────────────────── */

.bmp-empty {
    margin: 0;
    padding: 24px 0;
    color: var(--sub, #6b6b68);
    font-size: 14px;
    text-align: center;
}

.bmp-loading {
    margin: 0;
    padding: 32px 0;
    color: var(--sub, #6b6b68);
    font-size: 14px;
    text-align: center;
}

.bmp-coupon-list {
    margin: 0;
    padding: 0;
    list-style: none;
    display: flex;
    flex-direction: column;
    gap: 16px;
}

.bmp-coupon-item {
    padding: 16px;
    border: 1px solid var(--line, #e5e5e4);
    border-radius: var(--bj-control-radius, 8px);
}

.bmp-coupon-title {
    margin-bottom: 10px;
    color: var(--ink, #18181a);
    font-size: 14px;
    font-weight: 600;
    line-height: 1.45;
    word-break: keep-all;
}

.bmp-coupon-pick {
    display: flex;
    align-items: center;
    gap: 10px;
}

.bmp-coupon-select {
    flex: 1 1 auto;
    min-width: 0;
    min-height: 44px;
    padding: 0 12px;
    border: 1px solid var(--line, #e5e5e4);
    border-radius: var(--bj-control-radius, 8px);
    background: var(--card, #fff);
    color: var(--ink, #18181a);
    font-size: 14px;
    box-sizing: border-box;
}

.bmp-coupon-dc {
    flex: 0 0 auto;
    color: var(--ink, #18181a);
    font-size: 14px;
    font-weight: 600;
    white-space: nowrap;
}

.bmp-coupon-none {
    color: var(--sub, #6b6b68);
    font-size: 14px;
}

.bmp-coupon-readonly {
    margin: 0;
    padding: 0;
    list-style: none;
    width: 100%;
    display: flex;
    flex-direction: column;
    gap: 8px;
}

.bmp-coupon-row {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    font-size: 14px;
}

.bmp-coupon-row .bmp-coupon-label {
    color: var(--ink, #18181a);
    word-break: keep-all;
}

.bmp-coupon-row.is-unusable .bmp-coupon-label,
.bmp-coupon-row.is-unusable .bmp-coupon-dc {
    color: var(--sub, #6b6b68);
    font-weight: 400;
}

.bmp-note {
    margin: 16px 0 0;
    color: var(--sub, #6b6b68);
    font-size: 13px;
    line-height: 1.55;
    word-break: keep-all;
}


/* 목록형에서 금액을 오른쪽에 붙이고 버튼을 그 뒤에 둔다. */
.bmp-coupon-readonly .bmp-coupon-label { flex: 1 1 auto; }
.bmp-coupon-readonly .bmp-coupon-dc    { flex: 0 0 auto; margin-right: 12px; }

@media (max-width: 767px) {
    .bmp-tabs { padding: 0 16px; }
    .bmp-body { padding: 20px 16px; }
    .bmp-tab  { font-size: 14px; }
    .bmp-coupon-pick { flex-wrap: wrap; }
    .bmp-coupon-dc   { width: 100%; text-align: right; }
}
