/* =========================================================================
   제품 추가 모달 단계별 표시  ========================================================================= */
.form-step {
  display: none;
  animation: fadeIn 0.3s ease-in-out;
  opacity: 0;
}

.form-step.form-step-active {
  display: block;
  opacity: 1;
}

@keyframes fadeIn {
  from {
    opacity: 0;
    transform: translateY(10px);
  }
  to {
    opacity: 1;
    transform: translateY(0);
  }
}

/* =========================================================================
   my page  ========================================================================= */
:root {
	--mypage-sidebar-w: 180px;
}
.mobile-only {
	display: none;
}
.desktop-only {
	display: block;
}
.mt-6 {
	margin-top: var(--spacing-7);
}
.mt-10 {
	margin-top: var(--spacing-9);  /* 40px */
}
.mb-016 {
	margin-bottom: var(--spacing-5);
}
.mb-6 {
	margin-bottom: var(--spacing-7);
}

.flex-row-box-gap-3 {
	display: flex;
	align-items: center;
	gap: var(--spacing-3);
}

.contract-payment-method-info {
	display: flex;
	align-items: center;
	gap: var(--spacing-3);
}

.subscription-contracts-install-items-table th .desktop-only,
.subscription-contracts-install-items-table th .mobile-only {
	font-size: inherit;
	font-weight: inherit;
	line-height: inherit;
	color: inherit;
}

.member-info-row-mobile {
	display: none;
}

.mypage-layout {
	display: flex;
	max-width: 1196px;
	margin: 0 auto;
	/* padding: calc(var(--spacing-9) * 2) 0; */
	padding: 56px 0;
}
body:has(.mypage-layout) .page-header {
	z-index: 1;
	position: absolute;
	top: 0;
	left: 0;
	width: auto;
	max-width: 1196px;
	padding-top: var(--header-h);
	padding-bottom: var(--spacing-5);
}
/* =========================================================================
   my page: sidebar  ========================================================================= */
.pc-sidebar.mypage-sidebar {
	z-index: unset;
	position: static;
	width: var(--mypage-sidebar-w);
	border: unset;
}
.pc-sidebar.mypage-sidebar .navbar-wrapper {
	width: var(--mypage-sidebar-w);
}
.pc-sidebar.mypage-sidebar .navbar-content {
	height: 100%;
}

/* nav item */
.pc-sidebar.mypage-sidebar .pc-navbar > .pc-item {
	margin: 0;
}
.pc-sidebar.mypage-sidebar .pc-navbar:not(:last-child),
.pc-sidebar.mypage-sidebar .pc-navbar > .pc-item:not(:last-child) {
	margin-bottom: var(--spacing-5);
}
.pc-sidebar.mypage-sidebar .pc-link {
	padding: var(--spacing-3) 0;
	border-radius: var(--spacing-2);
}

/* nav item: text */
.pc-sidebar.mypage-sidebar .pc-link .pc-mtext {
	font-size: var(--text-body-lg); /* 16px */
	font-weight: 700;
	line-height: 1.5; /* 24px */
	/*color: var(--text-secondary);*/
}
/* nav item: hover */
.pc-sidebar.mypage-sidebar
	.pc-navbar
	> .pc-item:hover:not(.active)
	> .pc-link:after {
	background: transparent;
}
.pc-sidebar.mypage-sidebar .pc-link:hover {
	background: var(--gray-100);
}

/* nav item: active */
.pc-sidebar.mypage-sidebar .pc-navbar > .pc-item.active > .pc-link:after {
	background: unset;
}
.pc-sidebar.mypage-sidebar .pc-navbar > .pc-item.active > .pc-link > .pc-mtext {
	line-height: var(--text-heading-md);
	color: var(--text-primary);
	text-decoration: underline;
	text-decoration-style: solid;
	text-underline-offset: 0.25em;
	text-decoration-thickness: 10%;
	text-decoration-skip-ink: auto;
}

/* submenu */
/* ⚠️ 마이페이지 사이드바 토글 잠금: 서브메뉴 항상 표시 */
.pc-sidebar.mypage-sidebar .pc-navbar > .pc-item.pc-hasmenu .pc-submenu {
	display: block !important;
}
.pc-sidebar.mypage-sidebar .pc-navbar > .pc-item .pc-submenu .pc-link {
	padding: var(--spacing-2) var(--spacing-3);
	font-size: var(--text-body-lg); /* 16px */
	font-weight: 500;
	line-height: 1.5; /* 24px */
	color: var(--gray-400);
}
.pc-sidebar .pc-navbar > .pc-item .pc-submenu .pc-item > .pc-link:after {
	content: unset;
}
.pc-sidebar.mypage-sidebar .pc-navbar > .pc-item .pc-submenu .pc-link:hover {
	color: var(--text-secondary);
}
.pc-sidebar.mypage-sidebar
	.pc-navbar
	> .pc-item
	.pc-submenu
	.pc-item.active
	.pc-link {
	line-height: var(--text-heading-md);
	color: var(--text-secondary);
	text-decoration: underline;
	text-decoration-style: solid;
	text-underline-offset: 0.25em;
	text-decoration-thickness: 10%;
	text-decoration-skip-ink: auto;
}

/* =========================================================================
   my page: container  ========================================================================= */
.mypage-container {
	width: calc(100% - var(--mypage-sidebar-w));
	padding: 0 0 0 calc(var(--spacing-8) * 2);
}

.mypage-title {
	--letter-spacing-ratio: -0.004%;
	margin-bottom: 0;
	font-size: 32px;
	font-weight: 700;
	line-height: 1.5;
}
.mypage-title-box {
	/* margin-bottom: var(--spacing-9); */
	text-align: center;
}
.section-dashboard .mypage-title-box {
	margin-bottom: var(--spacing-9);
}

/* =========================================================================
   mypage: section (공통)  ========================================================================= */
.section {
	display: flex;
	flex-direction: column;
	gap: var(--spacing-7);
}
.section.contract-detail {
	gap: var(--spacing-9);
}

/* 조회 결과 요약 카드 */
.order-filter-summary-card {
	display: flex;
	justify-content: space-between;
	align-items: center;
	gap: var(--spacing-7);
	padding: var(--spacing-7);
	background: var(--gray-100);
	border-radius: var(--radius-3);
}

.order-filter-summary-left {
	flex: 1;
	display: flex;
	flex-direction: column;
	gap: var(--spacing-4);
}

.order-filter-tags {
	display: flex;
	align-items: center;
	gap: var(--spacing-4);
	flex-wrap: wrap;
}
.order-filter-tags .badge {
	padding: 1px 6px;
	font-size: var(--text-body-md);
	line-height: var(--text-heading-sm);
	font-weight: 400;
}

.order-filter-summary-right {
	display: flex;
	flex-direction: column;
	align-items: flex-end;
	gap: var(--spacing-4);
}

.order-filter-summary-count {
	display: flex;
	align-items: baseline;
	gap: var(--spacing-3);
}

.order-filter-summary-count .heading-sm.price,
.order-filter-summary-amount .heading-lg.price {
	margin-left: var(--spacing-3);
	color: var(--primary);
}
.order-filter-summary-count .heading-sm.price {
	margin-right: var(--spacing);
}

.order-filter-summary-amount {
	display: flex;
	align-items: baseline;
}
.order-filter-summary-amount .heading-lg.price {
	margin-right: var(--spacing-2);
}

.tax-invoice-summary-card .order-filter-summary-right {
	flex-direction: row;
	align-items: flex-start;
	gap: var(--spacing-9);
}
.tax-invoice-summary-card .order-filter-summary-amount-item {
    display: flex;
    flex-direction: column;
    align-items: flex-end;
    gap: var(--spacing-4);
}

/* 세금계산서 목록 테이블: 주문번호 컬럼 최대 249px, 길면 말줄임(버튼 유지) */
.tax-invoice-list-table th.tax-invoice-col-order-id,
.tax-invoice-list-table td.tax-invoice-col-order-id {
	max-width: 249px;
}
.tax-invoice-list-table tbody tr.order-row {
	cursor: pointer;
}
.tax-invoice-list-table td.tax-invoice-col-order-id .tax-invoice-order-id-cell {
	display: flex;
	align-items: center;
	gap: var(--spacing-2);
	min-width: 0;
}
.tax-invoice-list-table td.tax-invoice-col-order-id .tax-invoice-order-id-text {
	min-width: 0;
	font-size: var(--text-body-lg);
	line-height: var(--text-heading-md);
	overflow: hidden;
	text-overflow: ellipsis;
	white-space: nowrap;
}
.tax-invoice-list-table .tax-invoice-order-id-icon {
	flex-shrink: 0;
	margin-bottom: 1px;
	padding: 0;
	cursor: pointer;
}

/* =========================================================================
   mypage: date picker (데이트 피커)  ========================================================================= */
.table-data-count {
	display: flex;
	flex-direction: row;
	gap: 0.5rem;
}

.table-data-row {
	display: flex;
	flex-direction: row;
	justify-content: space-between;
	align-items: center;
	gap: var(--spacing-5);
}
.table-data-row.justify-end {
	justify-content: flex-end;
}

/* =========================================================================
   mypage: table (테이블)  ========================================================================= */
.mypage-table {
	--bs-table-color: var(--gray-600);
	margin-bottom: 0;
	border: 1px solid var(--color-bg-card);
	border-right: none;
	border-left: none;
}
.col-100 {
	width: 100%;
}
.mypage-table.table-bordered td, .mypage-table.table-bordered th {
	border: 1px solid var(--color-bg-card);
}

.mypage-table thead th,
.mypage-table tbody td {
	border-bottom: 1px solid var(--color-bg-card);
}
.table.mypage-table > :not(:last-child) > :last-child > * {
	border-bottom-color: var(--color-bg-card);
}
.mypage-table thead th:first-child,
.mypage-table tbody td:first-child {
	border-left: none;
}
.mypage-table thead th:last-child,
.mypage-table tbody td:last-child {
	border-right: none;
}
.mypage-table th,
.mypage-table thead th {
	padding: var(--spacing-4) var(--spacing-4) 15px var(--spacing-4);
	background: var(--gray-100);
	font-size: var(--text-body-lg);
	font-weight: 500;
	line-height: var(--text-heading-md);
}
.mypage-table tbody td {
	padding: var(--spacing-4) var(--spacing-4) 15px var(--spacing-4);
	font-size: var(--text-body-lg);
	line-height: var(--text-heading-md);
}

 .mypage-table .no-data,
 .mypage-table.table-bordered.table-estimate-products td.no-data {
	padding: calc(var(--spacing-4)) var(--spacing-4);
}
.mypage-table td.no-data {
	text-align: center;
	color: var(--gray-300);
}
.mypage-table td.no-data:not([colspan]) {
	color: var(--gray-200) !important;
}
.mypage-table .custom-checkbox {
	padding: 0;
}

/* 클릭 가능한 테이블 스타일 */
.table-clickable tbody tr {
	cursor: pointer;
}
.mypage-table.table-clickable tbody tr:hover {
	background: var(--blue-050);
}
.mypage-table.table-clickable tbody tr:hover td {
	color: var(--blue-700);
}

.td-16-price .price {
	margin-left: 0;
	font-size: var(--text-body-lg);
	font-weight: 600;
	line-height: var(--text-heading-md);
}
.pagination-wrapper {
	display: flex;
	justify-content: center;
	margin-top: var(--spacing-7);
}

/* 서비스 내역 내용 셀 */
.service-content-td {
	vertical-align: top !important;
}
.service-content {
	vertical-align: top;
	text-align: left;
	white-space: pre-wrap;
}
.member-service-id {
	color: var(--gray-400);
}

.no-data-list {
	padding: calc(var(--spacing-8) * 2) var(--spacing-8);
	font-size: var(--text-body-lg);
    line-height: var(--text-heading-md);
	text-align: center;
	color: var(--gray-400);
}

/* =========================================================================
   mypage: table column widths (테이블 컬럼 너비 설정)  ========================================================================= */
/* 공통: 모든 테이블 셀 한 줄 말줄임표 처리 */
.mypage-table th,
.mypage-table td {
	overflow: hidden;
	text-overflow: ellipsis;
	white-space: nowrap;
}

/* 말줄임표 처리 비활성화 클래스: .mypage-table-cell-no-ellipsis */
.mypage-table-cell-no-ellipsis,
.mypage-table-cell-no-ellipsis th,
.mypage-table-cell-no-ellipsis td,
.mypage-table th.mypage-table-cell-no-ellipsis,
.mypage-table td.mypage-table-cell-no-ellipsis {
	overflow: visible;
	text-overflow: clip;
	white-space: normal;
	word-break: break-word;
}

.mypage-table-wrapper {
	overflow-x: auto;
	width: 100%;
}

/* 테이블 내부 포인트 스타일 (우선순위 보장) */
.mypage-table td.point-positive,
.mypage-table td .point-positive {
	color: var(--blue-600);
}

.mypage-table td.point-negative,
.mypage-table td .point-negative {
	color: var(--gray-600);
}

/* =========================================================================
   mypage: 공통 컴포넌트 (여러 페이지에서 사용)  ========================================================================= */
/* 컬럼 리스트 */
.mypage-col-list {
	display: flex;
	flex-direction: column;
	gap: var(--spacing-5);
}
/* 아이템 하단 테두리 */
.mypage-bottom-border-item {
	display: flex;
	flex-direction: column;
	gap: var(--spacing-5);
	border-bottom: 1px solid var(--gray-200);
	padding-bottom: 15px;
}
/* 기본값 라벨 */
.default-value-label {
	display: inline-block;
	padding: 2px 6px;
	border-radius: var(--radius);
	background-color: var(--blue-100);
	font-weight: 600;
	font-size: var(--text-body-md);
	line-height: 20px;
	color: var(--secondary);
}

.default-value-label--deleted {
	background: var(--red-bg);
	color: var(--red-text);
}

.default-value-label--inactive {
	background: var(--gray-200);
	color: var(--text-secondary);
}

