/*
 * 보드팩토리 테마 — 영카트 코어 화면 모양
 *
 * 장바구니, 주문서/결제, 주문 내역/상세, 마이페이지, 위시리스트, 개인결제, 쿠폰·배송지 새 창은
 * 스킨이 아니라 영카트 코어(shop/*.php, mobile/shop/*.php)가 직접 마크업을 출력한다.
 * 이 파일은 그 마크업의 아이디/클래스만 골라 보드팩토리 모양으로 다시 꾸민다.
 *
 * - 모든 규칙은 코어 화면의 아이디로 범위를 좁힌다 (다른 화면으로 새지 않게)
 * - default_shop.css / mobile_shop.css 다음에 불러오므로 같거나 높은 우선순위로 덮어쓴다
 *   (!important 는 코어가 !important 를 쓴 곳에만 쓴다)
 * - 결제(PG) 스크립트가 쓰는 폼, 숨은 입력, #display_pay_button / #display_pay_process, #settle_bank 등은
 *   숨기거나 display 를 바꾸지 않는다 (코어 스크립트가 style.display 로 켜고 끈다)
 * - .bfk 밖이므로 --bfk-* 대신 여기서 --bfs-* 변수를 정의해 쓴다
 * - PC 마크업(#sod_bsk.od_prd_list, #sod_frm.sod_frm_pc …)과 모바일 마크업(mobile/shop)은 클래스로 구분한다
 */

/* ======================================================================
 * 공통 변수
 * ==================================================================== */