/* CMS 계좌: 예금주, 가입상태, 등록일시 */
.cms-account-holder {
	margin-left: var(--spacing-3);
	font-size: var(--text-body-sm);
	color: var(--text-secondary);
}

.cms-account-join-status {
	margin-top: var(--spacing);
	color: var(--text-secondary);
}

.cms-account-registered {
	color: var(--text-secondary);
}

/* 아이템 액션 버튼 */
.item-action-buttons-wrapper {
	display: flex;
	justify-content: space-between;
	align-items: center;
	gap: var(--spacing-5);
	width: 100%;
}
.item-action-buttons {
	display: flex;
	gap: var(--spacing-3);
}
.selected-label {
	display: flex;
	align-items: center;
	gap: 5px;
	font-size: var(--text-body-lg);
	font-weight: 700;
	line-height: var(--text-heading-md);
	color: var(--secondary);
}
.selected-label svg {
	width: 18px;
	height: 18px;
}
.selected-label path {
	stroke: var(--secondary);
}
/* 가격 표시 */
.price {
	margin-left: 10px;
	color: var(--blue-600);
}

/* 버튼 래퍼 */
.button-wrapper {
	display: flex;
	flex-direction: row;
	justify-content: space-between;
	gap: 16px;
}
.button-wrapper.user-info {
	justify-content: flex-end;
	gap: var(--spacing-5);
	margin-top: var(--spacing-7);
}

/* 모달 */
.modal-body {
	gap: calc(var(--spacing) * 18);
}
.modal-body form,
.modal-body .form-container {
	display: flex;
	flex-direction: column;
	gap: var(--spacing-3);
}
.modal-body .form-flex-row {
	display: flex;
	gap: var(--spacing-5);
}

.modal .form-item .label {
	padding: 0;
    font-size: var(--text-heading-xs);
    font-weight: 600;
    line-height: 1.3333;  /* 24px */
}
.modal-footer .btn--large {
	min-width: 160px;
}

/* 폼 아이템 */
.form-item {
	gap: var(--spacing-3);
}
.form-item .label:not(:empty) {
    margin-bottom: 0;
} 
.form-item .error-message:not(:empty) {
	margin-top: 0;
}
.form-item.form-item-error .label {
	color: #dc3545;
}
.form-item.form-item-error .textarea {
	border-color: #dc3545;
	box-shadow: 0 0 0 0.2rem rgba(220, 53, 69, 0.25);
}

/* 탭 콘텐츠 숨김 처리 (Bootstrap 탭이 제대로 작동하지 않을 경우를 위한 백업) */
#subscription-tabs-content .tab-pane {
	flex-direction: column;
	gap: var(--spacing-7);
}
#subscription-tabs-content .tab-pane:not(.active) {
	display: none !important;
}

#subscription-tabs-content .tab-pane.active {
	display: flex !important;
}

/* 데이터 행 (클릭 가능) */
.data-row {
	cursor: pointer;
}

/* 문자 수 카운터 */
.char-count {
	color: var(--text-secondary);
	font-size: var(--text-body-sm);
}

.char-count.char-limit-reached {
	color: var(--text-secondary);
}

.char-count.char-limit-reached .char-current {
	color: #dc3545;
	font-weight: bold;
}
/* =========================================================================
   크레딧 카드 관리 스타일 ========================================================================= */
.mypage-credit-card-list {
	gap: var(--spacing-7);
}
.mypage-credit-card-list .mypage-bottom-border-item {
	padding-bottom: var(--spacing-7);
}
.credit-card-image-box {
	display: flex;
	flex-direction: row;
	align-items: center;
	gap: var(--spacing-5);
}

.credit-card-image-box img {
	flex-shrink: 0;
	align-self: self-start;
	width: var(--spacing-9);
	height: var(--spacing-9);
	border-radius: var(--radius-6);
	object-fit: contain;
}

/* CMS 계좌: 아이콘 없을 때 placeholder (gray circle) */
.cms-bank-icon-placeholder {
	display: inline-block;
	width: var(--spacing-9);
	height: var(--spacing-9);
	border-radius: 50%;
	background: var(--gray-100);
	flex-shrink: 0;
}

.payment-credit-card-item .credit-card-content img {
	flex-shrink: 0;
	width: var(--spacing-9);
	height: var(--spacing-9);
	border-radius: var(--radius-6);
	object-fit: contain;
}

.credit-card-item {
	display: flex;
	flex-direction: column;
	padding-bottom: var(--spacing-6);
	border-bottom: 1px solid var(--color-stroke);
}

.credit-card-info-box {
	display: flex;
	flex-direction: column;
	gap: var(--spacing-7);
}

.credit-card-meta {
	display: flex;
	flex-direction: row;
	align-items: center;
	gap: var(--spacing-3);
}

.credit-card-details {
	display: flex;
	flex-direction: column;
	gap: 0.3rem;
}

.credit-card-action-box {
	display: flex;
	flex-direction: row;
	justify-content: space-between;
	align-items: center;
	width: 100%;
}

.credit-card-number {
	font-size: var(--text-body-lg);
	line-height: var(--text-heading-md);
	color: var(--gray-400);
}

.credit-card-wrapper {
	display: flex;
	flex-direction: column;
	gap: var(--spacing-10);
}

/* 결제수단 변경 모달용 크레딧 카드 리스트 스타일 */
.payment-credit-cards-list {
	display: flex;
	flex-direction: column;
	gap: var(--spacing-5);
}

.payment-credit-card-item {
	display: flex;
	flex-direction: column;
	padding: var(--spacing-6);
	border-radius: var(--radius);
	border: 2px solid transparent;
	cursor: pointer;
}
.payment-credit-card-item:has(.form-check-input:checked) {
	border-color: var(--bs-primary);
}

.payment-credit-card-item:hover {
	background-color: var(--gray-100);
}

.payment-credit-card-item .credit-card-radio-wrapper {
	display: flex;
	flex-direction: row;
	align-items: center;
	gap: var(--spacing-5);
}

.payment-credit-card-item .form-check-input {
	flex-shrink: 0;
	margin: 0;
	width: var(--spacing-6);
	height: var(--spacing-6);
	cursor: pointer;
}

.payment-credit-card-item .credit-card-content {
	flex: 1;
	display: flex;
	flex-direction: row;
	align-items: center;
	gap: var(--spacing-5);
}

.td-col-box {
	display: flex;
	flex-direction: column;
	align-items: center;
}
.td-period-box div {
	font-size: var(--text-body-lg);
	line-height: var(--text-heading-md);
}
/* =========================================================================
   1. 마이페이지 홈  (dashboard)========================================================================= */
.mypage-user-box {
	display: flex;
	justify-content: space-between;
	align-items: center;
}
.mypage-user-info {
	display: flex;
	align-items: center;
	gap: var(--spacing-5);
}
.mypage-user-greeting {
	display: block;
	align-self: flex-start;
}

/* 담당 파트너 명함 */
.mypage-business-card-box {
	display: flex;
	flex-direction: column;
	gap: var(--spacing-3);
	margin-top: calc(-1 * var(--spacing-4));
	margin-bottom: var(--spacing-4);
}
.mypage-business-card-box .text-emphasis {
	font-weight: 600;
	color: var(--primary);
}
.mypage-business-card-box .business-card-notice {
	margin: 0;
	font-size: var(--text-body-md);
	color: var(--gray-400);
	line-height: 1.5;
}

.mypage-user-info.partner {
	padding: 6px 0;
}
.mypage-user-info .badge {
	--bs-badge-padding-x: var(--spacing-6);
	--bs-badge-border-radius: 200px;
	padding: var(--spacing-3) var(--bs-badge-padding-x) var(--radius);
}

.mypage-bento-box {
	display: grid;
	grid-template-columns: repeat(4, 1fr);
	grid-template-rows: repeat(2, auto);
	gap: var(--spacing-7);
}
.mypage-bento-box.mobile-only {
	display: none;
}
.mypage-bento-box.partner-bento-box {
	grid-template-columns: repeat(3, 1fr);
	grid-template-rows: repeat(1, auto);
}
.mypage-bento-box.partner-bento-box-table {
	grid-template-columns: repeat(2, 1fr);
}

.mypage-bento-box .card {
	display: flex;
	flex-direction: column;
	gap: var(--spacing-5);
}

/* 첫째 줄: 2개 카드 (각각 3칸씩 차지) */
.mypage-bento-box .card.point,
.mypage-bento-box .card.date {
	grid-column: span 2;
}


/* 둘째 줄: 3개 카드 (각각 2칸씩 차지) */
.mypage-bento-box .card.order,
.mypage-bento-box .card.subscription,
.mypage-bento-box .card.cart,
.mypage-bento-box .card.sns {
	grid-column: span 1;
}

.mypage-bento-box .card-header {
	display: flex;
	justify-content: space-between;
	align-items: center;
	padding-bottom: 0;
	border-bottom: none;
}

.mypage-bento-box .card-body {
	padding: var(--spacing-8) var(--spacing-7);
}

.mypage-bento-box .card.point .card-body,
.mypage-bento-box .card.date .card-body,
.mypage-bento-box .card.sns .card-body {
	display: flex;
	flex-direction: column;
	justify-content: space-between;
	gap: var(--spacing-8);
}

/* 파트너 계정 전환 버튼: 데스크톱 하단 */
.mypage-partner-switch-wrap.desktop-only {
	display: flex;
	justify-content: center;
	align-items: center;
}

.mypage-partner-status-wrap {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: center;
	gap: var(--spacing-4);
	width: 100%;
}
.mypage-partner-pending-wrap {
	display: flex;
	justify-content: center;
	align-items: center;
	padding: var(--spacing-4) 0;
}
.mypage-partner-pending-badge {
	--bs-badge-padding-x: var(--spacing-6);
	background: var(--color-stroke, #e9ecef);
	color: var(--color-text-secondary, #6c757d);
	font-weight: 500;
}
.mypage-partner-approved-badge {
	--bs-badge-padding-x: var(--spacing-6);
	background: #d1e7dd;
	color: #0f5132;
	font-weight: 500;
}
.mypage-partner-rejected-badge {
	--bs-badge-padding-x: var(--spacing-6);
	background: #f8d7da;
	color: #842029;
	font-weight: 500;
}
.mypage-partner-status-btn[disabled] {
	cursor: default;
	opacity: 0.85;
}

/* 아이콘이 있는 카드 스타일 */
.mypage-bento-box .card-with-icon .card-body {
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: var(--spacing-5);
}

/* 파트너 테이블 카드 스타일 */
.mypage-bento-box .card.partner-table .card-body {
	padding: 0 var(--spacing-7) var(--spacing-7) var(--spacing-7);
}
.mypage-bento-box .card.partner-table .card-header-title {
	display: flex;
	align-items: center;
	gap: var(--spacing-3);
}
.card-header-title .icon svg {
	width: var(--spacing-7);
	height: var(--spacing-7);
}

.card:not(:has(.btn--text.btn--edit-gray)) .icon svg {
	width: var(--spacing-10);
	height: var(--spacing-10);
}
.card:not(:has(.btn--text.btn--edit-gray)) .icon:not(.no-path-style, .value-link) path {
	stroke: var(--text-primary);
}

.icon.no-path-stroke path {
	stroke: unset;
	fill: var(--text-primary);
}
.card .icon:not(.no-path-style, .value-link) path {
	stroke-width: 1.5;
}

.value-link {
	display: flex;
	align-items: center;
	gap: var(--spacing-2);
	min-width: 0;
}
.value-link .emphasis {
	margin-right: var(--spacing-2);
}
.card .value-link .icon svg {
	width: 36px;
	height: 36px;
	flex-shrink: 0;
}
/* 포인트 카드의 value-link 반응형 처리 */
.mypage-bento-box .card.point .value-link h3.heading-lg {
	display: inline;
	word-break: break-word;
	line-height: 36px;
}
.mypage-bento-box .card.point .value-link h3.heading-lg {
	display: inline-flex;
	align-items: center;
	flex-wrap: wrap;
	word-break: break-word;
	line-height: 36px;
}
.mypage-bento-box .card.point .value-link h3.heading-lg .emphasis {
	word-break: break-all;
	line-height: 36px;
	display: inline-block;
	vertical-align: middle;
}
.mypage-bento-box .card.point .value-link h3.heading-lg .unit-group {
	white-space: nowrap;
	margin-left: 0;
	font-size: inherit;
	font-weight: inherit;
	line-height: 36px;
	color: inherit;
	display: inline-flex;
	align-items: center;
	vertical-align: middle;
}
.mypage-bento-box .card.point .value-link h3.heading-lg .unit {
	margin-right: var(--spacing-2);
	font-size: inherit;
	font-weight: inherit;
	line-height: 36px;
	color: inherit;
	display: inline-block;
	vertical-align: middle;
}
.mypage-bento-box .card.point .value-link h3.heading-lg .icon-inline {
	display: inline-flex;
	align-items: center;
	vertical-align: middle;
}
.mypage-bento-box .card.point .value-link h3.heading-lg .icon-inline svg {
	width: 36px;
	height: 36px;
	vertical-align: middle;
}

.value-link.small {
	gap: 0;
}
.value-link.small .emphasis {
	margin-right: var(--spacing);
}
.card:not(:has(.btn--text.btn--edit-gray)) .value-link.small .icon svg {
	width: 18px;
	height: 18px;
}

.mypage-bento-box .card.point .emphasis,
.mypage-bento-box .card.date .emphasis,
.partner-bento-box .value-link.small .emphasis {
	color: var(--primary);
}

/* 
	start: 파트너 벤토 박스 테이블
*/
.partner-bento-box-table .mypage-table {
	background: var(--white);
}
.partner-bento-box-table .mypage-table tr,
.partner-bento-box-table .mypage-table th,
.partner-bento-box-table .mypage-table td {
	border: none;
}

.partner-bento-box-table .mypage-table thead th {
	padding: var(--spacing-3);
	background: var(--gray-200);
}

.partner-bento-box-table .mypage-table tbody tr {
	background: var(--white);
}
.partner-bento-box-table .mypage-table tbody td {
	padding: 15px var(--spacing-3);
	font-size: var(--text-body-md);
	font-weight: 500;
	line-height: var(--text-heading-sm);
	vertical-align: middle;
	text-align: center;
}

.partner-bento-box-table .mypage-table tbody tr:nth-child(even) {
	background: #fafafa;
}

.partner-bento-box-table .mypage-table.table-clickable tbody tr:hover,
.partner-bento-box-table .mypage-table.table-clickable tbody tr:nth-child(even):hover {
	background: var(--blue-050);
}

/* 최근 서비스 내역, 최근 계약 제품 좌측 정렬 */
.partner-bento-box-table .mypage-table .partner-table-cell-service {
	text-align: left;
}

/* 파트너 테이블 이름(연락처) 셀 컨텐츠 래퍼 */
.partner-table-cell-name-content {
	display: flex;
	flex-direction: column;
	gap: var(--spacing);
}

/* 파트너 테이블 서비스/제품 셀 컨텐츠 래퍼 (최근 서비스 내역, 최근 계약 제품 공통) */
.partner-table-cell-service-content {
	display: flex;
	align-items: center;
	gap: 6px;
}

/* 파트너 테이블 서비스/제품 셀 wrapper (날짜가 있는 경우 세로 배치) */
.partner-table-cell-service-content-wrapper {
	display: flex;
	flex-direction: column;
	justify-content: center;
	align-items: flex-start;
	gap: var(--spacing-2);
	min-height: 42px;
}
.partner-table-quantity {
	margin-left: -4px;
	font-weight: 500;
}
.partner-table-date {
	font-size: var(--text-body-sm);
	font-weight: 500;
	line-height: var(--text-body-lg);
	color: var(--text-third);
}
.partner-table-date-label {
	font-size: inherit;
	font-weight: inherit;
	line-height: inherit;
	color: inherit;
}

/* 파트너 테이블 이름/연락처 스타일 */
.partner-table-name,
.partner-table-product {
	font-weight: 500;
}
.partner-table-phone {
	color: var(--text-third);
}


.partner-bento-box-table .mypage-table .no-data {
	padding: 0;
}
/* 
	end: 파트너 벤토 박스 테이블
*/

.social-login-box-wrapper {
	display: flex;
	justify-content: center;
}
.social-login-box {
	display: flex;
	flex-wrap: wrap;
	gap: 14px;
	width: fit-content;
}

.social-login-box .login-button {
	display: flex;
	background: transparent;
}

.social-login-box .login-button svg {
	width: var(--spacing-10);
	height: var(--spacing-10);
}

/* kakao icon button: inactive */
.social-login-box .login-button.kakao-login-button.inactive .bg {
	fill: var(--gray-200);
}
.social-login-box .login-button.kakao-login-button.inactive .symbol {
	fill: var(--white);
}

/* naver icon button: inactive */
.social-login-box
	.login-button.naver-login-button.inactive
	.naver-login-button-stroke,
.social-login-box
	.login-button.naver-login-button.inactive
	.naver-login-button-bg {
	fill: var(--gray-200);
}

/* apple icon button: inactive */
.social-login-box .login-button.apple-login-button.inactive .bg {
	fill: var(--gray-200);
}

/* google icon button */
.social-login-box
	.login-button.google-login-button
	.google-login-button-stroke {
	stroke: var(--color-stroke);
}
/* google icon button: inactive */
.social-login-box
	.login-button.google-login-button.inactive
	.google-login-button-stroke {
	stroke: var(--gray-200);
}
.social-login-box .login-button.google-login-button.inactive .bg {
	fill: var(--gray-200);
}
.social-login-box .login-button.google-login-button.inactive .symbol {
	fill: var(--white);
}

/* =========================================================================
   2. 주문 내역  ========================================================================= */
.section-order {
	display: flex;
	flex-direction: column;
	gap: 24px;
}
.section-order .table-data-row {
	padding: var(--spacing-5) 0;
}
.order-list {
	display: flex;
	flex-direction: column;
	gap: 1rem;
}

.order-summary {
	display: flex;
	flex-direction: row;
	justify-content: space-between;
	gap: 1rem;
}
.order-summary-date-input .form-input {
	padding: var(--spacing-5) var(--spacing-4);
	border: none;
	font-size: var(--text-body-lg);  /* 16px */
	font-weight: 400;
	line-height: 1.5;  /* 24px */
}
.order-summary-date-input .form-input::placeholder {
	color: var(--gray-400);
}

.order-summary-extra-left {
	display: flex;
	flex-direction: row;
	align-items: center;
	gap: var(--spacing-5);
	flex: 1;
}

.order-summary-extra-right {
	display: flex;
	flex-direction: row;
	justify-content: flex-end;
	flex: 1;
}

.order-summary-box {
	display: flex;
	flex-direction: row;
	justify-content: space-between;
	align-items: center;
}

.order-summary-extra {
	display: flex;
	flex-direction: row;
	gap: 1rem;
}

.date-group {
	display: flex;
	flex-direction: column;
	gap: var(--spacing-5);
	margin-bottom: var(--spacing-5);
}

.order-item {
	display: flex;
	flex-direction: column;
	padding: var(--spacing-7);
	border-radius: var(--radius-2);
	border: 1px solid var(--color-stroke);
	background: var(--white);
	cursor: pointer;
}
.order-item:hover {
	background: var(--gray-100);
}

.order-item-badge {
	display: inline-flex;
	align-items: center;
}
.order-tracking-btn {
	border: none;
	font-weight: 400;
	color: var(--primary);
}
.order-tracking-btn.btn--text .icon:not(.icon--custom) svg path {
	stroke: var(--primary);
}
.order-tracking-btn.btn--text:hover .icon:not(.icon--custom) svg path {
    stroke: var(--secondary);
}
.order-item-content {
	display: flex;
	gap: var(--spacing-7);
	width: 100%;
}

.order-item-content-badges {
	display: flex;
	align-items: flex-end;
	gap: var(--spacing-3);
}

.order-item-image {
	flex-shrink: 0;
	display: flex;
	justify-content: center;
	align-items: center;
	width: 120px;
	height: 120px;
	aspect-ratio: 1/1;
	border-radius: var(--radius);
	overflow: hidden;
}

.order-item-image img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	object-position: center center;
}

.order-delivery-badge {
	margin-top: 2px;
}

.order-item-details {
	display: flex;
	flex-direction: column;
	gap: var(--spacing-3);
	width: 100%;
}

.order-item-details-header {
	display: flex;
	flex-direction: row;
	justify-content: space-between;
	align-items: center;
	gap: var(--spacing-3);
}

.order-item-details-title {
	display: flex;
	align-items: center;
	gap: 10px;
	flex-wrap: wrap;
}
.badge-mypage-order {
	font-weight: 600;
	line-height: var(--text-heading-sm);
}

.order-type {
	display: inline-block;
	padding: var(--spacing) calc(var(--spacing) * 3);
	border-radius: 5px;
	background-color: var(--green-050);
	font-size: var(--text-body-md);
	font-weight: 600;
	line-height: 20px;
	letter-spacing: -0.2%;
	color: var(--green-500);
}

.order-code-summary, .order-options {
	color: var(--text-secondary);
}

.order-price {
	font-size: var(--text-heading-xs);
	font-weight: 600;
	line-height: var(--text-heading-sm);
}

.order-item-detail-btn-box {
	display: flex;
}

.order-item-footer {
	display: flex;
	flex-direction: row;
	justify-content: flex-end;
	align-items: center;
}

.order-item-footer-right {
	display: flex;
	flex-direction: row;
	justify-content: flex-end;
}

.order-status-message {
	font-size: var(--text-body-lg);
	font-weight: 600;
}

.order-status-message.status-confirmed {
	color: var(--blue-800);
}

.order-status-message.status-pending {
	color: #FF6B00;
}

.order-status-message.status-cancelled {
	color: #DC3545;
}

.order-actions {
	display: flex;
	flex-direction: row;
	justify-content: flex-end;
	gap: 1rem;
}

.order-tracking-link {
	color: var(--primary);
	font-size: var(--text-body-lg);
	font-weight: 500;
	text-decoration: none;
	cursor: pointer;
}

.order-tracking-link:hover {
	text-decoration: underline;
}

/* Tracking modal tidy styles */
#trackingModal .tracking-modal-dialog {
	max-width: 500px;
}

#trackingModal .tracking-modal-body {
	max-height: 70vh;
	max-height: 70dvh;
	overflow-y: auto;
}

#trackingModal .tracking-result-new {
	padding: 0;
}

#trackingModal .tracking-current-status {
	margin-bottom: 20px;
	font-size: 16px;
	font-weight: 500;
	line-height: 1.5;
	text-align: center;
	color: var(--blue-600);
}

#trackingModal .tracking-timeline {
	margin-bottom: 24px;
}

#trackingModal .tracking-timeline-container {
	display: flex;
	justify-content: space-between;
	align-items: flex-start;
	position: relative;
	padding: 0 8px;
}

#trackingModal .tracking-timeline-line-bg {
	z-index: 0;
	position: absolute;
	top: 5px;
	right: 12.5%;
	left: 12.5%;
	height: 2px;
	background-color: #E0E0E0;
}

#trackingModal .tracking-timeline-line-active {
	z-index: 1;
	position: absolute;
	top: 5px;
	left: var(--active-left, 12.5%);
	width: var(--active-width, 0%);
	height: 2px;
	background-color: var(--blue-600);
}

#trackingModal .tracking-timeline-stage {
	position: relative;
	z-index: 2;
	flex: 1;
	display: flex;
	flex-direction: column;
	align-items: center;
}

#trackingModal .tracking-timeline-circle {
	width: 12px;
	height: 12px;
	margin-bottom: 8px;
	border-radius: 50%;
	border: 2px solid white;
	background-color: #E0E0E0;
	box-shadow: 0 0 0 1px #E0E0E0;
}

#trackingModal .tracking-timeline-circle-active {
	background-color: var(--blue-600);
	box-shadow: 0 0 0 1px var(--blue-600);
}

#trackingModal .tracking-timeline-label {
	font-size: 12px;
	text-align: center;
	white-space: nowrap;
	color: #999;
}

#trackingModal .tracking-timeline-label-active {
	color: #333;
}

#trackingModal .tracking-timeline-label-current {
	padding: 4px 12px;
	border-radius: 12px;
	background-color: var(--blue-600);
	color: white;
}

#trackingModal .tracking-events-list {
	margin-bottom: 16px;
}

#trackingModal .tracking-event-item {
	display: flex;
}

#trackingModal .tracking-event-marker {
	position: relative;
	display: flex;
	flex-direction: column;
	align-items: center;
	min-width: 20px;
	margin-top: 5px;
	margin-right: 12px;
}

#trackingModal .tracking-event-circle {
	z-index: 2;
	position: relative;
	flex-shrink: 0;
	width: 12px;
	height: 12px;
	border-radius: 50%;
	background-color: #E0E0E0;
	border: 2px solid white;
	box-shadow: 0 0 0 1px #E0E0E0;
}

#trackingModal .tracking-event-circle-latest {
	background-color: var(--blue-600);
	box-shadow: 0 0 0 1px var(--blue-600);
}

#trackingModal .tracking-event-line {
	z-index: 1;
	position: relative;
	flex: 1;
	width: 1px;
	min-height: 20px;
	margin-top: 3px;
	margin-bottom: -3px;
	background-color: #E0E0E0;
}

#trackingModal .tracking-event-content {
	flex: 1;
	padding-bottom: 8px;
}

#trackingModal .tracking-event-text {
	margin-bottom: 4px;
	font-size: 14px;
	line-height: 1.4;
	color: #333;
}

#trackingModal .tracking-event-time {
	font-size: 12px;
	color: #999;
}

#trackingModal .tracking-footer-info {
	margin-top: 24px;
	padding-top: 16px;
	border-top: 1px solid #E0E0E0;
	font-size: 13px;
	color: #666;
}

#trackingModal .tracking-footer-number {
	margin-bottom: 8px;
	font-size: 13px;
	color: #666;
}

#trackingModal .tracking-footer-company {
	display: flex;
	align-items: center;
	font-size: 13px;
	color: #666;
}

#trackingModal .tracking-no-data {
	color: #666;
}

#trackingModal .tracking-error {
	color: #d32f2f;
	line-height: 1.6;
}

#orderActionModal .tracking-result {
	max-height: 60vh;
	max-height: 60dvh;
	overflow: auto;
	display: flex;
	flex-direction: column;
	gap: 10px;
}
#orderActionModal .tracking-section-title {
	font-weight: 600;
	margin: 6px 0;
}
#orderActionModal .tracking-latest .meta,
#orderActionModal .tracking-item .meta {
	font-size: 13px;
	color: #6b7280;
}
#orderActionModal .tracking-latest .desc,
#orderActionModal .tracking-item .desc {
	font-size: var(--text-body-md);
	color: var(--text-primary);
	margin-top: var(--spacing);
}
#orderActionModal .tracking-item {
	padding: var(--spacing-3) 10px;
	border: 1px solid #EEE;
	border-radius: var(--radius);
}
@media (prefers-color-scheme: dark) {
	#orderActionModal .tracking-item {
		border-color: var(--gray-600);
	}
}

/* 
	start: 거래명세서
*/
.transaction-statment-table-container {
	display: flex;
	flex-direction: column;
	gap: var(--spacing-4);
}
.transaction-statment-table-wrapper,
.transaction-statment-row-table-wrapper {
	border-top: 1px solid var(--gray-500);
	border-bottom: 1px solid var(--gray-500);
}
.mypage-table.transaction-statment-table,
.mypage-table.transaction-statment-row-table {
	table-layout: fixed;
}
.mypage-table.transaction-statment-table {
	min-width: 952px;
}