#sod_bsk, #sod_frm, #forderform, #sod_v, #sod_fin, #smb_my, #sod_ws,
#coupon.new_win, #scp_list, #sod_addr, #personal_pay {
    --bfs-primary: var(--bf-color-primary, #0ea5e9);
    --bfs-primary-soft: color-mix(in srgb, var(--bfs-primary) 10%, transparent);
    --bfs-primary-line: color-mix(in srgb, var(--bfs-primary) 35%, transparent);
    --bfs-primary-dark: color-mix(in srgb, var(--bfs-primary) 85%, #000);
    --bfs-text: var(--bf-color-text, #1f2937);
    --bfs-muted: var(--bf-color-muted, #6b7280);
    --bfs-border: var(--bf-color-border, #e5e7eb);
    --bfs-bg: var(--bf-color-bg, #fff);
    --bfs-soft: var(--bf-color-bg-soft, #f7f8fa);
    --bfs-radius: var(--bf-radius, 6px);
    --bfs-radius-lg: calc(var(--bf-radius, 6px) * 1.5);
    --bfs-danger: #dc2626;
    --bfs-success: #16a34a;
    --bfs-warn: #d97706;
    --bfs-sticky-top: calc(var(--bf-header-height, 64px) + 16px);
    --bfs-check: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='%23fff' d='M9.5 15.6 19 6.1l1.6 1.6L9.5 18.8 3.4 12.7 5 11.1z'/%3E%3C/svg%3E");

    color: var(--bfs-text);
    font-family: var(--bf-font, inherit);
    word-break: keep-all;
}

:is(#sod_bsk, #sod_frm, #forderform, #sod_v, #sod_fin, #smb_my, #sod_ws, #sod_addr, #personal_pay) *,
:is(#sod_bsk, #sod_frm, #forderform, #sod_v, #sod_fin, #smb_my, #sod_ws, #sod_addr, #personal_pay) *::before,
:is(#sod_bsk, #sod_frm, #forderform, #sod_v, #sod_fin, #smb_my, #sod_ws, #sod_addr, #personal_pay) *::after { box-sizing: border-box; }

/* ======================================================================
 * 공통 버튼 / 입력
 * ==================================================================== */
:is(#sod_bsk, #sod_frm, #forderform, #sod_v, #sod_fin, #smb_my, #sod_ws, #sod_addr, #coupon, #scp_list) :is(.btn_submit, .btn01, .btn02, .btn_frmline, .btn_address, .btn_close, .btn_more, .mod_options, .cp_btn, .cp_apply, .cp_cancel, .mng_btn, .btn_sel) {
    display: inline-flex; align-items: center; justify-content: center; gap: 6px;
    min-height: 40px; height: auto; padding: 0 16px; margin: 0;
    border: 1px solid var(--bfs-border); border-radius: var(--bfs-radius);
    background-color: var(--bfs-bg); color: var(--bfs-text);
    font: inherit; font-size: .92rem; font-weight: 600; line-height: 1.2; text-decoration: none; white-space: nowrap;
    cursor: pointer; transition: background-color .15s, border-color .15s, color .15s; vertical-align: middle;
}
:is(#sod_bsk, #sod_frm, #forderform, #sod_v, #sod_fin, #smb_my, #sod_ws, #sod_addr, #coupon, #scp_list) :is(.btn01, .btn_frmline, .btn_address, .btn_close, .btn_more, .mod_options, .cp_btn, .cp_apply, .cp_cancel, .mng_btn, .btn_sel):hover {
    border-color: var(--bfs-primary); color: var(--bfs-primary); text-decoration: none;
}
:is(#sod_bsk, #sod_frm, #forderform, #sod_v, #sod_fin, #smb_my, #sod_ws, #sod_addr, #coupon, #scp_list) :is(.btn_submit, .btn02) {
    border-color: var(--bfs-primary); background-color: var(--bfs-primary); color: #fff;
}
:is(#sod_bsk, #sod_frm, #forderform, #sod_v, #sod_fin, #smb_my, #sod_ws, #sod_addr, #coupon, #scp_list) :is(.btn_submit, .btn02):hover {
    border-color: var(--bfs-primary-dark); background-color: var(--bfs-primary-dark); color: #fff;
}
:is(#sod_bsk, #sod_frm, #forderform, #sod_fin, #sod_addr) :is(.mod_options, .cp_btn, .cp_apply, .cp_cancel, .mng_btn, .btn_sel, .btn_frmline) { min-height: 32px; padding: 0 10px; font-size: .82rem; }
:is(#sod_bsk, #sod_frm, #forderform, #sod_v, #sod_fin, #smb_my, #sod_ws, #sod_addr) :focus-visible { outline: 2px solid var(--bfs-primary); outline-offset: 2px; }

:is(#sod_frm, #forderform, #sod_fin, #sod_addr) :is(.frm_input, input[type="text"], input[type="password"], input[type="email"], input[type="tel"], select, textarea) {
    min-height: 44px; height: auto; padding: 0 12px;
    border: 1px solid var(--bfs-border); border-radius: var(--bfs-radius);
    background-color: var(--bfs-bg); color: var(--bfs-text);
    font: inherit; font-size: .95rem; line-height: 1.4;
    transition: border-color .15s, box-shadow .15s;
}
:is(#sod_frm, #forderform, #sod_fin, #sod_addr) textarea { min-height: 96px; padding: 10px 12px; resize: vertical; }
:is(#sod_frm, #forderform, #sod_fin, #sod_addr) :is(.frm_input, input[type="text"], input[type="password"], input[type="email"], input[type="tel"], select, textarea):focus {
    outline: 0; border-color: var(--bfs-primary); box-shadow: 0 0 0 3px var(--bfs-primary-soft);
}
:is(#sod_frm, #forderform, #sod_fin, #sod_addr) :is(input[readonly]) { background-color: var(--bfs-soft); color: var(--bfs-muted); }
:is(#sod_frm, #forderform, #sod_fin, #sod_addr) .required { background-image: none; }
:is(#sod_bsk, #sod_frm, #forderform, #sod_ws, #sod_addr) :is(input[type="radio"], input[type="checkbox"]) { accent-color: var(--bfs-primary); }

/* 그누보드 꾸밈 체크박스 (.chk_box input + label span) */
:is(#sod_bsk, #sod_ws, #sod_addr, #forderform, #personal_pay) .chk_box input[type="checkbox"] + label span {
    top: 50%; width: 20px; height: 20px; margin-top: -10px;
    border: 1.5px solid #cbd2db; border-radius: 5px; background: var(--bfs-bg);
    transition: background-color .15s, border-color .15s;
}
:is(#sod_bsk, #sod_ws, #sod_addr, #forderform, #personal_pay) .chk_box input[type="checkbox"] + label { display: inline-block; min-height: 20px; padding-left: 28px; color: var(--bfs-muted); }
:is(#sod_bsk, #sod_ws, #sod_addr, #forderform, #personal_pay) .chk_box input[type="checkbox"]:checked + label span,
#sod_addr .td_sbj .chk_box input[type="checkbox"]:checked + label span {
    border-color: var(--bfs-primary); background: var(--bfs-primary) var(--bfs-check) center / 14px no-repeat;
}
:is(#sod_bsk, #sod_ws, #sod_addr, #forderform, #personal_pay) .chk_box input[type="checkbox"]:focus-visible + label span { outline: 2px solid var(--bfs-primary); outline-offset: 2px; }
:is(#forderform, #personal_pay) .chk_box input[type="radio"] + label span { border: 1.5px solid #cbd2db; }
:is(#forderform, #personal_pay) .chk_box input[type="radio"]:checked + label { color: var(--bfs-primary); }
:is(#forderform, #personal_pay) .chk_box input[type="radio"]:checked + label span { border-color: var(--bfs-primary); }
:is(#forderform, #personal_pay) .chk_box input[type="radio"]:checked + label span::before { background: var(--bfs-primary); }

/* 상태 표시 (주문 내역) */
:is(#sod_v, #smb_my, #sod_fin) :is(.status_01, .status_02, .status_03, .status_04, .status_05, .status_06) {
    display: inline-flex; align-items: center; height: 24px; padding: 0 9px; border-radius: 999px;
    background: var(--bfs-soft); color: var(--bfs-muted); font-size: .78rem; font-weight: 700; white-space: nowrap;
}
:is(#sod_v, #smb_my, #sod_fin) .status_01 { background: #fff7e6; color: var(--bfs-warn); }
:is(#sod_v, #smb_my, #sod_fin) :is(.status_02, .status_03) { background: var(--bfs-primary-soft); color: var(--bfs-primary-dark); }
:is(#sod_v, #smb_my, #sod_fin) .status_04 { background: #ede9fe; color: #6d28d9; }
:is(#sod_v, #smb_my, #sod_fin) .status_05 { background: #dcfce7; color: var(--bfs-success); }
:is(#sod_v, #smb_my, #sod_fin) .status_06 { background: #fee2e2; color: var(--bfs-danger); }

/* 공통 표 (그누보드 .tbl_head03 / .tbl_head01) */
:is(#sod_bsk, #sod_frm, #sod_v, #smb_my_od, #sod_addr) .tbl_wrap table {
    width: 100%; border-collapse: collapse; border-top: 2px solid var(--bfs-text); border-bottom: 0; background: var(--bfs-bg);
}
:is(#sod_bsk, #sod_frm, #sod_v, #smb_my_od, #sod_addr) .tbl_wrap thead th {
    padding: 12px 10px; border: 0; border-bottom: 1px solid var(--bfs-border); background: none;
    color: var(--bfs-muted); font-size: .85rem; font-weight: 600; letter-spacing: 0; text-align: center; white-space: nowrap;
}
:is(#sod_bsk, #sod_frm, #sod_v, #smb_my_od, #sod_addr) .tbl_wrap td {
    padding: 16px 12px; border: 0; border-bottom: 1px solid var(--bfs-border); background: var(--bfs-bg);
    color: var(--bfs-text); font-size: .92rem; line-height: 1.5; vertical-align: middle; word-break: keep-all; overflow-wrap: anywhere;
}
:is(#sod_bsk, #sod_frm, #sod_v, #smb_my_od, #sod_addr) .tbl_wrap td.empty_table { padding: 60px 20px; color: var(--bfs-muted); text-align: center; }
:is(#sod_bsk, #sod_frm, #sod_v, #smb_my_od) .tbl_wrap .text_right { text-align: right; }
:is(#sod_bsk, #sod_frm, #sod_v, #smb_my_od) .tbl_wrap :is(.td_num, .td_numbig, .td_dvr) { font-variant-numeric: tabular-nums; white-space: nowrap; }

/* 상품 칸 (장바구니, 주문서) */
:is(#sod_bsk.od_prd_list .tbl_wrap, #sod_frm .od_prd_list) td.td_prd { position: relative; min-height: 104px; padding: 16px 12px 16px 104px; text-align: left; }
:is(#sod_bsk.od_prd_list, #sod_frm .od_prd_list) .td_prd .sod_img { position: absolute; top: 16px; left: 12px; width: 76px; height: 76px; overflow: hidden; border-radius: var(--bfs-radius); background: var(--bfs-soft); }
:is(#sod_bsk.od_prd_list, #sod_frm .od_prd_list) .td_prd .sod_img img { display: block; width: 100%; height: 100%; object-fit: cover; }
:is(#sod_bsk.od_prd_list, #sod_frm .od_prd_list) .td_prd .sod_name { min-height: 76px; }
:is(#sod_bsk.od_prd_list, #sod_frm .od_prd_list) .td_prd .prd_name,
:is(#sod_bsk.od_prd_list, #sod_frm .od_prd_list) .td_prd .sod_name > b { color: var(--bfs-text); font-size: 1rem; font-weight: 700; text-decoration: none; }
:is(#sod_bsk.od_prd_list, #sod_frm .od_prd_list) .td_prd .prd_name:hover { color: var(--bfs-primary); }
:is(#sod_bsk.od_prd_list, #sod_frm .od_prd_list) .sod_opt { margin: 6px 0 0; }
:is(#sod_bsk.od_prd_list, #sod_frm .od_prd_list) .sod_opt ul { display: flex; flex-wrap: wrap; gap: 4px; margin: 0; padding: 0; list-style: none; }
:is(#sod_bsk.od_prd_list, #sod_frm .od_prd_list) .sod_opt li {
    margin: 0; padding: 2px 8px; border: 0; border-radius: var(--bfs-radius); background: var(--bfs-soft);
    color: var(--bfs-muted); font-size: .8rem; line-height: 1.6;
}
:is(#sod_bsk.od_prd_list, #sod_frm .od_prd_list) .sod_option_btn { margin-top: 8px; }
:is(#sod_bsk.od_prd_list, #sod_frm .od_prd_list) :is(.total_prc, .total_price) { color: var(--bfs-text); font-size: 1rem; font-weight: 800; }

/* ======================================================================
 * 장바구니 — PC 마크업 (shop/cart.php)
 * ==================================================================== */
#sod_bsk.od_prd_list { margin-bottom: 40px; }
#sod_bsk.od_prd_list #sod_bsk_list {
    display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: stretch; column-gap: 0;
}
#sod_bsk.od_prd_list #sod_bsk_list > .tbl_wrap { grid-column: 1 / -1; margin: 0 0 20px; }
#sod_bsk.od_prd_list .chk_box { width: 48px; text-align: center; }
#sod_bsk.od_prd_list .chk_box label { vertical-align: middle; }
#sod_bsk.od_prd_list .btn_cart_del { display: flex; flex-wrap: wrap; gap: 6px; padding: 14px 0; border: 0; }
#sod_bsk.od_prd_list .btn_cart_del button {
    display: inline-flex; align-items: center; height: 34px; padding: 0 12px;
    border: 1px solid var(--bfs-border); border-radius: var(--bfs-radius); background: var(--bfs-bg);
    color: var(--bfs-muted); font: inherit; font-size: .85rem; font-weight: 600; cursor: pointer;
}
#sod_bsk.od_prd_list .btn_cart_del button:hover { border-color: var(--bfs-danger); color: var(--bfs-danger); }

/* 합계 + 주문 버튼: 화면 아래에 붙어 따라오는 요약 막대 */
#sod_bsk #sod_bsk_tot,
#sod_bsk.od_prd_list #sod_bsk_act { position: sticky; bottom: 0; z-index: 20; }
#sod_bsk #sod_bsk_tot {
    grid-column: 1; margin: 0; padding: 14px 20px;
    border: 1px solid var(--bfs-border); border-right: 0; border-radius: var(--bfs-radius-lg) 0 0 var(--bfs-radius-lg);
    background: var(--bfs-bg); box-shadow: 0 -6px 20px rgba(15, 23, 42, .06);
}
#sod_bsk #sod_bsk_tot ul { display: flex; flex-wrap: wrap; align-items: flex-end; gap: 8px 32px; margin: 0; padding: 0; list-style: none; }
#sod_bsk #sod_bsk_tot ul::after { display: none; }
#sod_bsk #sod_bsk_tot li {
    float: none; width: auto; margin: 0; padding: 0; border: 0; background: none;
    color: var(--bfs-text); font-size: .92rem; text-align: left;
}
#sod_bsk #sod_bsk_tot li span { display: block; float: none; margin: 0 0 2px; color: var(--bfs-muted); font-size: .8rem; font-weight: 600; }
#sod_bsk #sod_bsk_tot li strong { font-size: 1.05rem; font-weight: 800; font-variant-numeric: tabular-nums; }
#sod_bsk #sod_bsk_tot .sod_bsk_cnt { width: auto; margin-left: auto; background: none; text-align: right; }
#sod_bsk #sod_bsk_tot .sod_bsk_cnt strong { color: var(--bfs-primary); font-size: 1.45rem; }

#sod_bsk.od_prd_list #sod_bsk_act {
    grid-column: 2; display: flex; flex-wrap: wrap; align-items: center; justify-content: flex-end; gap: 8px;
    align-self: stretch; margin: 0; padding: 14px 20px;
    border: 1px solid var(--bfs-border); border-left: 0; border-radius: 0 var(--bfs-radius-lg) var(--bfs-radius-lg) 0;
    background: var(--bfs-bg); box-shadow: 0 -6px 20px rgba(15, 23, 42, .06); text-align: right;
}
#sod_bsk.od_prd_list #sod_bsk_act :is(.btn01, .btn_submit) { width: auto; min-height: 48px; padding: 0 22px; font-size: 1rem; line-height: 1.2; }
#sod_bsk.od_prd_list #sod_bsk_act .btn_submit { min-width: 150px; }
#sod_bsk.od_prd_list #sod_bsk_act p { flex-basis: 100%; margin: 0; color: var(--bfs-muted); font-size: .85rem; }
#sod_bsk.od_prd_list .cart-naverpay { flex-basis: 100%; }

/* 선택사항 수정 창 (장바구니 PC/모바일 공통, 코어 JS 가 #sod_bsk_list 안에 만든다) */
#sod_bsk #mod_option_frm {
    overflow: auto; border: 0; border-radius: var(--bfs-radius-lg); background: var(--bfs-bg);
    box-shadow: 0 24px 60px rgba(15, 23, 42, .25);
}
#sod_bsk #sod_bsk_list .mod_option_bg { background: rgba(15, 23, 42, .45); }
#sod_bsk #mod_option_frm h2 { padding: 0 20px; border-bottom: 1px solid var(--bfs-border); font-size: 1.05rem; font-weight: 800; }

/* ======================================================================
 * 장바구니 — 모바일 마크업 (mobile/shop/cart.php)
 * ==================================================================== */
#sod_bsk:not(.od_prd_list) { padding-bottom: 90px; }
#sod_bsk #sod_chk { margin: 0 0 10px; padding: 10px 2px; }
#sod_bsk .sod_list { display: grid; gap: 12px; margin: 0; padding: 0; list-style: none; }
#sod_bsk .sod_list .sod_li { margin: 0; overflow: hidden; border: 1px solid var(--bfs-border); border-radius: var(--bfs-radius-lg); background: var(--bfs-bg); }
#sod_bsk .sod_list .li_op_wr { padding: 14px 14px 0 124px; min-height: 104px; }
#sod_bsk .sod_list .li_op_wr .chk_box { top: 14px; left: 12px; }
#sod_bsk .sod_list .total_img { top: 14px; left: 40px; width: 72px; height: 72px; overflow: hidden; border-radius: var(--bfs-radius); background: var(--bfs-soft); }
#sod_bsk .sod_list .total_img img { display: block; width: 100%; height: 100%; object-fit: cover; }
#sod_bsk .sod_list .li_name { font-size: .95rem; font-weight: 700; }
#sod_bsk .sod_list .li_name a { color: var(--bfs-text); }
#sod_bsk .sod_list .sod_opt { padding: 6px 14px 0; color: var(--bfs-muted); font-size: .8rem; }
#sod_bsk .sod_list .sod_opt ul { margin: 0; padding: 0; list-style: none; }
#sod_bsk .sod_list .li_prqty { margin-top: 10px; padding: 10px 14px; border-top: 1px solid var(--bfs-border); }
#sod_bsk .sod_list .li_prqty_sp { color: var(--bfs-text); font-size: .85rem; }
#sod_bsk .sod_list .li_prqty_sp span { color: var(--bfs-muted); }
#sod_bsk .sod_list .prqty_sc, #sod_bsk .sod_list .prqty_price { border-right-color: var(--bfs-border); }
#sod_bsk .sod_list .total_price { margin: 0 14px 14px; padding: 8px 12px; border-radius: var(--bfs-radius); background: var(--bfs-primary-soft); }
#sod_bsk .sod_list .total_price strong { color: var(--bfs-primary-dark); font-weight: 800; }
#sod_bsk .sod_list .empty_list { padding: 60px 20px; color: var(--bfs-muted); text-align: center; }
#sod_bsk .btn_del_wr { display: flex; gap: 6px; margin: 12px 0; }
#sod_bsk .btn_del_wr .btn01 { min-height: 34px; font-size: .85rem; }
#sod_bsk .go_shopping { margin: 12px 0; }
#sod_bsk .go_shopping .btn01 { width: 100%; min-height: 46px; }
#sod_bsk .sod_ta_wr { margin: 12px 0; }
#sod_bsk #m_sod_bsk_tot { overflow: hidden; margin: 0; border: 1px solid var(--bfs-border); border-radius: var(--bfs-radius-lg); background: var(--bfs-bg); color: var(--bfs-text); }
#sod_bsk #m_sod_bsk_tot dt { color: var(--bfs-muted); }
#sod_bsk #m_sod_bsk_tot .sod_bsk_cnt { margin-top: 0; border-top: 1px solid var(--bfs-border); background: var(--bfs-primary-soft); }
#sod_bsk #m_sod_bsk_tot dd.sod_bsk_cnt strong { color: var(--bfs-primary-dark); font-size: 1.2rem; font-weight: 800; }
#sod_bsk:not(.od_prd_list) #sod_bsk_act { border-top: 1px solid var(--bfs-border); box-shadow: 0 -6px 20px rgba(15, 23, 42, .08); }
#sod_bsk:not(.od_prd_list) #sod_bsk_act .total { color: var(--bfs-muted); }
#sod_bsk:not(.od_prd_list) #sod_bsk_act .total strong { color: var(--bfs-primary-dark); font-weight: 800; }
#sod_bsk:not(.od_prd_list) #sod_bsk_act .btn_submit { width: 100%; min-height: 46px; }

/* ======================================================================
 * 주문서 작성 — PC 마크업 (shop/orderform.sub.php)
 * ==================================================================== */
#sod_frm.sod_frm_pc { margin-bottom: 40px; }
#sod_frm .od_prd_list { margin-bottom: 28px; }
#sod_frm #sod_list .cp_btn { margin-top: 8px; }
#sod_frm .sod_left { float: left; width: calc(100% - 364px); margin: 0 24px 0 0; }
#sod_frm .sod_right { float: left; width: 340px; height: auto; }

/* 주문하시는 분 / 받으시는 분 */
#sod_frm :is(#sod_frm_orderer, #sod_frm_taker) { margin: 0 0 20px; overflow: hidden; border: 1px solid var(--bfs-border); border-radius: var(--bfs-radius-lg); background: var(--bfs-bg); }
#sod_frm :is(#sod_frm_orderer, #sod_frm_taker) h2 { margin: 0; padding: 16px 20px; border-bottom: 1px solid var(--bfs-border); background: var(--bfs-soft); font-size: 1.05rem; font-weight: 800; }
#sod_frm div.tbl_frm01, #sod_frm_taker div.tbl_frm01 { margin: 0; padding: 8px 20px 12px !important; }
#sod_frm .tbl_frm01 table { border: 0; }
#sod_frm .tbl_frm01 th, #sod_frm .tbl_frm01 td { padding: 10px 0; border: 0; background: none; line-height: 1.5; vertical-align: top; }
#sod_frm .tbl_frm01 th { width: 110px; padding: 20px 12px 10px 0; color: var(--bfs-text); font-size: .9rem; font-weight: 700; }
#sod_frm .tbl_frm01 td .frm_input,
#sod_frm #od_name, #sod_frm #od_tel, #sod_frm #od_hp, #sod_frm #od_pwd, #sod_frm #od_b_name, #sod_frm #od_b_tel, #sod_frm #od_b_hp, #sod_frm #ad_subject, #sod_frm #od_hope_date {
    width: 100%; max-width: 320px;
}
#sod_frm #od_zip, #sod_frm #od_b_zip { width: 120px; max-width: none; }
#sod_frm .tbl_frm01 td .frm_address { max-width: none; margin: 6px 0 0; }
#sod_frm .tbl_frm01 td br { display: none; }
#sod_frm .tbl_frm01 td .btn_address {
    width: auto; height: auto; min-height: 44px; margin-left: 6px;
    border-color: var(--bfs-text); background-color: var(--bfs-text); color: #fff;
}
#sod_frm .tbl_frm01 td .btn_address:hover { border-color: var(--bfs-primary); background-color: var(--bfs-primary); color: #fff; }
#sod_frm .tbl_frm01 .frm_info { display: block; margin: 0 0 6px; color: var(--bfs-muted); font-size: .82rem; }
#sod_frm #od_memo { width: 100%; min-height: 100px; }
#sod_frm_orderer #od_addr_jibeon, #sod_frm_taker #od_b_addr_jibeon { display: block; margin: 6px 0 0; color: var(--bfs-muted); font-size: .82rem; }
#sod_frm_taker .order_choice_place {
    display: flex; flex-wrap: wrap; align-items: center; gap: 8px 14px; padding: 12px 120px 12px 14px;
    border: 1px solid var(--bfs-primary-line); border-radius: var(--bfs-radius); background: var(--bfs-primary-soft); line-height: 1.5;
}
#sod_frm_taker .order_choice_place label { margin: 0 6px 0 4px; font-size: .9rem; }
#sod_frm_taker td input[type="radio"], #sod_frm_taker td input[type="checkbox"] { width: 16px; height: 16px; margin: 0; vertical-align: -2px; }
#sod_frm_taker .tbl_frm01 .btn_frmline { position: absolute; top: 50%; right: 12px; width: auto; height: auto; transform: translateY(-50%); }
#sod_frm_taker label[for="ad_default"] { margin-left: 4px; font-size: .88rem; }

/* 오른쪽: 금액 요약 */
#sod_frm .sod_right #sod_bsk_tot { margin: 0 0 16px; overflow: hidden; border: 1px solid var(--bfs-border); border-radius: var(--bfs-radius-lg); background: var(--bfs-bg); }
#sod_frm #sod_bsk_tot ul { margin: 0; padding: 6px 18px; list-style: none; }
#sod_frm #sod_bsk_tot ul::after, #sod_frm #sod_bsk_tot::after { display: none; }
#sod_frm #sod_bsk_tot li {
    display: grid; grid-template-columns: minmax(0, 1fr) auto auto; align-items: baseline; gap: 4px;
    float: none; width: auto; height: auto; padding: 10px 0; border: 0; border-bottom: 1px dashed var(--bfs-border);
    background: none; line-height: 1.4; text-align: right;
}
#sod_frm #sod_bsk_tot li[class]::before, #sod_frm #sod_bsk_tot li[class]::after { content: none; display: none; }
#sod_frm #sod_bsk_tot li span { display: block; float: none; margin: 0; color: var(--bfs-muted); font-size: .9rem; font-weight: 600; text-align: left; }
#sod_frm #sod_bsk_tot li strong { color: var(--bfs-text); font-size: 1rem; font-weight: 700; font-variant-numeric: tabular-nums; }
#sod_frm #sod_bsk_tot .sod_bsk_coupon strong { color: var(--bfs-danger); }
#sod_frm #sod_bsk_tot .sod_bsk_point, #sod_frm #sod_bsk_tot .sod_bsk_cnt { clear: none; width: auto; height: auto; padding: 10px 0; line-height: 1.4; }
#sod_frm #sod_bsk_tot li.sod_bsk_cnt { margin: 6px -18px -6px; padding: 16px 18px; border: 0; background: var(--bfs-primary-soft); }
#sod_frm #sod_bsk_tot li.sod_bsk_cnt span { color: var(--bfs-text); font-weight: 800; }
#sod_frm #sod_bsk_tot li.sod_bsk_cnt strong { color: var(--bfs-primary-dark); font-size: 1.4rem; font-weight: 800; }

/* 오른쪽: 결제 정보 */
#sod_frm #sod_frm_pay { margin: 0 0 16px; }
#sod_frm .sod_right .pay_tbl { overflow: hidden; border: 1px solid var(--bfs-border); border-bottom: 0; border-radius: var(--bfs-radius-lg) var(--bfs-radius-lg) 0 0; }
#sod_frm_pay .pay_tbl th { width: 96px; padding: 12px 14px; border-bottom: 1px solid var(--bfs-border); background: var(--bfs-bg); color: var(--bfs-muted); font-size: .88rem; font-weight: 600; }
#sod_frm_pay .pay_tbl td { height: auto; padding: 12px 14px; border-bottom: 1px solid var(--bfs-border); background: var(--bfs-bg); font-size: .88rem; }
#sod_frm_pay .pay_tbl td strong { font-weight: 800; }
#sod_frm_pay .pay_tbl td .btn_frmline { height: auto; margin-left: 6px; border-color: var(--bfs-primary-line); color: var(--bfs-primary); line-height: 1.2; }
#sod_frm .sod_right #od_tot_price, #sod_frm #od_tot_price {
    display: flex; align-items: baseline; justify-content: flex-end; gap: 4px; margin: 0; padding: 16px;
    border: 1px solid var(--bfs-border); border-radius: 0 0 var(--bfs-radius-lg) var(--bfs-radius-lg); background: var(--bfs-primary-soft); line-height: 1.3;
}
#sod_frm #od_tot_price span { margin-right: auto; float: none; font-weight: 800; }
#sod_frm #od_tot_price strong { color: var(--bfs-primary-dark); font-size: 1.5rem; font-weight: 800; font-variant-numeric: tabular-nums; }

/* 결제 수단 고르기 (라벨만 꾸민다. 결제사 로고 배경 이미지는 그대로 둔다) */
#sod_frm #od_pay_sl h3 { margin: 22px 0 10px; font-size: 1rem; font-weight: 800; }
#sod_frm #sod_frm_pt_alert { margin: 0 0 10px; padding: 10px 12px; border-radius: var(--bfs-radius); background: #fff7e6; color: #8a5300; font-size: .82rem; }
#sod_frm #sod_frm_paysel { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; margin: 0; padding: 0; border: 0; }
#sod_frm #od_pay_sl input[type="radio"] { position: absolute; width: 1px; height: 1px; margin: 0; overflow: hidden; visibility: visible; opacity: 0; }
#sod_frm #od_pay_sl .lb_icon {
    display: inline-flex; flex-direction: column; align-items: center; justify-content: center; float: none;
    width: auto; height: auto; min-height: 56px; margin: 0; padding: 8px 10px;
    border: 1px solid var(--bfs-border); border-radius: var(--bfs-radius); background-color: var(--bfs-bg);
    color: var(--bfs-text); font-size: .88rem; font-weight: 600; line-height: 1.3; text-align: center;
    cursor: pointer; transition: border-color .15s, background-color .15s, box-shadow .15s;
}
#sod_frm #od_pay_sl .lb_icon:hover { border-color: var(--bfs-primary-line); }
#sod_frm #od_pay_sl input[type="radio"]:checked + .lb_icon {
    border-color: var(--bfs-primary); background-color: var(--bfs-primary-soft); color: var(--bfs-primary-dark);
    box-shadow: inset 0 0 0 1px var(--bfs-primary);
}
#sod_frm #od_pay_sl input[type="radio"]:focus-visible + .lb_icon { outline: 2px solid var(--bfs-primary); outline-offset: 2px; }

#sod_frm_pay .sod_frm_point { margin-top: 12px; overflow: hidden; border: 1px solid var(--bfs-border); border-radius: var(--bfs-radius-lg); }
#sod_frm_pay .sod_frm_point div { padding: 12px 14px; background: var(--bfs-bg); }
#sod_frm_pay .sod_frm_point div label { line-height: 44px; font-size: .88rem; }
#sod_frm_pay .sod_frm_point #od_temp_point { width: 110px; min-height: 40px; text-align: right; }
#sod_frm_pay #sod_frm_pt { padding: 10px 14px; border-top: 1px solid var(--bfs-border); background: var(--bfs-soft); font-size: .85rem; }
#sod_frm_pay #sod_frm_pt strong { color: var(--bfs-muted); font-weight: 600; }
#sod_frm_pay #sod_frm_pt span { color: var(--bfs-text); }
#sod_frm #settle_bank { margin-top: 12px; padding: 12px 14px; border: 1px solid var(--bfs-border); border-radius: var(--bfs-radius-lg); background: var(--bfs-bg); line-height: 1.5; }
#sod_frm #settle_bank label { line-height: 44px; font-size: .88rem; }
#sod_frm #settle_bank :is(select, input) { width: 70%; min-height: 40px; margin: 0 0 6px; border-color: var(--bfs-border); }
#sod_frm #settle_bank br { display: none; }

/* 주문하기 버튼 (PG 별 orderform.3.php). display 는 코어 스크립트가 바꾸므로 건드리지 않는다 */
:is(#sod_frm, #forderform) #display_pay_button {
    margin: 0; padding: 16px; border: 1px solid var(--bfs-border); border-radius: var(--bfs-radius-lg); background: var(--bfs-bg);
}
:is(#sod_frm, #forderform) #display_pay_button :is(.btn_submit, .btn01) { width: 100%; min-height: 52px; margin: 0; font-size: 1.05rem; line-height: 1.2; }
:is(#sod_frm, #forderform) #display_pay_button .btn01 { min-height: 44px; margin-top: 8px; border-color: var(--bfs-border); color: var(--bfs-muted); font-size: .92rem; }
:is(#sod_frm, #forderform) #display_pay_process { padding: 24px 16px; border: 1px solid var(--bfs-border); border-radius: var(--bfs-radius-lg); background: var(--bfs-bg); color: var(--bfs-muted); text-align: center; }
#sod_frm #sod_frm_escrow { margin: 16px 0 0; padding: 14px; border-radius: var(--bfs-radius); background: var(--bfs-soft); color: var(--bfs-muted); font-size: .85rem; }

/* 쿠폰 적용 창 (코어 JS 가 주문서 안에 띄운다) */
#sod_frm .od_coupon, #sod_frm_pay #sc_coupon_frm, #sod_frm_pay #od_coupon_frm, #sod_list #cp_frm {
    max-width: calc(100vw - 32px); border: 1px solid var(--bfs-border); border-radius: var(--bfs-radius-lg);
    background: var(--bfs-bg); box-shadow: 0 24px 60px rgba(15, 23, 42, .22);
}
#sod_frm .od_coupon h3 { margin: 0 0 12px; padding: 0 60px 0 20px; border-bottom: 1px solid var(--bfs-border); box-shadow: none; font-size: 1.05rem; font-weight: 800; line-height: 52px; }
#sod_frm .od_coupon .btn_close { top: 0; right: 0; width: 52px; height: 52px; min-height: 0; padding: 0; border: 0; border-radius: 0 var(--bfs-radius-lg) 0 0; background: none; color: var(--bfs-muted); font-size: 1.1rem; }
#sod_frm .od_coupon .btn_close:hover { background: var(--bfs-soft); }
#sod_frm .od_coupon .tbl_head02 { margin: 0 20px 20px; }
#sod_frm .od_coupon th, #sod_frm_pay .od_coupon th { padding: 8px; border: 0; border-bottom: 1px solid var(--bfs-border); background: var(--bfs-soft); color: var(--bfs-muted); font-size: .82rem; font-weight: 600; }
#sod_frm .od_coupon td, #sod_frm_pay .od_coupon td { padding: 10px 8px; border: 0; border-bottom: 1px solid var(--bfs-border); font-size: .88rem; }
#sod_frm .od_coupon .cp_apply { border-color: var(--bfs-primary-line); color: var(--bfs-primary); }

/* ======================================================================
 * 주문서 작성 — 모바일 마크업 (mobile/shop/orderform.sub.php): 공통 입력/버튼만 맞춘다
 * ==================================================================== */
#sod_frm.sod_frm_mobile h2 { font-weight: 800; }
#sod_frm.sod_frm_mobile .frm_input { width: 100%; }
#m_sod_frm_paysel .lb_icon { border-radius: var(--bfs-radius, 6px); }
#m_sod_frm_paysel input[type="radio"]:checked + .lb_icon { color: var(--bf-color-primary, #0ea5e9); }

/* ======================================================================
 * 개인결제 (shop/personalpayform.sub.php)
 * ==================================================================== */
#forderform .pesonal.sod_left { float: left; width: calc(100% - 364px); margin: 0 24px 40px 0; overflow: hidden; border: 1px solid var(--bfs-border); border-radius: var(--bfs-radius-lg); background: var(--bfs-bg); }
#forderform .pesonal h2, #personal_pay > h2 { margin: 0; padding: 16px 20px; border-bottom: 1px solid var(--bfs-border); background: var(--bfs-soft); font-size: 1.05rem; font-weight: 800; }
#forderform .pesonal .tbl_frm01 { margin: 0; padding: 8px 20px 16px; }
#forderform .pesonal .tbl_frm01 table { border: 0; }
#forderform .pesonal .tbl_frm01 th { width: auto; padding: 14px 0 6px; border: 0; background: none; font-size: .9rem; font-weight: 700; }
#forderform .pesonal .tbl_frm01 td { padding: 0 8px 6px 0; border: 0; background: none; }
#forderform .pesonal .tbl_frm01 .frm_input { width: 100%; }
#forderform #personal_pay.sod_right { float: left; width: 340px; margin-bottom: 40px; overflow: hidden; border: 1px solid var(--bfs-border); border-radius: var(--bfs-radius-lg); background: var(--bfs-bg); }
#personal_pay #sod_frm_paysel { margin: 0; padding: 12px 16px; border: 0; }
#personal_pay #sod_frm_paysel ul.pay_way { display: grid; gap: 8px; margin: 0; padding: 0; }
#personal_pay #sod_frm_paysel li { padding: 4px 0; line-height: 1.8; }
#personal_pay #display_pay_button { border-width: 1px 0 0; border-radius: 0; }

/* ======================================================================
 * 주문 내역 목록 (shop/orderinquiry.php, 마이페이지 최근 주문) / 모바일 #sod_inquiry
 * ==================================================================== */
#sod_v { margin-bottom: 40px; }
:is(#sod_v, #smb_my_od) .tbl_wrap td a { color: var(--bfs-primary-dark); font-weight: 700; text-decoration: none; }
:is(#sod_v, #smb_my_od) .tbl_wrap td a:hover { text-decoration: underline; }
#sod_v .pg_wrap { display: flex; justify-content: center; float: none; clear: both; margin: 28px 0 0; }
#sod_v .pg { display: flex; flex-wrap: wrap; justify-content: center; gap: 4px; }
#sod_v :is(.pg_page, .pg_current) {
    display: inline-flex; align-items: center; justify-content: center; min-width: 36px; height: 36px; padding: 0 8px;
    border: 1px solid var(--bfs-border); border-radius: var(--bfs-radius); background: var(--bfs-bg);
    color: var(--bfs-text); font-size: .88rem; font-weight: 600; line-height: 1; text-indent: 0; text-decoration: none;
}
#sod_v .pg_page:hover { border-color: var(--bfs-primary); color: var(--bfs-primary); }
#sod_v .pg_current { border-color: var(--bfs-primary); background: var(--bfs-primary); color: #fff; }
#sod_v :is(.pg_start, .pg_prev, .pg_next, .pg_end) { width: auto; background-image: none; font-size: .82rem; }

/* 모바일 마크업 */
#sod_v #sod_v_info { margin: 0 0 14px; padding: 12px 14px; border-radius: var(--bfs-radius); background: var(--bfs-primary-soft); color: var(--bfs-text); font-size: .88rem; font-weight: 500; }
#sod_v #sod_v_info::before { content: none; }
:is(#sod_v, #smb_my) #sod_inquiry ul { display: grid; gap: 10px; margin: 0; padding: 0; list-style: none; }
:is(#sod_v, #smb_my) #sod_inquiry li { margin: 0; padding: 14px; border: 1px solid var(--bfs-border); border-radius: var(--bfs-radius-lg); background: var(--bfs-bg); }
:is(#sod_v, #smb_my) #sod_inquiry .idtime_link { color: var(--bfs-primary-dark); font-weight: 800; }
:is(#sod_v, #smb_my) #sod_inquiry .idtime_time { color: var(--bfs-muted); font-size: .82rem; }
:is(#sod_v, #smb_my) #sod_inquiry .inquiry_price { font-weight: 800; }
:is(#sod_v, #smb_my) #sod_inquiry .empty_list { padding: 50px 20px; color: var(--bfs-muted); text-align: center; }

/* ======================================================================
 * 주문 상세 (shop/orderinquiryview.php)
 * ==================================================================== */
#sod_fin { margin-bottom: 40px; }
#sod_fin::after { display: block; clear: both; content: ""; }
#sod_fin #sod_fin_no {
    margin: 0 0 20px; padding: 16px 20px; border: 1px solid var(--bfs-primary-line); border-radius: var(--bfs-radius-lg);
    background: var(--bfs-primary-soft); color: var(--bfs-text); font-size: 1rem;
}
#sod_fin #sod_fin_no strong { margin-left: 6px; color: var(--bfs-primary-dark); font-weight: 800; }
#sod_fin #sod_fin_list h2, #sod_fin #sod_fin_list h3 { margin: 0 0 10px; font-size: 1.05rem; font-weight: 800; }
#sod_fin #sod_fin_list .tbl_wrap { overflow-x: auto; margin: 0 0 12px; }
#sod_fin #sod_fin_list .tbl_wrap table { min-width: 640px; border-collapse: collapse; border-top: 2px solid var(--bfs-text); }
#sod_fin #sod_fin_list th { padding: 10px 8px; border: 0; border-bottom: 1px solid var(--bfs-border); background: none; color: var(--bfs-muted); font-size: .82rem; font-weight: 600; }
#sod_fin #sod_fin_list td { padding: 12px 8px; border: 0; border-bottom: 1px solid var(--bfs-border); background: var(--bfs-bg); font-size: .9rem; }
#sod_fin #sod_fin_list .td_imgsmall img { width: 64px; height: 64px; border-radius: var(--bfs-radius); object-fit: cover; }
#sod_fin #sod_fin_list .td_bdno a { color: var(--bfs-text); font-weight: 700; }
#sod_fin #sod_sts_wrap { margin: 0 0 20px; }
#sod_fin #sod_fin_legend { padding: 12px 16px; border: 1px solid var(--bfs-border); border-radius: var(--bfs-radius); background: var(--bfs-soft); font-size: .85rem; }

#sod_fin .sod_left { float: left; width: calc(100% - 364px); margin: 0 24px 0 0; }
#sod_fin .sod_right { float: left; width: 340px; height: auto; }
#sod_fin .sod_left section { margin: 0 0 20px; overflow: hidden; border: 1px solid var(--bfs-border); border-radius: var(--bfs-radius-lg); background: var(--bfs-bg); }
#sod_fin .sod_left h3 { margin: 0; padding: 14px 18px; border: 0; border-bottom: 1px solid var(--bfs-border); background: var(--bfs-soft); font-size: 1rem; font-weight: 800; }
#sod_fin .sod_left .tbl_wrap { margin: 0; }
#sod_fin .sod_left .tbl_wrap table { border: 0; }
#sod_fin .sod_left th { width: 120px; padding: 11px 18px; border: 0; border-top: 1px solid var(--bfs-border); background: none; color: var(--bfs-muted); font-size: .88rem; font-weight: 600; }
#sod_fin .sod_left td { height: auto; padding: 11px 18px; border: 0; border-top: 1px solid var(--bfs-border); background: none; color: var(--bfs-text); font-size: .9rem; }
#sod_fin .sod_left tr:first-child :is(th, td) { border-top: 0; }
#sod_fin .sod_left .tbl_head01 tbody tr:hover td { background: none; }
#sod_fin #sod_fin_dvr .dvr_link { color: var(--bfs-primary-dark); }

#sod_fin #sod_bsk_tot { margin: 0 0 16px; padding: 6px 18px; overflow: hidden; border: 1px solid var(--bfs-border); border-radius: var(--bfs-radius-lg); background: var(--bfs-bg); list-style: none; }
#sod_fin #sod_bsk_tot li {
    display: flex; align-items: baseline; justify-content: space-between; gap: 10px;
    height: auto; padding: 10px 0; border: 0; border-bottom: 1px dashed var(--bfs-border); background: none; line-height: 1.4;
}
#sod_fin #sod_bsk_tot li:last-child { border-bottom: 0; }
#sod_fin #sod_bsk_tot li span { float: none; color: var(--bfs-muted); font-size: .9rem; }
#sod_fin #sod_bsk_tot li strong { font-weight: 700; font-variant-numeric: tabular-nums; }
#sod_fin #sod_bsk_tot .sod_bsk_cnt strong { color: var(--bfs-primary-dark); font-size: 1.3rem; font-weight: 800; }
#sod_fin #sod_fin_tot { margin: 0 0 16px; }
#sod_fin #sod_fin_tot ul { overflow: hidden; border-radius: var(--bfs-radius-lg); }
#sod_fin #sod_fin_tot li { padding: 12px 18px; border-bottom: 1px solid var(--bfs-primary-line); background: var(--bfs-primary-soft); color: var(--bfs-text); font-weight: 600; }
#sod_fin #sod_fin_tot strong { color: var(--bfs-primary-dark); font-weight: 800; }
#sod_fin #sod_fin_tot #alrdy { border-bottom: 0 !important; }
#sod_fin #sod_fin_tot #alrdy .right { color: var(--bfs-muted); }
#sod_fin #sod_fin_cancel > button { min-height: 46px; height: auto; border: 1px solid var(--bfs-border); border-radius: var(--bfs-radius); background: var(--bfs-bg); color: var(--bfs-danger); font-weight: 700; cursor: pointer; }
#sod_fin #sod_fin_cancel > button:hover { border-color: var(--bfs-danger); background: #fef2f2; }
#sod_fin #sod_fin_cancel > p { padding: 12px; border-radius: var(--bfs-radius); background: var(--bfs-soft); color: var(--bfs-muted); font-size: .85rem; }
#sod_fin #sod_fin_cancelfrm { padding: 14px 0 0; background: none; }
#sod_fin #sod_fin_cancelfrm .btn_frmline { width: 100%; min-height: 44px; border-color: var(--bfs-danger); background-color: var(--bfs-danger); color: #fff; }

/* 요약이 짧은 주문 상세는 오른쪽 요약을 따라오게 한다 (화면이 충분히 높을 때만) */
@media (min-width: 1025px) and (min-height: 760px) {
    #sod_fin .sod_right { position: sticky; top: var(--bfs-sticky-top); }
}

/* ======================================================================
 * 마이페이지 (shop/mypage.php · mobile/shop/mypage.php)
 * ==================================================================== */
#smb_my { margin-bottom: 40px; }
#smb_my #smb_my_ov {
    display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: center; gap: 14px 20px;
    margin: 0 0 32px; padding: 20px 22px; border: 1px solid var(--bfs-border); border-radius: var(--bfs-radius-lg); background: var(--bfs-bg);
}
#smb_my #smb_my_ov .my_ov_name { display: flex; align-items: center; gap: 10px; padding: 0; border: 0; background: none; font-size: 1.2rem; font-weight: 800; line-height: 1.3; }
#smb_my #smb_my_ov .my_ov_name img { width: 44px; height: 44px; border-radius: 50%; object-fit: cover; }
#smb_my #smb_my_ov .cou_pt { position: static; display: grid; grid-template-columns: auto auto; gap: 4px 14px; margin: 0; padding: 10px 16px; border-radius: var(--bfs-radius); background: var(--bfs-soft); }
#smb_my #smb_my_ov .cou_pt dt { float: none; width: auto; color: var(--bfs-muted); font-size: .88rem; line-height: 1.6; }
#smb_my #smb_my_ov .cou_pt dd { float: none; width: auto; margin: 0; padding: 0; font-size: .88rem; line-height: 1.6; text-align: right; }
#smb_my #smb_my_ov .cou_pt dd a { color: var(--bfs-primary-dark); font-size: 1rem; font-weight: 800; }
#smb_my #smb_my_act { position: static; grid-column: 1 / -1; }
#smb_my #smb_my_act ul { display: flex; flex-wrap: wrap; gap: 6px; float: none; }
#smb_my #smb_my_act li { float: none; margin: 0; }
#smb_my #smb_my_act li a { min-height: 34px; padding: 0 12px; font-size: .85rem; line-height: 1.2; }
#smb_my #smb_my_act li .btn_admin { display: inline-flex; align-items: center; height: auto; min-height: 34px; padding: 0 12px; border-radius: var(--bfs-radius); background: var(--bfs-text); color: #fff; font-size: .85rem; font-weight: 600; text-decoration: none; }
#smb_my #smb_my_ov .op_area {
    grid-column: 1 / -1; display: grid; grid-template-columns: max-content minmax(0, 1fr) max-content minmax(0, 1fr); gap: 8px 16px;
    margin: 0; padding: 14px 16px; border: 0; border-radius: var(--bfs-radius); background: var(--bfs-soft); color: var(--bfs-text); font-size: .88rem; line-height: 1.5;
}
#smb_my #smb_my_ov .op_area::after { display: none; }
#smb_my #smb_my_ov .op_area dt { float: none; width: auto; margin: 0; color: var(--bfs-muted); font-weight: 600; }
#smb_my #smb_my_ov .op_area dd { float: none; width: auto; margin: 0; }
#smb_my #smb_my_ovaddd { grid-column: 2 / -1; width: auto !important; }
#smb_my #smb_my_ov .my_ov_btn { grid-column: 1 / -1; margin-top: -6px; text-align: center; }
#smb_my #smb_my_ov .btn_op_area { display: inline-flex; align-items: center; justify-content: center; width: 40px; height: 28px; border: 1px solid var(--bfs-border); border-radius: 999px; background: var(--bfs-bg); color: var(--bfs-muted); cursor: pointer; }
#smb_my :is(#smb_my_od, #smb_my_wish) { position: relative; margin: 0 0 40px; }
#smb_my :is(#smb_my_od, #smb_my_wish) > h2 { margin: 0 0 12px; padding: 0; border: 0; font-size: 1.2rem; font-weight: 800; }
#smb_my :is(#smb_my_od, #smb_my_wish) > h2 a { color: inherit; }
#smb_my .smb_my_more { position: absolute; top: 0; right: 0; }
#smb_my .smb_my_more a { display: inline-flex; align-items: center; gap: 2px; color: var(--bfs-muted); font-size: .88rem; font-weight: 600; text-decoration: none; }
#smb_my .smb_my_more a::after { content: "\203A"; font-size: 1.2em; line-height: 1; }
#smb_my .smb_my_more a:hover { color: var(--bfs-primary); }
#smb_my #smb_my_wish .list_02 ul { display: grid; grid-template-columns: repeat(auto-fill, minmax(160px, 1fr)); gap: 18px; margin: 0; padding: 0; list-style: none; }
#smb_my #smb_my_wish .list_02 ul::after { display: none; }
#smb_my #smb_my_wish .list_02 li { float: none; width: auto; margin: 0; padding: 0; border: 0; background: none; }
#smb_my #smb_my_wish .list_02 .smb_my_img { float: none; margin: 0 0 8px; overflow: hidden; border-radius: var(--bfs-radius-lg); background: var(--bfs-soft); aspect-ratio: 1 / 1; }
#smb_my #smb_my_wish .list_02 .smb_my_img img { display: block; width: 100%; height: 100%; object-fit: cover; }
#smb_my #smb_my_wish .smb_my_tit { margin: 0 0 2px; font-size: .92rem; font-weight: 700; }
#smb_my #smb_my_wish .smb_my_tit a { color: var(--bfs-text); text-decoration: none; }
#smb_my #smb_my_wish .smb_my_date { color: var(--bfs-muted); font-size: .8rem; }
#smb_my #smb_my_wish .empty_li { grid-column: 1 / -1; padding: 50px 20px; border-radius: var(--bfs-radius-lg); background: var(--bfs-soft); color: var(--bfs-muted); text-align: center; }

/* 모바일 마크업 (my_info 는 코어 스크립트가 펼치고 접으므로 display 를 건드리지 않는다) */
#smb_my #smb_my_ov .my_name { grid-column: 1 / -1; display: block; padding: 0 0 0 58px; border: 0; background: none; font-size: 1.05rem; min-height: 44px; }
#smb_my #smb_my_ov .profile_img { top: 20px; left: 22px; }
#smb_my #smb_my_ov .smb_my_act { position: static; display: flex; gap: 6px; margin-top: 8px; }
#smb_my #smb_my_ov .smb_my_act li a { min-height: 32px; padding: 0 10px; font-size: .82rem; }
#smb_my #smb_my_ov .my_pocou { grid-column: 1 / -1; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; margin: 0; padding: 0; background: none; }
#smb_my #smb_my_ov .my_pocou::after { display: none; }
#smb_my #smb_my_ov .my_pocou li { float: none; width: auto; padding: 12px 14px; border: 0; border-radius: var(--bfs-radius); background: var(--bfs-soft); }
#smb_my #smb_my_ov .my_info { grid-column: 1 / -1; margin: 0; padding: 4px 0 0; border: 0; background: none; }
#smb_my #smb_my_ov .my_info_wr { border-bottom-color: var(--bfs-border); }
#smb_my #smb_my_ov .my_info_wr strong { color: var(--bfs-muted); }
#smb_my #smb_my_ov .my_ov_btn button { width: auto; padding: 4px 12px; border: 1px solid var(--bfs-border); border-radius: 999px; font-size: .85rem; }
#smb_my .btn_more { display: flex; width: auto; height: auto; margin: 12px 0 0; background-color: var(--bfs-soft); color: var(--bfs-muted); }
#smb_my .wishlist ul { display: grid; gap: 10px; margin: 0; padding: 0; list-style: none; }
#smb_my .wishlist li { display: flex; align-items: center; gap: 12px; padding: 10px; border: 1px solid var(--bfs-border); border-radius: var(--bfs-radius-lg); }
#smb_my .wishlist .wish_img { flex-shrink: 0; width: 64px; height: 64px; overflow: hidden; border-radius: var(--bfs-radius); }
#smb_my .wishlist .wish_img img { width: 100%; height: 100%; object-fit: cover; }
#smb_my .wishlist .info_link { display: block; color: var(--bfs-text); font-weight: 700; }
#smb_my .wishlist .info_date { color: var(--bfs-muted); font-size: .8rem; }
#smb_my .wishlist .empty_list { justify-content: center; padding: 40px 20px; color: var(--bfs-muted); }

/* ======================================================================
 * 위시리스트 (shop/wishlist.php · mobile/shop/wishlist.php)
 * ==================================================================== */
#sod_ws { margin-bottom: 40px; }
#sod_ws .list_02 ul { display: grid; grid-template-columns: repeat(auto-fill, minmax(190px, 1fr)); gap: 20px; margin: 0; padding: 0; list-style: none; }
#sod_ws .list_02 ul::after { display: none; }
#sod_ws .list_02 li { position: relative; float: none; width: auto; margin: 0; overflow: hidden; border: 1px solid var(--bfs-border); border-radius: var(--bfs-radius-lg); background: var(--bfs-bg); }
#sod_ws .list_02 .sod_ws_img { width: auto; overflow: hidden; background: var(--bfs-soft); aspect-ratio: 1 / 1; }
#sod_ws .list_02 .sod_ws_img img { display: block; width: 100%; height: 100%; object-fit: cover; }
#sod_ws li .wish_info { position: static; height: auto; margin: 0; padding: 12px 14px 14px; border: 0; }
#sod_ws li .wish_chk {
    top: 10px; left: 10px; width: auto; min-width: 32px; height: 32px; padding: 6px; border-radius: var(--bfs-radius);
    background: rgba(255, 255, 255, .92); box-shadow: 0 2px 8px rgba(15, 23, 42, .12); color: var(--bfs-danger); font-size: .8rem; font-weight: 700; line-height: 20px;
}
#sod_ws li .wish_chk .chk_box input[type="checkbox"] + label { padding-left: 20px; }
#sod_ws li .info_link { margin: 0 0 4px; color: var(--bfs-text); font-size: .95rem; font-weight: 700; text-decoration: none; }
#sod_ws li .info_link:hover { color: var(--bfs-primary); }
#sod_ws li .info_date { color: var(--bfs-muted); font-size: .8rem; }
#sod_ws li .wish_del {
    top: 10px; right: 10px; display: inline-flex; align-items: center; justify-content: center; width: 32px; height: 32px;
    border-radius: var(--bfs-radius); background: rgba(255, 255, 255, .92); box-shadow: 0 2px 8px rgba(15, 23, 42, .12);
    color: var(--bfs-muted); font-size: 1rem; line-height: 1; text-decoration: none;
}
#sod_ws li .wish_del:hover { background: var(--bfs-danger); color: #fff; }
#sod_ws .list_02 .empty_table { grid-column: 1 / -1; padding: 60px 20px; border: 0; border-radius: var(--bfs-radius-lg); background: var(--bfs-soft); color: var(--bfs-muted); text-align: center; }
#sod_ws #sod_ws_act { display: flex; flex-wrap: wrap; justify-content: center; gap: 8px; margin: 28px 0 0; }
#sod_ws #sod_ws_act button { float: none; width: auto; min-width: 160px; min-height: 50px; height: auto; font-size: 1rem; }

/* 모바일 마크업 */
#sod_ws #wish_li { display: grid; gap: 10px; margin: 0; padding: 0; list-style: none; }
#sod_ws #wish_li li { min-height: 96px; border: 1px solid var(--bfs-border); border-radius: var(--bfs-radius-lg); }
#sod_ws #wish_li .wish_img { left: 44px; width: 72px; height: 72px; margin-top: -36px; border-radius: var(--bfs-radius); }
#sod_ws #wish_li .wish_img img { width: 100%; height: 100%; object-fit: cover; }
#sod_ws #wish_li .wish_info { padding: 12px 48px 12px 128px; min-height: 96px; }
#sod_ws #wish_li .wish_chk { top: 50%; left: 8px; margin-top: -16px; background: none; box-shadow: none; }
#sod_ws #wish_li .wish_prd { color: var(--bfs-text); font-size: .95rem; }
#sod_ws #wish_li .info_price { color: var(--bfs-text); font-weight: 800; }
#sod_ws #wish_li .sold_out { background: var(--bfs-danger); }
#sod_ws #wish_li .wish_del { top: 10px; right: 10px; bottom: auto; background: none; box-shadow: none; }
#sod_ws #wish_li .wish_del a { color: var(--bfs-muted); }
#sod_ws #wish_li .empty_table { padding: 50px 20px; color: var(--bfs-muted); text-align: center; }
#sod_ws #wish_li ~ #sod_ws_act button { flex: 1; min-width: 0; }

/* ======================================================================
 * 새 창: 쿠폰 목록 (shop/coupon.php #coupon · mobile #scp_list)
 * ==================================================================== */
:is(#coupon.new_win, #scp_list) { min-height: 100vh; padding-bottom: 24px; background: var(--bfs-soft); text-align: left; }
:is(#coupon.new_win, #scp_list) #win_title { height: auto; margin: 0 0 16px; padding: 16px 20px; border-bottom: 1px solid var(--bfs-border); background: var(--bfs-bg); box-shadow: none; font-size: 1.15rem; font-weight: 800; line-height: 1.4; }
:is(#coupon.new_win, #scp_list) > ul { display: grid; gap: 10px; margin: 0; padding: 0 16px; list-style: none; }
:is(#coupon.new_win, #scp_list) > ul > li {
    position: relative; padding: 16px 18px 16px 22px; border: 1px solid var(--bfs-border); border-radius: var(--bfs-radius-lg);
    background: var(--bfs-bg);
}
:is(#coupon.new_win, #scp_list) > ul > li::before { content: ""; position: absolute; top: 12px; bottom: 12px; left: 0; width: 4px; border-radius: 0 4px 4px 0; background: var(--bfs-primary); }
:is(#coupon.new_win, #scp_list) .cou_top { display: flex; align-items: baseline; justify-content: space-between; gap: 10px; margin: 0 0 10px; }
:is(#coupon.new_win, #scp_list) .cou_tit { font-size: 1rem; font-weight: 800; }
:is(#coupon.new_win, #scp_list) .cou_pri { position: static; float: none; color: var(--bfs-primary-dark); font-size: 1.2rem; font-weight: 800; white-space: nowrap; }
:is(#coupon.new_win, #scp_list) .cou_target { display: inline-block; padding: 3px 8px; border-radius: var(--bfs-radius); background: var(--bfs-primary-soft); color: var(--bfs-primary-dark); font-size: .8rem; }
:is(#coupon.new_win, #scp_list) .cou_date { float: right; color: var(--bfs-muted); font-size: .8rem; line-height: 26px; }
:is(#coupon.new_win, #scp_list) :is(.empty_li, .empty_list)::before { content: none; }
:is(#coupon.new_win, #scp_list) :is(.empty_li, .empty_list) { padding: 50px 20px; color: var(--bfs-muted); text-align: center; }
:is(#coupon.new_win, #scp_list) .btn_close { display: flex; margin: 20px auto 0; min-width: 120px; }

/* ======================================================================
 * 새 창: 배송지 목록 (shop/orderaddress.php · mobile)
 * ==================================================================== */
#sod_addr.new_win { min-height: 100vh; padding-bottom: 24px; background: var(--bfs-bg); }
#sod_addr #win_title { height: auto; margin: 0 0 16px; padding: 16px 20px; border-bottom: 1px solid var(--bfs-border); box-shadow: none; font-size: 1.15rem; font-weight: 800; line-height: 1.4; }
#sod_addr .tbl_wrap { margin: 0 16px; overflow-x: auto; }
#sod_addr td { height: auto; vertical-align: top; }
#sod_addr .td_sbj { text-align: left; }
#sod_addr .td_sbj .chk_box { float: none; display: inline-block; margin: 0 6px 6px 0; vertical-align: middle; }
#sod_addr .frm_input, #sod_addr .ad_subject { width: 100%; min-height: 36px; height: auto; }
#sod_addr .td_address { text-align: left; }
#sod_addr .ad_tel, #sod_addr .addr_tel { color: var(--bfs-muted); font-size: .82rem; }
#sod_addr .td_mng { display: table-cell; }
#sod_addr .td_mng .mng_btn, #sod_addr .td_mng .default_lb { display: flex; width: 100%; margin: 0 0 4px; }
#sod_addr .td_mng .del_address:hover { border-color: var(--bfs-danger); color: var(--bfs-danger); }
#sod_addr .default_lb, #sod_addr .add_lb {
    align-items: center; justify-content: center; height: auto; min-height: 32px; padding: 0 10px;
    border: 1px solid var(--bfs-primary-line); border-radius: var(--bfs-radius); background: var(--bfs-bg); color: var(--bfs-primary-dark); font-size: .82rem; font-weight: 600; cursor: pointer;
}
#sod_addr input[type="radio"]:checked + :is(.default_lb, .add_lb) { border-color: var(--bfs-primary); background: var(--bfs-primary); color: #fff; }
#sod_addr .win_btn { display: flex; justify-content: center; gap: 8px; margin: 20px 16px 0; }
#sod_addr .win_btn :is(.btn_submit, .btn_close) { min-width: 110px; }

/* 모바일 마크업 */
#sod_addr .list_01 ul { display: grid; gap: 10px; margin: 0; padding: 0 16px; list-style: none; }
#sod_addr .list_01 li { overflow: hidden; border: 1px solid var(--bfs-border); border-radius: var(--bfs-radius-lg); }
#sod_addr .list_01 .addr_title { display: flex; align-items: center; gap: 8px; padding: 10px 12px; border-bottom: 1px solid var(--bfs-border); background: var(--bfs-soft); }
#sod_addr .list_01 .addr_title .ad_subject { flex: 1; border: 1px solid var(--bfs-border); border-radius: var(--bfs-radius); }
#sod_addr .list_01 .addr_btn { display: flex; gap: 6px; }
#sod_addr .list_01 .addr_btn :is(.sel_address, .del_address, .add_lb) { display: inline-flex; align-items: center; justify-content: center; flex: 1; float: none; width: auto; height: auto; min-height: 34px; margin: 0; border-radius: var(--bfs-radius); }
#sod_addr .list_01 .addr_btn .sel_address { border-color: var(--bfs-text); color: var(--bfs-text); }

/* ======================================================================
 * 태블릿 이하: 좌우 단을 위아래로
 * ==================================================================== */
@media (max-width: 1024px) {
    #sod_frm .sod_left, #sod_frm .sod_right,
    #sod_fin .sod_left, #sod_fin .sod_right,
    #forderform .pesonal.sod_left, #forderform #personal_pay.sod_right { float: none; width: auto; margin-right: 0; }
}

/* ======================================================================
 * 모바일 (768px 이하): PC 마크업의 표를 카드로
 * ==================================================================== */
@media (max-width: 768px) {
    /* 장바구니 표 → 상품 카드 */
    #sod_bsk.od_prd_list #sod_bsk_list { grid-template-columns: minmax(0, 1fr); }
    #sod_bsk.od_prd_list .tbl_wrap :is(table, thead, tbody, tr, td) { display: block; width: auto; }
    #sod_bsk.od_prd_list .tbl_wrap table { border-top: 0; }
    #sod_bsk.od_prd_list .tbl_wrap thead tr { display: flex; align-items: center; padding: 6px 0 10px; border-bottom: 1px solid var(--bfs-border); }
    #sod_bsk.od_prd_list .tbl_wrap thead th { display: none; }
    #sod_bsk.od_prd_list .tbl_wrap thead th.chk_box { display: block; width: auto; padding: 0; border: 0; text-align: left; }
    #sod_bsk.od_prd_list .tbl_wrap thead th.chk_box label::after { content: "전체 선택"; color: var(--bfs-text); font-size: .9rem; font-weight: 600; }
    #sod_bsk.od_prd_list .tbl_wrap tbody tr { position: relative; display: grid; grid-template-columns: minmax(0, 1fr); margin: 12px 0 0; padding: 4px 14px 10px; border: 1px solid var(--bfs-border); border-radius: var(--bfs-radius-lg); }
    #sod_bsk.od_prd_list .tbl_wrap tbody td { display: flex; justify-content: space-between; gap: 10px; padding: 7px 0; border: 0; font-size: .88rem; text-align: right; }
    #sod_bsk.od_prd_list .tbl_wrap tbody td::before { color: var(--bfs-muted); font-weight: 600; text-align: left; }
    #sod_bsk.od_prd_list .tbl_wrap tbody td.td_chk { position: absolute; top: 18px; left: 12px; z-index: 2; width: auto; padding: 0; }
    #sod_bsk.od_prd_list .tbl_wrap tbody td.td_prd { display: block; min-height: 96px; padding: 14px 0 12px 116px; margin-bottom: 4px; border-bottom: 1px solid var(--bfs-border); text-align: left; }
    #sod_bsk.od_prd_list .td_prd .sod_img { top: 14px; left: 30px; width: 72px; height: 72px; }
    #sod_bsk.od_prd_list .td_prd .sod_name { min-height: 0; }
    #sod_bsk.od_prd_list .tbl_wrap tbody td:nth-child(3)::before { content: "수량"; }
    #sod_bsk.od_prd_list .tbl_wrap tbody td:nth-child(4)::before { content: "판매가"; }
    #sod_bsk.od_prd_list .tbl_wrap tbody td:nth-child(5)::before { content: "포인트"; }
    #sod_bsk.od_prd_list .tbl_wrap tbody td:nth-child(6)::before { content: "배송비"; }
    #sod_bsk.od_prd_list .tbl_wrap tbody td:nth-child(7)::before { content: "소계"; }
    #sod_bsk.od_prd_list .tbl_wrap tbody td.empty_table { display: block; text-align: center; }
    #sod_bsk #sod_bsk_tot { grid-column: 1; position: static; border: 1px solid var(--bfs-border); border-radius: var(--bfs-radius-lg); box-shadow: none; }
    #sod_bsk #sod_bsk_tot ul { gap: 8px 20px; }
    #sod_bsk #sod_bsk_tot .sod_bsk_cnt { flex-basis: 100%; margin: 4px 0 0; padding-top: 10px; border-top: 1px solid var(--bfs-border); }
    #sod_bsk.od_prd_list #sod_bsk_act { grid-column: 1; margin-top: 10px; padding: 10px 0; border: 0; border-radius: 0; box-shadow: 0 -8px 12px -8px rgba(15, 23, 42, .12); }
    #sod_bsk.od_prd_list #sod_bsk_act :is(.btn01, .btn_submit) { flex: 1; min-width: 0; }

    /* 주문서 상품 표 → 카드 */
    #sod_frm .od_prd_list :is(table, thead, tbody, tr, td) { display: block; width: auto; }
    #sod_frm .od_prd_list table { border-top: 0; }
    #sod_frm .od_prd_list thead { display: none; }
    #sod_frm .od_prd_list tbody tr { margin: 0 0 10px; padding: 0 14px 8px; border: 1px solid var(--bfs-border); border-radius: var(--bfs-radius-lg); }
    #sod_frm .od_prd_list tbody td { display: flex; justify-content: space-between; gap: 10px; padding: 6px 0; border: 0; font-size: .88rem; text-align: right; }
    #sod_frm .od_prd_list tbody td::before { color: var(--bfs-muted); font-weight: 600; }
    #sod_frm .od_prd_list tbody td.td_prd { display: block; padding: 14px 0 12px 88px; margin-bottom: 4px; border-bottom: 1px solid var(--bfs-border); text-align: left; }
    #sod_frm .od_prd_list .td_prd .sod_img { top: 14px; left: 0; width: 72px; height: 72px; }
    #sod_frm .od_prd_list .td_prd .sod_name { min-height: 72px; }
    #sod_frm .od_prd_list tbody td:nth-child(2)::before { content: "수량"; }
    #sod_frm .od_prd_list tbody td:nth-child(3)::before { content: "판매가"; }
    #sod_frm .od_prd_list tbody td:nth-child(4)::before { content: "옵션가"; }
    #sod_frm .od_prd_list tbody td:nth-child(5)::before { content: "소계"; }
    #sod_frm .od_prd_list tbody td:nth-child(6)::before { content: "포인트"; }
    #sod_frm .od_prd_list tbody td:nth-child(7)::before { content: "배송비"; }

    /* 입력 표: 이름표 위, 입력 아래 */
    #sod_frm .tbl_frm01 :is(table, tbody, tr, th, td) { display: block; width: auto; }
    #sod_frm .tbl_frm01 th { width: auto; padding: 12px 0 4px; }
    #sod_frm .tbl_frm01 td { padding: 0 0 6px; }
    #sod_frm .tbl_frm01 td .frm_input,
    #sod_frm #od_name, #sod_frm #od_tel, #sod_frm #od_hp, #sod_frm #od_pwd, #sod_frm #od_b_name, #sod_frm #od_b_tel, #sod_frm #od_b_hp, #sod_frm #ad_subject, #sod_frm #od_hope_date { max-width: none; }
    #sod_frm #od_zip, #sod_frm #od_b_zip { width: calc(100% - 110px); }
    #sod_frm_taker .order_choice_place { padding: 12px 14px 56px; }
    #sod_frm_taker .tbl_frm01 .btn_frmline { top: auto; bottom: 10px; left: 14px; right: auto; transform: none; }
    #sod_frm div.tbl_frm01, #sod_frm_taker div.tbl_frm01 { padding: 6px 16px 12px !important; }

    /* 주문 내역 표 → 카드 */
    :is(#sod_v, #smb_my_od) .tbl_wrap :is(table, thead, tbody, tr, td) { display: block; width: auto; }
    :is(#sod_v, #smb_my_od) .tbl_wrap table { border-top: 0; }
    :is(#sod_v, #smb_my_od) .tbl_wrap thead { display: none; }
    :is(#sod_v, #smb_my_od) .tbl_wrap tbody tr { position: relative; margin: 0 0 10px; padding: 12px 14px; border: 1px solid var(--bfs-border); border-radius: var(--bfs-radius-lg); }
    :is(#sod_v, #smb_my_od) .tbl_wrap tbody td { display: flex; justify-content: space-between; gap: 10px; padding: 4px 0; border: 0; font-size: .88rem; text-align: right; }
    :is(#sod_v, #smb_my_od) .tbl_wrap tbody td::before { color: var(--bfs-muted); font-weight: 600; }
    :is(#sod_v, #smb_my_od) .tbl_wrap tbody td:nth-child(1) { padding-right: 96px; font-size: .95rem; text-align: left; }
    :is(#sod_v, #smb_my_od) .tbl_wrap tbody td:nth-child(2) { padding-bottom: 8px; margin-bottom: 4px; border-bottom: 1px dashed var(--bfs-border); color: var(--bfs-muted); font-size: .8rem; text-align: left; }
    :is(#sod_v, #smb_my_od) .tbl_wrap tbody td:nth-child(3)::before { content: "상품 수"; }
    :is(#sod_v, #smb_my_od) .tbl_wrap tbody td:nth-child(4)::before { content: "주문금액"; }
    :is(#sod_v, #smb_my_od) .tbl_wrap tbody td:nth-child(5)::before { content: "입금액"; }
    :is(#sod_v, #smb_my_od) .tbl_wrap tbody td:nth-child(6)::before { content: "미입금액"; }
    :is(#sod_v, #smb_my_od) .tbl_wrap tbody td:nth-child(7) { position: absolute; top: 12px; right: 14px; padding: 0; }
    :is(#sod_v, #smb_my_od) .tbl_wrap tbody td.empty_table { position: static; display: block; padding: 40px 10px; text-align: center; }

    /* 주문 상세 */
    #sod_fin .sod_left th { width: 96px; padding: 10px 12px; }
    #sod_fin .sod_left td { padding: 10px 12px; }

    /* 마이페이지 */
    #smb_my #smb_my_ov { grid-template-columns: minmax(0, 1fr); padding: 16px; }
    #smb_my #smb_my_ov .op_area { grid-template-columns: max-content minmax(0, 1fr); }
    #smb_my #smb_my_ovaddd { grid-column: 2; }
    #smb_my #smb_my_wish .list_02 ul { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; }

    /* 위시리스트 */
    #sod_ws .list_02 ul { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; }
    #sod_ws #sod_ws_act button { flex: 1; min-width: 0; }

    /* 결제 수단 / 쿠폰 창 */
    #sod_frm #sod_frm_paysel { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    #sod_frm_pay #sc_coupon_frm, #sod_frm_pay #od_coupon_frm { width: calc(100vw - 32px); }
    #sod_list #cp_frm { left: 16px; width: calc(100vw - 32px); margin-left: 0; }
}

/* ======================================================================
   그 밖 (메인 세션 추가)
   ====================================================================== */

/* 모바일 분류 목록 '더보기' 로딩 표시: 코어가 모바일 스킨 폴더의 img/loading.gif 를 찾는데 연결 파일 폴더에는 이미지가 없다 */
#item_load_msg img { display: none; }
#item_load_msg { padding: 14px 0; text-align: center; color: var(--bf-color-muted, #6b7280); font-size: .9rem; }

/* 개인결제 목록 쪽 번호 (코어가 스킨 바깥에 출력) */
#sct .pg_wrap, #sct_pv .pg_wrap { display: flex; justify-content: center; margin: 26px 0 0; float: none; }
#sct .pg, #sct_pv .pg { display: flex; flex-wrap: wrap; gap: 4px; }
#sct .pg_page, #sct .pg_current, #sct_pv .pg_page, #sct_pv .pg_current {
    display: inline-flex; align-items: center; justify-content: center; min-width: 36px; height: 36px; padding: 0 8px;
    border: 1px solid var(--bf-color-border, #e5e7eb); border-radius: var(--bf-radius, 6px);
    background: var(--bf-color-bg, #fff); color: var(--bf-color-text, #1f2937); font-size: .88rem; font-weight: 600; text-indent: 0;
}
#sct .pg_current, #sct_pv .pg_current { border-color: var(--bf-color-primary, #0ea5e9); background: var(--bf-color-primary, #0ea5e9); color: #fff; }