.mypage-table.transaction-statment-table thead th {
	padding: 11px 0;
}
.mypage-table.transaction-statment-table tbody tr td {
	padding: 9px 11px;
	font-size: var(--text-body-md);
	line-height: var(--text-heading-sm);
}
.mypage-table.transaction-statment-table col.col-checkbox {
	width: 40px;
}
.mypage-table.transaction-statment-table col.col-date-yy-mm-dd {
	width: 87px;
}
.mypage-table.transaction-statment-table col.col-badge {
	width: 58px;
}
.mypage-table.transaction-statment-table col.col-badge.payment-method {
	width: 76px;
}
.mypage-table.transaction-statment-table col.col-full {
	/* width: 240px; */
	width: 220px;
}
.mypage-table.transaction-statment-table col.col-count {
	width: 64px;
}
.mypage-table.transaction-statment-table col.col-price {
	width: 89.33px;
}
.mypage-table.transaction-statment-table col.col-price-total {
	width: 137px;
}
.table-checkbox-wrapper,
.footer-btn-wrapper {
	display: flex;
	justify-content: center;
	align-items: center;
}
.mypage-table.transaction-statment-table td.td-full {
	padding: 7px 11px;
	text-align: left;
}
.mypage-table.transaction-statment-table td.text-end.price {
	padding: 7px 5.17px
}
.mypage-table.transaction-statment-row-table td.price {
	color: var(--primary);
}

.mypage-table.transaction-statment-row-table th {
	padding: 7px 15px;	
	width: 130px;
}
.mypage-table.transaction-statment-row-table tbody td {
	padding: 11px 15px 7px;
	font-size: var(--text-body-md);
	line-height: var(--text-heading-sm);
	text-align: left;
}
.mypage-table.transaction-statment-row-table td.bold,
.mypage-table.transaction-statment-row-table td.bold .price {
	font-weight: 600;
}
.spinner-loading {
	position: relative;
	display: inline-flex;
	align-items: center;
	min-width: 48px;
	min-height: 18px;
	color: transparent !important;
}
.spinner-loading::after {
	content: '';
	position: absolute;
	left: 0;
	top: 50%;
	transform: translateY(-50%);
	width: 14px;
	height: 14px;
	border: 2px solid rgba(0, 0, 0, 0.2);
	border-top-color: var(--primary);
	border-radius: 50%;
	animation: ts-summary-spin 0.8s linear infinite;
}
@keyframes ts-summary-spin {
	from { transform: translateY(-50%) rotate(0deg); }
	to { transform: translateY(-50%) rotate(360deg); }
}
/* 
	end: 거래명세서
*/

/* =========================================================================
   3. 구독  ========================================================================= */
/* 구독 계약 관리 */
.mypage-table.subscription-contracts-table {
	table-layout: fixed;
	width: 100%;
}
.mypage-table.subscription-contracts-table colgroup .col-th {
	width: 220px; /* th가 있는 컬럼 */
}
.mypage-table.subscription-contracts-table tbody td {
	padding: var(--spacing-4) 23px 14px;
	text-align: left;
}

/* 구독 계약 상세 */
.btn-contract-file-view-box {
	display: flex;
	flex-wrap: wrap;
	justify-content: end;
	gap: var(--spacing-3);
	margin-bottom: var(--spacing-3);
}
.btn-contract-file-view svg {
	width: 20px;
	height: 20px;
}
.btn-contract-file-view path {
	stroke: var(--white);
}

.mypage-table.subscription-contracts-install-items-table {
	table-layout: fixed;
}
.mypage-table.subscription-contracts-install-items-table colgroup .col-install-address {
	width: 30%;
}
.mypage-table.subscription-contracts-install-items-table colgroup .col-serial-number {
	width: 180px;
	min-width: 180px;
}
.mypage-table.subscription-contracts-install-items-table colgroup .col-edit-actions {
	width: 90px;
	min-width: 90px;
}
.mypage-table.subscription-contracts-install-items-table tbody td {
	padding: 14px var(--spacing-3) var(--spacing-5);
	font-size: var(--text-body-md);  /* 14px */
	line-height: 1.4285;  /* 20px */
}
.mypage-table.subscription-contracts-install-items-table tbody tr:has(.edit-actions-cell) td {
	padding: 6px var(--spacing-3);
}
.mypage-table.subscription-contracts-install-items-table .serial-number-cell {
	white-space: normal;
	word-break: break-word;
	word-wrap: break-word;
	overflow-wrap: break-word;
}
.mypage-table.subscription-contracts-install-items-table .install-address-cell {
	position: relative;
	white-space: normal;
	word-break: break-word;
	word-wrap: break-word;
	overflow-wrap: break-word;
}
.mypage-table.subscription-contracts-install-items-table .install-address-text {
	display: block;
	text-align: start;
	white-space: normal;
	word-break: break-word;
	word-wrap: break-word;
	overflow-wrap: break-word;
}
.mypage-table.subscription-contracts-install-items-table .install-address-input {
	width: 100%;
	box-sizing: border-box;
}
.mypage-table.subscription-contracts-install-items-table .edit-actions-wrapper {
	display: flex;
	align-items: center;
	gap: 4px;
	justify-content: center;
}

.subscription-contracts-tab-content {
	display: flex;
	flex-direction: column;
	gap: var(--spacing-7);
}

/* 구독 계약 셀렉터 스타일 */
.subscription-contracts-selectbox .custom-selectbox-selected {
	min-width: 301px;
	padding: 14px 10px;
}
.subscription-contracts-selectbox .custom-selectbox-selected .custom-selectbox-selected-label {
	min-width: 210px;
	max-width: 243px;
	line-height: 24px;
	overflow: hidden;
	text-overflow: ellipsis;
	white-space: nowrap;
}
.subscription-contracts-options {
	max-height: 301px;
}

.subscription-contracts-options .custom-selectbox-option {
	display: flex;
	flex-direction: column;
	gap: var(--spacing-2);
	padding: var(--spacing-4) var(--spacing-5);
}
/* 셀렉트박스 옵션에 no-data 클래스가 있을 때 스타일 */
.custom-selectbox-option.no-data {
	cursor: default;
	pointer-events: none;
	opacity: 0.6;
}

.subscription-contract-option-row {
	display: flex;
	flex-direction: row;
	gap: 40px;
}

.subscription-contract-label {
	width: 65px;
	flex-shrink: 0;
	font-size: var(--text-body-md);  /* 14px */
	line-height: 1.4285;  /* 20px */
}

.subscription-contract-value {
	flex: 1;
	font-size: var(--text-body-md);  /* 14px */
	line-height: 1.4285;  /* 20px */
}
.subscription-contracts-options .custom-selectbox-option.selected .subscription-contract-label,
.subscription-contracts-options .custom-selectbox-option.selected .subscription-contract-value {
	color: var(--blue-900);
}
/* 인증서 발급 버튼 */
.btn-certificate {
	flex-shrink: 0;
}

/* 설치 위치 수정 모드 스타일 */
.install-address-input {
	padding: 6px 10px;
	font-size: var(--text-body-md);  /* 14px */
	line-height: 1.4285;  /* 20px */
}

/* =========================================================================
   4. 배송지 관리  ========================================================================= */
.address-content {
	display: flex;
	flex-direction: column;
	gap: var(--spacing-3);
}
.delivery-name {
	display: flex;
	align-items: center;
	gap: var(--spacing-3);
}
.recipient {
	display: flex;
	align-items: center;
	gap: var(--spacing-3);
}
.recipient span {
	color: var(--text-secondary);
}
.address {
	color: var(--gray-700)
}

/* =========================================================================
   6. 매출 (견적서 발행)  ========================================================================= */
.estimate-section .mypage-title-box {
	margin-bottom: 0;
}
.estimate-print-button-wrap {
	display: flex;
	flex-direction: row;
	justify-content: flex-end;
}

/* 고객 정보 + 사업자 정보 */
.estimate-header {
	display: flex;
	gap: var(--spacing-7);
	width: 100%;
}
/* 고객 정보 - 40% 비율 */
.customer-info-form {
	flex-shrink: 0;
	display: flex;
	flex-direction: column;
	gap: var(--spacing-4);
	width: calc(40% - var(--spacing-4)); /* gap 24px의 절반 */
}
.customer-info-form .heading-sm {
	margin-bottom: var(--spacing-2);
}
.estimate-input {
	padding: calc(var(--spacing) * 5);
	border-radius: var(--radius-2);
}

/* 사업자 정보 - 60% 비율 */
.business-info-table-wrap {
	flex-shrink: 0;
	width: calc(60% - var(--spacing-4)); /* gap 24px의 절반 */
	margin-top: auto;
}

.business-info-table {
	table-layout: fixed;
	width: 100%;
	/* height: 100%; */
	margin-bottom: 0;
	border-right: 1px solid var(--gray-200);
	word-break: break-word;
	white-space: normal;
}
/* 컬럼 너비 설정 - colgroup으로 제어 */
.business-info-table colgroup .col-th {
	width: 120px; /* th가 있는 컬럼 (첫 번째, 세 번째) */
}
.business-info-table th,
.business-info-table td {
	text-align: center;
	word-break: break-word;
	white-space: normal;
}
.business-info-table th.text-left,
.business-info-table td.text-left {
	text-align: left;
}
.business-info-table th {
	padding: 13.5px 15.5px;
	background-color: var(--gray-100);
	border-top: 1px solid var(--gray-100);
}
.business-info-table td {
	padding: 13.5px 15.5px;
	border-top: 1px solid var(--gray-200);
	text-align: left;
}
.business-info-table th.th-middle {
	border-top: 1px solid var(--gray-200);
	border-bottom: 1px solid var(--gray-100);
}
.business-info-table tbody tr:last-child th {
	border-bottom: 1px solid var(--gray-100);
}
.business-info-table tbody tr:last-child td {
	border-bottom: 1px solid var(--gray-200);
}

/* 제품 추가 모달 */
#addProductModal .modal-content {
	min-height: 612px;
}
#addProductModal .modal-body {
	padding-top: calc(var(--spacing) * 9);
    padding-bottom: calc(var(--spacing) * 9);
}
/* 구매 견적서 테이블 */
.estimate-container {
	display: flex;
	flex-direction: column;
	gap: var(--spacing-7);
	padding: var(--spacing-7) 0 0;
}
.estimate-body-header {
	display: flex;
	flex-direction: row;
	justify-content: space-between;
	align-items: center;
}
.estimate-action-buttons {
	display: flex;
	align-items: center;
	gap: var(--spacing-5);
}
.estimate-action-button-group {
	display: flex;
	align-items: center;
	gap: var(--spacing-5);
}
.estimate-action-buttons .btn--tertiary.btn-delete-product .icon path {
	stroke: var(--text-primary);
}
.estimate-action-buttons .btn--tertiary.btn-delete-product:hover .icon path {
	stroke: var(--secondary);
}

/* 견적서 전용 스타일 */
#estimateExtraProductsList.extra-products-container {
	margin-top: 36px;
}
#estimateExtraProductsList.extra-products-container:empty {
	margin-top: 18px;
}
#estimateExtraProductsList .extra-product-item {
    padding: 0;
}

/* 견적서 테이블 스타일 */
.mypage-table.table-bordered.table-estimate-products {
	table-layout: fixed;
}

.mypage-table.table-bordered.table-estimate-products th {
	padding: var(--spacing-3) var(--spacing-4); 
}
.mypage-table.table-bordered.table-estimate-products td {
	padding: var(--spacing-3) var(--spacing-4);
	font-size: var(--text-body-md);  /* 14px */
	line-height: 1.4285;  /* 20px */
}

/* 견적서 테이블 컬럼 너비 */
.table-estimate-products .estimate-col-40 {
  width: 40px;
}

 .table-estimate-products .estimate-col-64 {
  width: 64px;
}

.table-estimate-products .estimate-col-120 {
  width: 120px;
}

.table-estimate-products .estimate-col-item-info {
  width: 30%;
}

.table-estimate-products .estimate-col-price {
  width: 15%;
}

.mypage-table.table-bordered.table-estimate-products th.estimate-th-checkbox,
.mypage-table.table-bordered.table-estimate-products td:has(.custom-checkbox) {
	padding: 8px;
	text-overflow: clip;
	overflow: visible;
	white-space: normal;
}
.mypage-table th.estimate-th-checkbox .custom-checkbox,
.mypage-table.table-bordered.table-estimate-products td .custom-checkbox {
	padding: 3px;
}

.estimate-product-image {
  object-fit: cover;
  border-radius: 4px;
  width: 64px;
  height: 64px;
}

/* no-image 클래스와 함께 사용할 때 ::before 제거 */
.no-image.estimate-product-image::before {
  display: none;
}

.estimate-no-image {
  color: #ccc;
  font-size: 12px;
}

.estimate-image-cell {
  padding: 8px;
}

/* 품목 컬럼 스타일 */
.estimate-item-image-cell {
  padding: var(--spacing-4);
}

.estimate-item-image-wrapper {
  display: flex;
  justify-content: center;
  align-items: center;
}

.estimate-item-info-cell {
  padding: var(--spacing-4);
}

.estimate-item-info {
  display: flex;
  flex-direction: column;
  padding: 2px 4px;
}

.mypage-table.table-bordered.table-estimate-products td.estimate-unit-price,
.mypage-table.table-bordered.table-estimate-products td.estimate-total-price {
  text-align: right;
  color: var(--primary);
}

.mypage-table td.estimate-quantity-cell {
	padding: var(--spacing-3) 7.5px !important;
}
.estimate-quantity-stepper-wrapper {
  display: inline-flex;
  justify-content: center;
}

.estimate-items-pagination {
  display: flex;
  margin-top: 1rem;
  justify-content: center;
}

.estimate-items-pagination--hidden,
.estimate-item-row--hidden,
.estimate-add-product-btn--hidden {
  display: none !important;
}

/* 견적서 비고 섹션 */
.estimate-remarks-section {
  display: flex;
  flex-direction: column;
  gap: var(--spacing-4);
}

/* 견적서 테이블 합계 */
.estimate-table-footer {
  border-top: 2px solid var(--gray-200);
}

.estimate-table-footer--hidden {
  display: none !important;
}

.estimate-table-footer tr {
  border-top: 1px solid var(--gray-200);
}
.mypage-table.table-bordered .estimate-table-footer th {
	padding: 8px 16px;
}

.mypage-table.table-bordered td.estimate-summary-value {
	padding: var(--spacing-4) var(--spacing-5);
	border-right: none;
	font-size: var(--text-body-md);  /* 14px */
	line-height: 1.4285;  /* 20px */
	color: var(--primary);
}

.mypage-table.table-bordered td.estimate-total-value {
	font-weight: 600;
	line-height: 24px;
}

/* 견적서 테이블 스테퍼 */
.estimate-quantity-stepper-wrapper .stepper-wrapper {
	gap: var(--spacing-3);
}
.estimate-quantity-stepper-wrapper .stepper--sm .stepper-btn svg {
    width: 12px;
    height: 12px;
}
.estimate-quantity-stepper-wrapper .stepper--sm .stepper-input {
	width: 40px;
	height: 28px;
}

/* =========================================================================
   7. 계정  ========================================================================= */
/* 회원 정보 */
.mypage-table.user-info-table colgroup .col-th {
	width: 220px; /* th가 있는 컬럼 */
}
.mypage-table.user-info-table tbody th {
	padding: 12.5px 23px 14.5px;
}
.mypage-table.user-info-table tbody td {
	padding: 5px 23px;
	text-align: left;
}
.mypage-table.user-info-table tbody td .flex-wrapper {
	display: flex;
	flex-direction: row;
	align-items: center;
	gap: var(--spacing-7);
}
.mypage-table.user-info-table tbody td .form-input {
	padding: 6px 10px;
}
.mypage-table.user-info-table tbody td .error-message:not(:empty) {
	margin-top: var(--spacing-3);
	padding: 0 var(--spacing-3);
    font-size: var(--text-body-sm);
    font-weight: 400;
    line-height: 1.3333;
}
.user-info-table-btn {
	padding: 9px 15px;
}
.user-info-confirm-actions {
	display: flex;
	gap: var(--spacing-3);
	margin-top: var(--spacing-5);
}

/* 포인트 */
.card-layout {
	display: flex;
	flex-direction: row;
	justify-content: space-between;
	gap: var(--spacing-7);
}

.card-layout .card {
	width: 50%;
	border-radius: var(--radius-3);
}

.card-layout .card:nth-of-type(2) .value-link {
	justify-content: flex-end;
}

.point-positive {
	font-size: var(--text-body-lg);
	font-weight: 600;
	line-height: var(--text-heading-md);
	color: var(--primary);
}

.point-negative {
	font-size: var(--text-body-lg);
	font-weight: 600;
	line-height: var(--text-heading-md);
	color: var(--text-primary);
}

.point-description li {
	position: relative;
	padding-left: 20.64px; /* 커스텀 불렛 공간 확보 */
	font-size: var(--text-body-md);
	line-height: 1.4285;
	color: var(--text-third);
}

/* 커스텀 불렛 "·" 추가 */
.point-description li::before {
	content: "•";
	position: absolute;
	left: var(--spacing-3);
	font-size: inherit;
	line-height: inherit;
	color: inherit;
}

.point-description ol {
	margin-left: 20.64px;
}
.point-description ol li {
	padding-left: 0;
	list-style-type: decimal;
}
.point-description ol li::before {
	content: none;
}

.point-history-unit {
	margin-left: 2px;
	font-size: inherit;
	font-weight: inherit;
	line-height: inherit;
	color: inherit;
}

/* 출금 버튼 아이콘 크기 조절 (포인트 페이지 모달 내부) */
.card-layout .btn svg, 
#accountModal .btn svg,
#withdrawHistoryModal .btn svg {
	width: var(--spacing-7) !important;
	height: var(--spacing-7) !important;
}

/* 포인트 입력 관련 스타일 */
.order-point-box {
	gap: var(--spacing-5);
}

.order-point-input-box {
	position: relative;
	width: 100%;
}

/* render_input의 label 숨기기 */
.input-point-text .label {
	display: none;
}

.point-label.mypage-point-label {
	position: absolute;
	top: 50%;
	left: var(--spacing-5);
	transform: translateY(-50%);
	margin-top: 1px;
	font-size: var(--text-body-lg);
	font-weight: 500;
	line-height: 1.4285;
	color: #9ca3af;
	z-index: 2;
	pointer-events: none;
}

.input-point-text .form-input {
	position: relative;
	padding-left: 90px;
	padding-right: 65px;
	font-size: var(--text-body-lg);
	font-weight: 600;
	line-height: 1.3333;
	text-align: right;
	color: var(--primary);
	z-index: 1;
}

.input-point-text .form-input::placeholder {
	font-weight: 400;
}

.point-unit {
	position: absolute;
	top: 50%;
	right: 50px;
	transform: translateY(-50%);
	font-size: var(--text-body-lg);
	font-weight: 500;
	line-height: 1.4285;
	z-index: 2;
	pointer-events: none;
}

.btn-point-reset {
	position: absolute;
	top: 50%;
	right: var(--spacing-5);
	transform: translateY(-50%);
	width: var(--spacing-7);
	height: var(--spacing-7);
	padding: 0;
	border: none;
	background: transparent;
	cursor: pointer;
	z-index: 3;
	display: flex;
	align-items: center;
	justify-content: center;
}

.btn-point-reset svg {
	width: var(--spacing-7);
	height: var(--spacing-7);
}

/* 포인트 페이지: 모든 컬럼 균일 */
/* .mypage-table-point {
	table-layout: fixed;
	width: 100%;
	min-width: 640px;
}

.mypage-table-point th,
.mypage-table-point td {
	width: 33.33%;
	min-width: 150px;
} */

/* 포인트 페이지: 컬럼별 너비 설정 */
.mypage-table-point {
	table-layout: fixed;
	width: 100%;
	min-width: 800px;
}

.mypage-table-point th,
.mypage-table-point td {
	min-width: 120px;
}

/* 발생일자: 15% */
.mypage-table-point th:nth-child(1),
.mypage-table-point td:nth-child(1) {
	width: 15%;
}

/* 구분: 12% */
.mypage-table-point th:nth-child(2),
.mypage-table-point td:nth-child(2) {
	width: 12%;
}

/* 내용: 38% (더 넓게) */
.mypage-table-point th:nth-child(3),
.mypage-table-point td:nth-child(3) {
	width: 58%;
}

/* 적립/사용 내역: 35% */
.mypage-table-point th:nth-child(4),
.mypage-table-point td:nth-child(4) {
	width: 15%;
}

/* 포인트 페이지: 출금 내역 테이블 (settlements-withdraw-table과 동일한 col 기반 스타일) */
.mypage-point-cards {
	display: grid;
	grid-template-columns: repeat(4, 1fr);
	gap: var(--spacing-7);
}
.card-layout.mypage-point-cards .card {
	width: 100%;
}
.card-layout.mypage-point-cards .card:first-child {
	grid-column: span 2;
}

.mypage-point-card-with-btn {
	display: flex;
	justify-content: space-between;
	gap: var(--spacing-5);
}
.mypage-point-card-with-btn .btn--large:hover .icon.icon--custom svg path {
	stroke: var(--secondary);
}
.mypage-point-card-with-btn .btn--large:disabled .icon.icon--custom svg path {
	stroke: var(--text-disabled);
}

.mypage-point-card-content {
    display: flex;
    flex-direction: column;
    justify-content: space-between;
    gap: var(--spacing-8);
    width: 100%;
}
.mypage-point-card-content .price {
	margin-left: 0;
	margin-right: var(--spacing-2);
}

.mypage-table tbody td.text-right {
	text-align: right;
}

/* 활동 페이지: 제목 컬럼(3번째) 제외하고 균일 */
.mypage-table-activity th:nth-child(1),
.mypage-table-activity td:nth-child(1),
.mypage-table-activity th:nth-child(2),
.mypage-table-activity td:nth-child(2),
.mypage-table-activity th:nth-child(4),
.mypage-table-activity td:nth-child(4) {
	width: 160px;
	min-width: 160px;
}

/* 제목 컬럼(3번째)은 나머지 공간을 모두 차지 */
.mypage-table-activity th:nth-child(3),
.mypage-table-activity td:nth-child(3) {
	width: auto;
	min-width: 160px;
}

/* =========================================================================
   모바일 로그아웃 버튼  ========================================================================= */
.mypage-mobile-logout {
	display: none;
}

/* =========================================================================
   탭 스타일 (support.css에서 가져옴)  ========================================================================= */
   .support-tabs .nav-tabs {
    width: 100%;
    display: flex;
}

.support-tabs .nav-item {
    flex: 1;
}

.support-tabs .nav-link {
    justify-content: center;
    width: 100%;
}

/* 탭 콘텐츠는 사용하지 않지만 구조를 위해 숨김 처리 */
#support-tabs-content,
#event-filter-tabs-content {
    display: none !important;
}

/* 은행 선택 필드 너비 고정 */
.account-bank-wrapper {
    width: 200px;
    flex-shrink: 0;
}

.account-bank-other-wrapper {
    display: none;
    width: 200px;
    flex-shrink: 0;
}
.account-bank-wrapper .custom-selectbox-md .custom-selectbox-selected {
	padding: calc(var(--spacing) * 5) var(--spacing-4);
	font-size: var(--text-body-lg);
    font-weight: 400;
    line-height: 1.5;
}

/* 은행과 계좌번호 입력 필드 레이아웃 */
.account-bank-row {
    display: flex;
    gap: var(--spacing-3);
    align-items: flex-end;
}

/* 현재 보유 포인트 표시 영역 */
.withdraw-point-info-row {
    display: flex;
    flex-direction: row;
    gap: var(--spacing-3);
    align-items: center;
}

.withdraw-point-info-row .point-label-text {
    font-size: var(--text-heading-sm);
    font-weight: 500;
    line-height: var(--text-heading-sm);
    color: var(--text-primary);
}

.withdraw-point-info-row .point-value {
    font-size: var(--text-heading-sm);
    font-weight: 600;
    line-height: 1.2;
    color: var(--text-primary);
}

.withdraw-point-info-row .point-value .price {
    margin-left: 0;
	margin-right: var(--spacing-2);
	font-size: inherit;
	font-weight: inherit;
	line-height: inherit;
    color: var(--blue-600);
}

/* =========================================================================
   Breakpoints  ========================================================================= */
@media (max-width: 1440px) {
	.mypage-layout {
		padding: calc(var(--spacing-9) * 2) var(--spacing-5);
	}
	.mypage-mobile-logout {
		display: block;
	}
}

@media (max-width: 1024px) {
	/* 브레드크럼 숨기기 */
	.page-header {
		display: none;
	}
	/* .pc-sidebar.mypage-sidebar {
		background: var(--pc-sidebar-background);
	} */
	/* 모바일에서 사이드바 숨기기 */
	.pc-sidebar.mypage-sidebar {
		display: none;
	}
	.mypage-layout {
		min-height: calc(100dvh - var(--header-h) - var(--tab-bar-h));
		min-height: calc(100vh - var(--header-h) - var(--tab-bar-h));
	}
	/* 모바일에서 컨테이너 전체 너비 사용 */
	.mypage-container {
		width: 100%;
		padding-left: 0;
	}
	.mypage-title-box.mypage-title {
		display: none;
	}

	/* 모달 */
	/* 서비스 내역 관련 모달 */
	.modal-body .form-flex-row:has(.service-datetime-time) {
		gap: var(--spacing-3);
	}
	.modal-body .form-flex-row .service-datetime-time .label {
		display: none;
	}

	/* 
	    start: 대시보드
	*/
	.mypage-bento-box {
		grid-template-columns: repeat(2, 1fr);
		grid-template-rows: repeat(3, auto);
	}
	.mypage-bento-box.partner-bento-box {
		grid-template-columns: repeat(2, 1fr);
		grid-template-rows: auto auto;
	}
	.mypage-bento-box .card.point,
	.mypage-bento-box .card.date {
		grid-column: span 1;
	}
	.mypage-bento-box.partner-bento-box .card.partner-monthly-amount {
		grid-column: span 2;
		grid-row-start: 1;
	}

	.partner-bento-box-table {
		display: flex;
		flex-direction: column;
		gap: var(--spacing-7);
	}
	.partner-bento-box-table .card {
		gap: var(--spacing-7);
		padding-top: 23px;
		border-radius: 0;
		border-top: 1px solid var(--color-stroke);
		background: var(--white) !important;
	}
	.partner-bento-box-table .card-header,
	.partner-bento-box-table .card-body,
	.mypage-bento-box .card.partner-table .card-body {
		padding: 0;
	}

	.partner-bento-box-table .btn--text.btn--edit-gray {
		padding: 0;
		border: none;
	}
	.partner-bento-box-table .mypage-table thead th {
		padding: 6px;
		background: var(--gray-200);
	}
	.partner-bento-box-table .mypage-table tbody td {
		padding: var(--spacing-3);
	}
	.partner-table-date-label {
		display: none;
	}
	/* 
	    end: 대시보드
	*/
}

@media (max-width: 768px) {
	.mobile-only {
		display: block;
	}
	.desktop-only {
		display: none;
	}
	.pagination-wrapper {
        margin-top: 0;
    }

	/* 모바일에서 사이드바 숨기기 */
	.pc-sidebar.mypage-sidebar {
		display: none;
	}
	
	/* 모바일에서 컨테이너 전체 너비 사용 */
	.mypage-container {
		width: 100%;
		padding-left: 0;
	}
	
	/* 모바일에서 레이아웃 패딩 조정 */
	.mypage-layout {
		padding: var(--spacing-7) var(--spacing-5) var(--spacing-9);
	}
	
	/* mobile top nav tabs가 있을 때 컨텐츠가 가려지지 않도록 패딩 추가 */
	.mobile-top-nav-tabs ~ .mypage-layout {
		padding-top: calc(var(--spacing-7) + 48px); /* 탭 높이(약 48px) 추가 */
	}
	
	/* 구독 계약 상세 페이지: 모바일에서 기존 탭 네비게이션 숨김 */
	/* 탭 네비게이션 영역 자체를 숨김 */
	#subscription-tabs {
		display: none;
	}

	/* 페이지 타이틀 */
	h2.mypage-title {
		display: none;
	}
	.heading-lg {
		/* heading-sm */
		font-size: var(--text-heading-sm);  /* 20px */
		line-height: 1.2;  /* 24px */
	}

	.mypage-title-box.mypage-title {
		display: none;
	}

	.section-order .table-data-row {
		padding: 0;
	}

	.table-data-row.mobile-only-style {
		margin-top: var(--spacing-5);
		margin-bottom: -8px;
	}
	.table-data-row .heading-sm,
	.table-data-row .heading-xs {
		font-size: var(--text-body-md);
		line-height: 150%;
	}
	.table-data-row .price {
		margin-left: 0;
	}
	.table-data-row .table-data-actions .btn--large {
		padding: var(--spacing-3) var(--spacing-4);
		font-size: var(--text-body-md);
		line-height: 1.4285;  /* 20px */
	}

	/* 활동: 모바일 전용 카드형 리스트 */
	.activity-list-mobile {
		margin-top: 0;
	}
	.activity-list-mobile__list {
		list-style: none;
		margin: 0;
		padding: 0;
		border-top: 2px solid var(--gray-600);
	}
	.activity-list-mobile__item {
		border-bottom: 1px solid var(--color-stroke);
	}
	.activity-list-mobile__item:last-child {
		border-bottom: 2px solid var(--gray-600);
	}
	.activity-list-mobile__link {
		display: flex;
		flex-direction: column;
		gap: var(--spacing-5);
		padding: var(--spacing-7) 0;
		text-decoration: none;
		color: inherit;
	}
	.activity-list-mobile__link:hover {
		background: var(--blue-050);
	}
	.activity-list-mobile__link:hover .activity-list-mobile__category,
	.activity-list-mobile__link:hover .activity-list-mobile__title,
	.activity-list-mobile__link:hover .activity-list-mobile__date {
		color: var(--blue-700);
	}
	.activity-list-mobile__link:active {
		background: var(--blue-050);
	}
	.activity-list-mobile__content {
		display: flex;
		flex-direction: column;
		gap: var(--spacing-3);
	}
	.activity-list-mobile__category {
		display: inline-block;
		font-size: var(--text-body-md);
		font-weight: 600;
		line-height: var(--text-body-lg);
		text-decoration: none;
		color: var(--text-secondary);
	}
	.activity-list-mobile__title {
		display: -webkit-box;
		margin: 0 0 var(--spacing-2);
		font-size: var(--text-body-lg);
		font-weight: 600;
		line-height: 1.5;
		color: var(--text-primary);
		-webkit-line-clamp: 2;
		-webkit-box-orient: vertical;
		overflow: hidden;
		text-overflow: ellipsis;
	}
	.activity-list-mobile__footer {
		display: flex;
		justify-content: space-between;
		align-items: center;
		gap: var(--spacing-3);
	}
	.activity-list-mobile__date {
		font-size: var(--text-body-sm);
		font-weight: 600;
		line-height: var(--text-body-lg);
		color: var(--text-secondary);
	}
	.activity-list-mobile__badge {
		font-size: var(--text-body-sm);
		flex-shrink: 0;
	}
	.activity-list-mobile__no-data {
		padding: var(--spacing-8);
		text-align: center;
		color: var(--gray-300);
		font-size: var(--text-body-md);
		margin: 0;
		border-top: 1px solid var(--color-bg-card);
	}

	/* 테이블 */
	.mypage-table th, .mypage-table thead th {
		padding: 3px 6px;
		font-size: var(--text-body-md);
		line-height: var(--text-heading-md);
	}

	/* 회원 정보 / 회원정보확인: 모바일에서 테이블을 블록형 폼처럼 표시 */
	.mypage-table.user-info-table,
	.mypage-table.user-info-confirm-table {
		display: block;
	}
	.mypage-table.user-info-table colgroup,
	.mypage-table.user-info-confirm-table colgroup {
		display: none;
	}
	.mypage-table.user-info-table tbody,
	.mypage-table.user-info-confirm-table tbody {
		display: block;
	}
	.mypage-table.user-info-table tbody tr,
	.mypage-table.user-info-confirm-table tbody tr {
		display: flex;
		flex-direction: column;
		align-items: stretch;
		border: none;
		padding: var(--spacing-5) 0 0;
		text-align: left;
	}
	.mypage-table.user-info-table tbody tr:first-child,
	.mypage-table.user-info-confirm-table tbody tr:first-child {
		padding-top: 0;
	}
	.mypage-table.user-info-table tbody th,
	.mypage-table.user-info-confirm-table tbody th {
		display: block;
		text-align: left;
		padding: 0 var(--spacing-3) var(--spacing-3);
		border: none;
		background: transparent;
		font-size: var(--text-body-md);
		font-weight: 400;
		line-height: var(--text-heading-md);
	}
	.mypage-table.user-info-table tbody td,
	.mypage-table.user-info-confirm-table tbody td {
		display: block;
		padding: 0;
		text-align: left;
		border: none;
	}
	.mypage-table.user-info-table tbody td .flex-wrapper {
		flex-direction: column;
		align-items: stretch;
		gap: var(--spacing-5);
	}
	.mypage-table.user-info-table tbody td .user-info-table-btn,
	.mypage-table.user-info-confirm-table tbody td .btn {
		width: 100%;
		justify-content: center;
	}

	.mypage-table.user-info-table tbody th.th-password {
		display: none;
	}

	.mypage-table.user-info-table .social-login-box .login-button svg {
		width: var(--spacing-9);
		height: var(--spacing-9);
	}
	/* 회원 정보: 모바일에서 하단 바텀 버튼(sticky), 스크롤 시 원래 자리에서 플로팅 해제, tab-bar 숨김 */
	.user-info-sticky-sentinel {
		height: 1px;
		pointer-events: none;
	}
	.mypage-user-info-page .button-wrapper.user-info {
		z-index: 10;
		position: sticky;
		bottom: 0;
		left: 0;
		right: 0;
		justify-content: center;
		gap: var(--spacing-3);
		background: var(--white);
		padding-top: var(--spacing-4);
		padding-bottom: var(--spacing-5);
	}
	.mypage-user-info-page .button-wrapper.user-info.is-stuck {
		width: calc(100% + 32px);
		margin-left: -16px;
		padding-left: var(--spacing-5);
		padding-right: var(--spacing-5);
		box-shadow: 0 -2px 8px rgba(0, 0, 0, 0.06);
	}
	/* 파트너 계정 전환 영역과 사업자 정보 수정 버튼 1:1 너비 */
	.mypage-user-info-page .button-wrapper.user-info > #partnerConvertBtnWrapper,
	.mypage-user-info-page .button-wrapper.user-info > .btn {
		flex: 1 1 calc((100% - var(--spacing-3)) / 2);
		min-width: 0;
	}
	.mypage-user-info-page .button-wrapper.user-info > #partnerConvertBtnWrapper {
		display: flex;
	}
	.mypage-user-info-page .button-wrapper.user-info > #partnerConvertBtnWrapper .btn {
		flex: 1;
		min-width: 0;
	}
	.mypage-user-info-page .button-wrapper.user-info .btn {
		width: 100%;
		box-sizing: border-box;
	}
	body:has(.mypage-user-info-page) .tab-bar-container {
		display: none;
	}

	/* 회원 정보 / 회원정보확인: 모바일 버튼·확인 영역 */
	.user-info-confirm-desc {
		margin-bottom: var(--spacing-6);
		color: var(--text-secondary, #6c757d);
		font-size: var(--text-body-md);
	}
	.user-info-confirm-actions {
		display: flex;
		justify-content: center;
		gap: var(--spacing-3);
		margin-top: var(--spacing-7);
	}
	.user-info-confirm-actions .btn {
		flex: 1 1 0;
		width: 100%;
	}

	/* 구독 계약 상세 */
	#subscription-tabs-content {
		margin-top: 0;
	}
	.subscription-contracts-tab-content .mypage-table-wrapper h3.mb-016 {
		margin-bottom: var(--spacing-4);
		font-size: var(--text-body-md);
		font-weight: 700;
		line-height: var(--text-heading-sm);
	}
	.subscription-contracts-tab-content {
		gap: var(--spacing-5);
	}
	.mypage-table.subscription-contracts-table colgroup .col-th {
		width: 106px;
	}
	.mypage-table.subscription-contracts-table tbody td {
		padding: var(--spacing-4);
		font-size: var(--text-body-md);
		line-height: var(--text-heading-sm);
	}
	.contract-payment-method-info {
		gap: 6px;
	}
	.contract-payment-method-info .body-lg {
		font-size: var(--text-body-md);
		line-height: var(--text-heading-sm);
	}
	.member-info-row-desktop {
		display: none;
	}
	.member-info-row-mobile {
		display: table-row;
	}
	.subscription-contracts-tab-content .mypage-table th,
	.subscription-contracts-tab-content .mypage-table td {
		overflow: visible;
		text-overflow: clip;
		white-space: normal;
		word-break: break-word;
	}
	.mypage-table.subscription-contracts-install-items-table tbody td,
	.mypage-table.subscription-contracts-install-items-table tbody td span.mobile-only,
	.mypage-table.subscription-contracts-install-items-table tbody tr:has(.edit-actions-cell) td {
		padding: var(--spacing-4) var(--spacing-3);
		font-size: var(--text-body-sm);
		line-height: var(--text-body-lg);
	}
	.mypage-table.subscription-contracts-list-table th {
		padding: var(--spacing-4) var(--spacing-3);
		font-size: var(--text-body-md);
		line-height: var(--text-heading-md);
	}
	.mypage-table.subscription-contracts-list-table td {
		padding: var(--spacing-4) var(--spacing-3);
		font-size: var(--text-body-sm);
		line-height: var(--text-body-lg);
		overflow: visible;
		text-overflow: clip;
		white-space: normal;
		word-break: break-word;
	}
	.mypage-table.subscription-contracts-list-table .td-col-box div {
		font-size: var(--text-body-sm);
		line-height: var(--text-body-lg);
	}
	.subscription-contracts-install-items-table colgroup .col-serial-number,
	.subscription-contracts-install-items-table colgroup .col-edit-actions {
		display: none;
	}
	.subscription-contracts-install-items-table colgroup .col-install-address {
		width: 30%;
	}
	.subscription-contracts-install-items-table colgroup col:nth-child(2) {
		width: 48px;
	}
	.subscription-contracts-install-items-table colgroup col:nth-child(5) {
		width: 80px;
	}
	.subscription-contracts-install-items-table thead th:nth-child(3),
	.subscription-contracts-install-items-table tbody td.serial-number-cell,
	.subscription-contracts-install-items-table thead th:nth-child(6),
	.subscription-contracts-install-items-table tbody td.edit-actions-cell {
		display: none;
	}
	.subscription-contracts-install-items-table .install-serial-number {
		display: block;
		margin-top: 3px;
		font-size: var(--text-body-sm);
		line-height: var(--text-body-lg);
		word-break: break-all;
		color: var(--text-third);
	}
	.subscription-contracts-install-items-table .install-address-text.desktop-only {
		display: none;
	}
	.subscription-contracts-install-items-table .install-address-button {
		display: block;
		width: 100%;
		padding: 0;
		border: 0;
		background: transparent;
		font: inherit;
		line-height: inherit;
		word-break: break-word;
		text-align: center;
		text-decoration: underline;
		color: var(--blue-600);
		cursor: pointer;
	}
	.subscription-contracts-install-items-table .install-address-button.is-empty {
		color: var(--text-third);
	}
	/* 설치 위치 수정 모달 */
	#editInstallAddressModal .modal-header {
		justify-content: start;
		padding: var(--spacing-5) var(--spacing-7) 0;
		border: none;
	}
	#editInstallAddressModal .modal-header .btn-close {
		display: none;
	}
	#editInstallAddressModal .modal-body {
    	margin: var(--spacing-5) 0;
		padding: 0 var(--spacing-7);
	}
	.install-address-modal {
		display: flex;
		flex-direction: column;
		gap: var(--spacing-4);
	}
	.install-address-modal-subtitle {
		font-size: var(--text-body-md);
		line-height: var(--text-heading-sm);
	}
	#editInstallAddressModal .modal-footer {
		padding: 0 var(--spacing-7) var(--spacing-5);
	}
	#editInstallAddressModal .modal-footer .btn--small {
		width: calc(50% - 4px);
	}

	/* 모바일용 조회 결과 요약 카드 */
	.order-filter-summary-card-mobile {
		display: flex;
		flex-direction: column;
		gap: var(--spacing-5);
	}
	.order-filter-summary-header-mobile .heading-sm {
		margin-bottom: var(--spacing-5);
		font-size: var(--text-body-md);
		font-weight: 600;
		line-height: var(--text-heading-sm);
	}

	.order-filter-summary-table-mobile-wrapper {
		border-radius: var(--radius-2);
		border: 1px solid var(--color-stroke);
		overflow: hidden;
	}
	.order-filter-summary-table-mobile {
		width: 100%;
	}

	.order-filter-summary-col-label {
		width: 106px;
	}

	.order-filter-summary-col-value {
		width: auto;
	}

	.order-filter-summary-row-mobile {
		border-bottom: 1px solid var(--gray-100);
	}

	.order-filter-summary-row-mobile:last-child {
		border-bottom: none;
	}

	.order-filter-summary-label-mobile {
		width: 106px;
		padding: var(--spacing-4);
		background: var(--gray-100);
		font-size: var(--text-body-md);
		font-weight: 500;
		line-height: var(--text-heading-md);
		text-align: center;
		color: var(--text-primary);
		vertical-align: middle;
	}

	.order-filter-summary-label-mobile.bold {
		font-weight: 600;
	}
	.order-filter-summary-value-mobile {
		padding: var(--spacing-4);
		font-size: var(--text-body-md);
		font-weight: 400;
		line-height: var(--text-heading-sm);
		vertical-align: middle;
		white-space: normal;
		word-break: break-all;
		color: var(--text-primary);
	}
	.order-filter-summary-value-mobile.text-right {
		text-align: right;
	}
	.order-filter-summary-value-mobile .count {
		margin-right: var(--spacing-2);
	}
	.order-filter-summary-value-mobile .price {
		margin-left: 0;
		margin-right: var(--spacing-2);
		font-weight: 600;
		color: var(--primary);
	}

	/* 조회 결과 요약 - 포인트 적립/사용/출금: 두 줄(건수 / 금액) */
	.order-filter-summary-value-point {
		display: flex;
		flex-direction: column;
		align-items: flex-end;
		gap: var(--spacing-2);
	}
	.order-filter-summary-value-point .order-filter-summary-point-line {
		display: block;
		font-size: var(--text-body-md);
		line-height: var(--text-heading-sm);
		color: var(--text-primary);
	}
	/* 포인트 적립·출금완료: 숫자에만 파란색·크기·굵기 적용 (건/원 단위는 기본 스타일) */
	.order-filter-summary-value-earn .order-filter-summary-point-line:first-child .order-filter-summary-point-num,
	.order-filter-summary-value-approved .order-filter-summary-point-line:first-child .order-filter-summary-point-num {
		font-size: inherit;
		font-weight: inherit;
		color: var(--blue-600);
	}
	.order-filter-summary-value-earn .order-filter-summary-point-line:last-child .order-filter-summary-point-num,
	.order-filter-summary-value-approved .order-filter-summary-point-line:last-child .order-filter-summary-point-num {
		font-size: inherit;
		font-weight: 600;
		color: var(--blue-600);
	}

	/* 
	    start: 주문 내역 모바일
	*/
	.order-summary-extra-left .body-lg {
		font-size: var(--text-body-md);
		line-height: var(--text-heading-xs);
	}
	.order-item {
		padding: var(--spacing-4);
	}
	.order-item-content {
		gap: var(--spacing-4);
	}
	.order-item-image {
		width: 80px;
		min-width: 80px;
		height: 80px;
	}
	.order-item-details-header {
		flex-direction: column-reverse;
		align-items: flex-start;
		gap: var(--spacing-2);
	}
	.order-item-details-title .order-title {
		font-size: var(--text-body-lg);
		line-height: var(--text-heading-sm);
	}
	.order-item-content-badges {
		gap: var(--spacing-2);
	}
	.order-item-details {
		gap: var(--spacing-2);
	}
	.order-item-meta {
		margin-top: var(--spacing-2);
	}
	.order-price {
		font-size: var(--text-body-md);
		line-height: 1.5;
	}
	.order-item-detail-btn-box {
 		margin-top: var(--spacing-3);
	}
	/* 
		end: 주문 내역 모바일 
	*/

	.order-point-box {
		gap: var(--spacing-4);
	}
	
	.mobile-order-list {
		display: flex;
		flex-direction: column;
		gap: var(--spacing-7);
		margin-top: var(--spacing-3);
	}
	.mobile-order-empty {
		padding: var(--spacing-7);
		text-align: center;
	}
	.mobile-order-item {
		display: flex;
		flex-direction: column;
		gap: var(--spacing-3);
	}
	.mobile-order-item-header {
		display: flex;
		justify-content: space-between;
		align-items: center;
		gap: var(--spacing-3);
		width: 100%;
	}
	.mypage-table-wrapper:has(.mobile-service-list) {
		margin-top: -16px;
	}
	.mobile-order-item-header-product-name {
		display: flex;
		align-items: center;
		gap: var(--spacing-3);
		font-size: var(--text-body-md);
		font-weight: 600;
		line-height: 150%;
	}
	.mobile-order-item-header-product-name .mobile-order-item-header-id {
		font-weight: 400;
		color: var(--text-third);
	}
	.mobile-order-item-header-id {
		font-size: var(--text-body-md);
		font-weight: 600;
		line-height: 150%;
	}
	.mobile-order-item-header-badges {
		display: flex;
		gap: var(--spacing-3);
		flex-shrink: 0;
	}
	.mobile-order-item-table-wrapper {
		border-top: 1px solid var(--gray-100);
		border-bottom: 1px solid var(--gray-100);
	}
	.order-filter-summary-value-mobile.product-list {
		padding: 6px var(--spacing-4);
	}
	.mobile-order-item-item {
		display: flex;
		align-items: flex-start;
		gap: var(--spacing);
		padding: 6px 0;
		border-bottom: 1px solid var(--gray-100);
	}
	.mobile-order-item-item:last-child {
		border-bottom: none;
	}
	
	.mobile-order-item-item-image {
		flex-shrink: 0;
		width: 24px;
		height: 24px;
		object-fit: cover;
		border-radius: 4px;
	}
	
	.mobile-order-item-item-content {
		flex: 1;
		display: flex;
		flex-direction: column;
		gap: var(--spacing);
	}
	
	.mobile-order-item-item-name {
		font-size: var(--text-body-sm);
		line-height: var(--text-body-lg);
		color: var(--text-primary);
	}
	
	.mobile-order-item-item-option {
		font-size: var(--text-body-sm);
		line-height: var(--text-body-lg);
		color: var(--text-primary);
	}
	
	.mobile-order-item-item-addon {
		font-size: var(--text-body-sm);
		line-height: var(--text-heading-xs);
		color: var(--gray-400);
		margin-top: var(--spacing-1);
	}

	/* 거래명세서 모바일 */
	.transaction-statement-summary-mobile,
	.transaction-statement-total-mobile,
	.transaction-statement-supplier-mobile {
		display: flex;
		flex-direction: column;
		gap: var(--spacing-5);
	}
	.transaction-statment-table-wrapper:has(.transaction-statment-table-mobile) {
		border-color: var(--gray-300);
	}
	.transaction-statement-mobile-actions {
		display: flex;
		align-items: center;
		justify-content: space-between;
		gap: var(--spacing-4);
		margin-bottom: var(--spacing-2);
	}
	.transaction-statement-mobile-actions .custom-checkbox {
		padding: 3px;
		gap: var(--spacing-2);
	}
	.transaction-statement-mobile-actions .btn-transaction-statement-print {
		white-space: nowrap;
	}
	.transaction-statment-table-mobile {
		table-layout: fixed;
	}
	.transaction-statment-table-mobile col.transaction-mobile-col {
		width: 16.66%;
	}
	.mypage-table.transaction-statment-table-mobile thead th {
		padding: var(--spacing-3) var(--spacing-4);
		border-color: var(--color-stroke);
		background: var(--gray-100);
		font-size: var(--text-body-md);
		line-height: var(--text-heading-md);
	}
	.mypage-table.transaction-statment-table-mobile thead tr:last-child th {
		border-bottom: 0;
	}
	.mypage-table.transaction-statment-table-mobile tbody td {
		padding: var(--spacing-4) var(--spacing-3);
		border-color: var(--color-stroke);
		font-size: var(--text-body-sm);
		line-height: var(--text-body-lg);
		vertical-align: middle;
	}
	.transaction-statment-table-mobile tbody tr.transaction-statment-mobile-row > td {
		border-top: 1px solid var(--gray-300);
	}
	.mypage-table.transaction-statment-table-mobile tbody .transaction-statment-mobile-tax-row > td {
		border-bottom: 0;
	}
	.transaction-statment-mobile-date-cell {
		text-align: left;
	}
	.transaction-statment-mobile-date-cell-inner {
		display: flex;
		align-items: center;
		gap: 3.67px;
	}
	.transaction-statment-mobile-date-cell .custom-checkbox {
		padding: 3px;
	}
	.transaction-statment-mobile-text {
		font-size: var(--text-body-sm);
		line-height: var(--text-body-lg);
	}
	.transaction-statment-mobile-product-cell {
		text-align: left;
		white-space: normal;
		word-break: break-word;
	}
	.transaction-statment-mobile-point {
		margin-top: var(--spacing-2);
	}
	.transaction-statment-table-mobile .price {
		font-size: var(--text-body-sm);
		line-height: var(--text-body-lg);
	}
	.transaction-statment-mobile-amount-row td {
		text-align: right;
	}
	.transaction-statment-mobile-amount-row td:first-child,
	.transaction-statment-mobile-amount-row td:nth-child(2) {
		color: var(--text-primary);
	}
	.transaction-statement-footer-btn .btn-transaction-statement-print {
		padding: var(--spacing-3) 14px;
		background: var(--secondary);
		border-color: var(--secondary);
		font-size: var(--text-body-md);
		line-height: var(--text-heading-sm);
	}
	.transaction-statement-footer-btn .btn-transaction-statement-print:hover {
		border-color: var(--blue-900);
		background: var(--blue-900);
	}
	
	/* 
	    start: 대시보드
	*/
	.mypage-user-box.user .mypage-user-info {
		justify-content: space-between;
		width: 100%;
	}
	.mypage-user-box.user .mypage-user-info-left {
		display: flex;
		align-items: center;
		gap: var(--spacing-5);
	}
	.mypage-user-box.user .btn {
		display: none;
	}
	.mypage-user-box.user .mypage-partner-switch-btn.mobile-only {
		display: inline-flex;
		flex-shrink: 0;
	}
	.mypage-partner-switch-wrap.desktop-only {
		display: none;
	}

	.mypage-user-box.partner {
		padding-top: 17px;
		border-top: 1px solid var(--color-stroke);
	}

	.mypage-bento-box.mobile-only {
		display: grid;
		padding-top: var(--spacing-7);
		border-top: 1px solid var(--color-stroke);
	}

	.mypage-user-info .badge {
		--bs-badge-padding-x: var(--spacing-3);
		--bs-badge-border-radius: 200px;
		padding: var(--spacing) var(--bs-badge-padding-x);
		font-size: var(--text-body-md);  /* 14px */
		line-height: 150%;
	}

	.mypage-bento-box {
		gap: var(--spacing-4);
	}
	.partner-bento-box-table {
        gap: var(--spacing-7);
    }
	.mypage-bento-box.mobile-only {
		grid-template-columns: repeat(2, 1fr);
		grid-template-rows: auto auto;
	}
	.mypage-bento-box .card-body {
		padding: var(--spacing-5);
	}
	.mypage-bento-box .card.point .card-body, .mypage-bento-box .card.date .card-body, .mypage-bento-box .card.sns .card-body {
		display: flex;
		flex-direction: column;
		justify-content: space-between;
		gap: 6px;
	}
	.card-body .heading-lg,
	.card-body .heading-sm {
		font-size: var(--text-body-md);  /* 14px */
		line-height: 150%;
	}
	.mypage-bento-box .card.point .value-link h3.heading-lg,
	.mypage-bento-box .card.point .value-link h3.heading-lg .emphasis,
	.mypage-bento-box .card.point .value-link h3.heading-lg .unit-group,
	.mypage-bento-box .card.point .value-link h3.heading-lg .unit {
		line-height: 21px
	}
	.mypage-bento-box .card.point .value-link h3.heading-lg .unit {
		margin-right: 0;
	}
	.mypage-bento-box .card.point .value-link h3.heading-lg .icon-inline svg {
		width: 18px;
		height: 18px;
	}

	.mypage-bento-box .value-link.small .emphasis {
		color: var(--primary);
	}

	/* 모바일에서 그리드 레이아웃 적용 */
	.mypage-bento-box .card-with-icon .card-body {
		display: grid;
		grid-template-columns: 1fr auto;
		grid-template-rows: auto 1fr;
		align-items: start;
		gap: 3px var(--spacing-4);
		position: relative;
	}
	.mypage-bento-box .card-with-icon .card-body > .icon {
		grid-column: 2;
		grid-row: 2;
		align-self: end;
		justify-self: end;
	}
	.mypage-bento-box .card-with-icon .card-body > h4.heading-sm {
		grid-column: 1;
		grid-row: 1;
	}
	.mypage-bento-box .card-with-icon .card-body > .value-link {
		grid-column: 1;
		grid-row: 2;
		align-self: end;
	}
	.card:not(:has(.btn--text.btn--edit-gray)) .icon svg,
	.social-login-box .login-button svg {
		width: var(--spacing-7);
		height: var(--spacing-7);
	}

	.mypage-bento-box .card.sns .card-body {
		gap: 3px;
	}
	.social-login-box-wrapper {
		justify-content: flex-start;
	}
	.social-login-box {
		gap: var(--spacing-4);
	}

	.mypage-mobile-logout {
		display: block;
	}
	/* 
	    end: 대시보드
	*/

	/* 모달 폼 */
	.modal-body .form-flex-row {
		flex-direction: column;
	}
	/* 
		start: 모달 풀 사이즈 (md 사이즈부터)
	*/
	.modal .modal-dialog.modal-md,
	.modal.fade.modal-animate .modal-dialog.modal-md,
	.modal .modal-dialog.modal-lg,
	.modal.fade.modal-animate .modal-dialog.modal-lg {
		max-width: 100%;
		height: 100vh;
		height: 100dvh;
		margin: 0;
	}
	.modal .modal-md .modal-content,
	.modal .modal-lg .modal-content {
		height: 100vh;
		height: 100dvh;
		max-height: 100vh;
		max-height: 100dvh;
		border-radius: 0;
		box-shadow: none;
	}
	.modal .modal-md .modal-header,
	.modal .modal-lg .modal-header {
		height: var(--header-h);
	}
	.modal-content:has(.tabs-container.full-width-tabs) .tabs-container.full-width-tabs {
		padding: 0 var(--spacing-5);
	}
	.modal .modal-md .modal-body,
	.modal .modal-lg .modal-body {
		padding: 0 var(--spacing-5);
	}
	.modal .modal-md .modal-footer,
	.modal .modal-lg .modal-footer {
		padding: 0 var(--spacing-5) var(--spacing-7);
	}
	.modal-footer .btn--large {
		width: calc(50% - 0.25rem);
		padding: 10px 22px;
		font-size: var(--text-body-lg);
		line-height: 1.5;
	}

	.modal .modal-md .form-item .label,
	.modal .modal-lg .form-item .label {
		padding: 0 var(--spacing-3);
		font-size: var(--text-body-md);
		font-weight: 400;
		line-height: var(--text-heading-md);
	}
	/* 
		end: 모달 풀 사이즈 (md 사이즈부터)
	*/

	/* 모달 포인트 출력 폼의 은행+계좌 필드 */
	.account-bank-row {
		flex-direction: column;
	}
	.account-bank-wrapper,
	.account-bank-row .form-item,
	.account-bank-row .flex-grow-1 {
		width: 100%;
	}
	.withdraw-point-info-row {
		margin-top: var(--spacing-5);
	}

	/* 
	
		start: 구독 계약 상세
	*/
	.btn-contract-file-view-box {
		justify-content: flex-start;
	}
	.btn-contract-file-view {
		padding: var(--spacing-3) var(--spacing-4);
		font-size: var(--text-body-md);
		line-height: var(--text-heading-sm);
	}
	.btn.btn-contract-file-view .icon {
		display: none;
	}
	/* 
		end: 구독 계약 상세
	*/

	/* 
		start: 견적서 발행
	 */
	.estimate-section {
		gap: var(--spacing-8);
	}
	.estimate-section .mypage-title-box {
		display: none;
	}
	.estimate-header {
		flex-direction: column;
		gap: var(--spacing-8);
	}
	/* 고객 정보 입력 */
	.customer-info-form .heading-sm {
		margin-bottom: 0;
	}
	.customer-info-form {
		gap: var(--spacing-5);
		width: 100%;
	}
	/* 공급자 정보 */
	.business-info-table-wrap {
		display: flex;
		flex-direction: column;
		gap: var(--spacing-5);
		width: 100%;
		margin-top: unset;
	}
	.business-info-table colgroup {
		display: none;
	}
	.business-info-table tbody tr {
		display: grid;
		grid-template-columns: 110px 1fr;
	}
	.business-info-table th,
	.business-info-table td {
		width: auto;
	}
	.business-info-table th.th-middle {
		border-top: 0;
		border-bottom: 0;
	}
	/* 구매 견적서 */
	.estimate-container {
		gap: var(--spacing-5);
		padding: 0;
	}
	.estimate-action-buttons {
		width: 100%;
		justify-content: space-between;
		gap: var(--spacing-3);
	}
	.estimate-print-button-wrap--mobile .btn {
		width: 100%;
	}
	.estimate-body-header {
		flex-direction: column;
		align-items: flex-start;
		gap: var(--spacing-5);
	}
	.estimate-action-button-group {
		gap: var(--spacing-3);
	}
	.estimate-mobile-check-all {
		display: flex;
		align-items: center;
		gap: var(--spacing-2);
		font-size: var(--text-body-md);
		line-height: var(--text-body-lg);
		color: var(--text-secondary);
	}
	.estimate-mobile-check-all .custom-checkbox {
		padding: 3px;
	}
	.estimate-action-buttons .btn--large {
        padding: var(--spacing-3) var(--spacing-4);
        font-size: var(--text-body-md);
        line-height: var(--text-heading-sm);
    }
	.estimate-items-mobile {
		display: flex;
		flex-direction: column;
		gap: var(--spacing-4);
	}
	.estimate-mobile-empty {
		display: flex;
		flex-direction: column;
		justify-content: center;
		align-items: center;
		gap: var(--spacing-7);
		padding: var(--spacing-9) var(--spacing-5);
		text-align: center;
	}
	.estimate-mobile-empty-icon svg {
		width: 80px;
		height: 80px;
	}
	.estimate-mobile-empty-icon svg path {
		stroke: var(--gray-200);
	}
	.estimate-mobile-empty-text {
		font-size: var(--text-heading-xs);
		font-weight: 600;
		line-height: var(--text-heading-md);
		color: var(--gray-300);
	}
	.estimate-mobile-list {
		display: flex;
		flex-direction: column;
		gap: var(--spacing-5);
	}
	.estimate-mobile-list:empty {
		margin-top: -16px;
	}
	.estimate-mobile-item {
		display: flex;
		flex-direction: column;
		gap: var(--spacing-4);
		padding: var(--spacing-4);
		border-radius: var(--radius-2);
		border: 1px solid var(--gray-200);
		background: var(--white);
	}
	.estimate-mobile-item-top {
		display: flex;
		align-items: flex-start;
		gap: var(--spacing-4);
	}
	.estimate-mobile-item-check {
		flex-shrink: 0;
		display: flex;
		flex-direction: column;
		align-items: center;
		gap: var(--spacing-4);
		width: var(--spacing-7);
	}
	.estimate-mobile-item-check .custom-checkbox {
		padding: 3px;
	}
	.estimate-mobile-item-no {
		font-size: var(--text-body-sm);
		line-height: var(--text-body-lg);
		color: var(--text-third);
	}
	.estimate-mobile-item-image {
		flex-shrink: 0;
		display: flex;
		justify-content: center;
		align-items: center;
		border-radius: 4px;
		overflow: hidden;
	}
	.estimate-mobile-item-image .estimate-product-image,
	.estimate-mobile-item-image .estimate-no-image {
		width: 80px;
		height: 80px;
	}
	.estimate-mobile-item-image .estimate-no-image {
		display: flex;
		justify-content: center;
		align-items: center;
		border-radius: 4px;
		background: var(--gray-100);
	}
	.estimate-mobile-item-info {
		flex: 1;
		display: flex;
		flex-direction: column;
		gap: var(--spacing-2);
		min-width: 0;
	}
	.estimate-mobile-item-title {
		display: flex;
		flex-wrap: wrap;
		align-items: center;
		gap: var(--spacing-2);
	}
	.estimate-mobile-item-name {
		font-size: var(--text-body-lg);
		font-weight: 600;
		line-height: var(--text-heading-md);
		color: var(--text-primary);
	}
	.estimate-mobile-item-option,
	.estimate-mobile-item-term {
		font-size: var(--text-body-sm);
		line-height: 150%;
		word-break: break-word;
		white-space: normal;
		color: var(--text-secondary);
	}
	.estimate-mobile-item-meta {
		display: flex;
		flex-direction: column;
		gap: 0;
	}
	.estimate-mobile-item-price {
		margin-top: var(--spacing-2);
		font-size: var(--text-body-md);
		line-height: 150%;
	}
	.estimate-price-value {
		font-size: inherit;
		line-height: inherit;
		color: var(--primary);
	}
	.estimate-price-number {
		font-size: inherit;
		font-weight: 600;
		line-height: inherit;
		color: inherit;
	}
	.estimate-mobile-item-footer {
		display: flex;
		align-items: center;
		justify-content: space-between;
		gap: var(--spacing-4);
		padding-top: var(--spacing-4);
		border-top: 1px solid var(--gray-200);
	}
	.estimate-mobile-item-total {
		font-size: var(--text-body-md);
		line-height: 150%;
		white-space: nowrap;
	}
	.estimate-items-pagination {
		margin-top: 0;
	}
	.estimate-items-pagination:empty {
		margin-top: -16px;
	}
	.estimate-mobile-summary {
		display: flex;
		align-items: center;
		justify-content: space-between;
		gap: var(--spacing-4);
		padding: var(--spacing-4) var(--spacing-5);
		border-radius: var(--radius-2);
		background: var(--gray-100);
	}
	.estimate-mobile-summary-label {
		font-size: var(--text-body-lg);
		font-weight: 600;
		line-height: var(--text-heading-md);
		color: var(--text-primary);
	}
	.estimate-mobile-summary-value {
		color: var(--text-primary);
	}
	.estimate-mobile-summary-value .price {
		font-size: var(--text-heading-sm);
		font-weight: 700;
		line-height: var(--text-heading-md);
		color: var(--primary);
	}
	/* 
		end: 견적서 발행
	*/

	/* 
		start: 포인트
	*/
	.mypage-point-cards {
		display: grid;
		grid-template-rows: repeat(2, auto);
		grid-template-columns: repeat(2, 1fr);
		gap: var(--spacing-4);
	}
	.card-layout.mypage-point-cards .card:first-child {
		grid-column: span 2;
	}
	.mypage-point-card-with-btn {
		align-items: flex-end;
	}
	.mypage-point-card-with-btn .mypage-point-card-content {
		gap: var(--spacing-3);
	}
	.mypage-point-card-with-btn .btn--large {
		padding: var(--spacing-3) 14px;
		font-size: var(--text-body-md);
		line-height: var(--text-heading-sm);
	}
	.mypage-point-card-with-btn .btn--large .icon.icon--custom svg {
		width: var(--spacing-5) !important;
		height: var(--spacing-5) !important;
	}
	.mypage-point-cards .card {
		border-radius: var(--radius-2);
	}
	.mypage-point-cards .card-body {
		padding: var(--spacing-5);
	}
	.mypage-point-card-content {
		gap: 0;
	}
	.mypage-point-card-content .heading-md {
		padding: 3px 0;
        font-size: var(--text-body-md);
        line-height: 150%;
		text-align: right;
    }
	.mypage-point-card-with-btn .mypage-point-card-content .heading-md {
		text-align: left;
	}

	.mypage-point-history-table.desktop-only {
		display: none;
	}

	/* 적립 내역 모바일: 조회 내역 상세 목록 (이미지와 동일) */
	.point-history-list-mobile-title {
		font-size: var(--text-body-lg);
		font-weight: 600;
		line-height: 1.5;
		color: var(--text-primary);
		margin: 0 0 var(--spacing-4) 0;
		padding: 0;
	}
	.point-history-list-mobile-list {
		list-style: none;
		margin: 0;
		padding: 0;
		border-top: 1px solid var(--color-stroke);
	}
	.point-history-item-mobile {
		display: flex;
		justify-content: space-between;
		align-items: flex-start;
		gap: var(--spacing-3);
		padding: var(--spacing-5) 0;
		border-bottom: 1px solid var(--color-stroke);
		min-height: 0;
	}
	.point-history-item-mobile-left {
		flex: 1;
		min-width: 0;
		display: flex;
		flex-direction: column;
		gap: var(--spacing-3);
	}
	.point-history-item-mobile-desc {
		font-size: var(--text-body-sm);
		font-weight: 500;
		line-height: var(--text-body-lg);
		color: var(--text-primary);
		word-break: keep-all;
	}
	.point-history-item-mobile-meta {
		font-size: var(--text-body-sm);
		line-height: var(--text-body-lg);
		color: var(--text-third);
	}
	.point-history-item-mobile-right {
		flex-shrink: 0;
		display: flex;
		flex-direction: column;
		align-items: flex-end;
		gap: var(--spacing-3);
	}
	.point-history-item-mobile-amount {
		font-size: var(--text-body-sm);
		font-weight: 500;
		line-height: var(--text-body-lg);
	}
	.point-history-item-mobile-amount.point-positive {
		color: var(--primary);
	}
	.point-history-item-mobile-amount.point-negative {
		color: var(--text-primary);
	}
	.point-history-item-mobile-type {
		font-size: var(--text-body-sm);
		line-height: var(--text-body-lg);
		color: var(--text-third);
	}
	/* 
		end: 포인트
	*/

	/* 
		start: 배송지
	*/
	.mypage-address-section .table-data-row {
		flex-direction: column-reverse;
		align-items: flex-start;
		gap: var(--spacing-7);
		width: 100%;
	}
	.mypage-address-section .table-data-row > div,
	.mypage-address-section .table-data-row .btn {
		width: 100%;
	}
	.mypage-address-section .table-data-row .btn {
		padding: 10px;
		font-size: var(--text-body-lg);
		line-height: var(--text-heading-md);
	}
	.mypage-address-section .table-data-row .btn svg {
		width: var(--spacing-5);
		height: var(--spacing-5);
	}
	.address-content {
		gap: var(--spacing);
	}
	.address-content .recipient {
		gap: var(--spacing-2);
	}
	.address-content .delivery-name.heading-sm {
		justify-content: space-between;
		font-size: var(--text-body-md);
		font-weight: 500;
		line-height: var(--text-heading-sm);
	}
	.address-content .recipient .body-lg {
		font-size: var(--text-body-sm);
		line-height: var(--text-body-lg);
	}
	.address-content .body-lg.address {
		margin-top: 6px;
		font-size: var(--text-body-sm);
		line-height: var(--text-body-lg);
	}
	.item-action-buttons-wrapper .btn {
		padding: var(--spacing-3) 14px;
		font-size: var(--text-body-md);
		line-height: var(--text-heading-sm);
	}
	.selected-label {
		gap: var(--spacing-2);
		font-size: var(--text-body-md);
		line-height: var(--text-heading-sm);
	}
	.selected-label svg {
		width: var(--spacing-5);
		height: var(--spacing-5);
	}
	/* 
		end: 배송지
	*/

	/* 
		start: 카드
	*/
	.mypage-card-section .table-data-row.justify-end .card-register-inner,
	.mypage-card-section .table-data-row.justify-end .btn {
		width: 100%;
	}
	.mypage-card-section .table-data-row.justify-end .btn {
		padding: 10px;
		font-size: var(--text-body-lg);
		line-height: var(--text-heading-md);
	}
	.mypage-card-section .table-data-row.justify-end .btn svg {
		width: var(--spacing-5);
		height: var(--spacing-5);
	}
	.mypage-credit-card-list .mypage-bottom-border-item {
		padding-bottom: var(--spacing-5);
	}
	.credit-card-info-box {
		gap: var(--spacing-5);
	}
	.credit-card-image-box {
		gap: var(--spacing-3);
	}
	.credit-card-details {
		gap: var(--spacing);
		width: 100%;
	}
	.credit-card-meta {
		justify-content: space-between;
		width: 100%;
	}
	.credit-card-meta .credit-card-name.heading-sm {
		font-size: var(--text-body-md);
		font-weight: 500;
		line-height: var(--text-heading-sm);
	}
	.credit-card-number,
	.cms-account-holder,
	.cms-account-join-status,
	.cms-account-registered  {
		font-size: var(--text-body-sm);
		line-height: var(--text-body-lg);
	}
	.cms-account-join-status .badge {
		padding: 2px 6px;
		font-weight: 500;
		line-height: 1.2;
	}
	/* 
		end: 카드
	*/
}
