/* EmptyState — 마ì´íŽ˜ì´ì§€ 리스트류 ë°ì´í„° ì—†ìŒ ê³µí†µ ìƒíƒœ */
.empty-state {
display: flex;
flex-direction: column;
align-items: center;
gap: 20px;
padding: 80px 16px;
background: #ffffff;
}
.empty-state__icon-text {
display: flex;
flex-direction: column;
align-items: center;
gap: 12px;
}
.empty-state__message {
font-family: Pretendard, sans-serif;
font-size: 14px;
font-weight: 500;
line-height: 18px;
letter-spacing: 0.0014em;
color: #9b9b9b;
text-align: center;
margin: 0;
}
.empty-state__button {
display: inline-flex;
align-items: center;
justify-content: center;
gap: 4px;
padding: 7px 20px;
border: none;
border-radius: 8px;
text-decoration: none;
cursor: pointer;
}
.empty-state__button--dark {
background: #202020;
}
.empty-state__button--dark .empty-state__button-label {
color: #ffffff;
}
/* accent(1:1ë¬¸ì˜ Empty 등) — Figma CS-003: 빈 안내는 하단 80px 패딩으로 ëë‚˜ê³ ,
ê·¸ 아래 ë³„ë„ ButtonArea(pad 16/16/20)ì— 328×52 ì „í ë²„íŠ¼ì´ ë†“ìž„.
컨테ì´ë„ˆ gap 96 = 빈 안내 하단 80 + ButtonArea ìƒë‹¨ 16 */
.empty-state--accent {
gap: 96px;
padding: 80px 16px 20px;
}
.empty-state__button--accent {
width: 100%;
height: 52px;
border-radius: 8px;
background: #f0f4fe;
}
/* Figma Button/Buttons ë¼ë²¨ 16px/500 (dark variant 14px/500ê³¼ 구분) */
.empty-state__button--accent .empty-state__button-label {
font-size: 16px;
line-height: 24px;
color: #3c56d6;
}
.empty-state__button-label {
font-family: Pretendard, sans-serif;
font-size: 14px;
font-weight: 500;
line-height: 18px;
letter-spacing: 0.0014em;
white-space: nowrap;
}
/* Figma CL-007 Toast/Type — ë‹¤í¬ ë°°ê²½(#202020) + radius 12, 하단 ê³ ì •.
position:fixed는 ë·°í¬íЏ 기준ì´ë¼ PCì—서 .page__content.site(우측 --pc-content-width
컬럼)ê°€ ì•„ë‹ˆë¼ í™”ë©´ ì •ì¤‘ì•™ì— ëœ¨ëŠ” ë¬¸ì œê°€ ìžˆì—ˆìŒ â€” _productDetail.cssì˜ .share-toast와
ë™ì¼í•œ 3단 ë¸Œë ˆì´í¬í¬ì¸íŠ¸ë¡œ 콘í…ì¸ ì»¬ëŸ¼ í/위치를 그대로 ë”°ë¼ê°€ê²Œ 함 */
/* 페ì´ë“œ+슬ë¼ì´ë“œì—… ì¸/아웃 — ToastProviderê°€ BottomSheet와 ë™ì¼í•œ mount-hold 패턴으로
is-visible í´ëž˜ìŠ¤ë¥¼ 붙였다 뗀다. ë¸Œë ˆì´í¬í¬ì¸íŠ¸ë§ˆë‹¤ 가로 ì •ë ¬ìš© transform(translateX)ì´
달ë¼ì„œ, 닫힌 ìƒíƒœì˜ translateY(8px)를 ê° ë¸Œë ˆì´í¬í¬ì¸íŠ¸ì˜ ê¸°ì¡´ transformì— ì´ì–´ë¶™ì´ê³
is-visibleì—서 ê·¸ 오프셋만 0으로 ë˜ëŒë¦°ë‹¤(BottomSheet.css와 ë™ì¼í•œ ë°©ì‹) */
.app-toast {
position: fixed;
left: 20px;
right: 20px;
bottom: 90px;
z-index: 100;
display: flex;
align-items: center;
justify-content: space-between;
gap: 24px;
/* Figma Toast/Type — ë†’ì´ 48 ê³ ì •(좌우 16, ìƒí•˜ 0), fill #202020 a0.88 */
padding: 0 16px;
min-height: 48px;
border-radius: 12px;
background-color: rgba(32, 32, 32, 0.88);
box-sizing: border-box;
opacity: 0;
transform: translateY(8px);
transition: opacity 0.25s ease, transform 0.25s ease;
pointer-events: none;
}
.app-toast.is-visible {
opacity: 1;
transform: translateY(0);
pointer-events: auto;
}
@media (min-width: 501px) {
.app-toast {
left: 50%;
right: auto;
width: calc(500px - 40px);
transform: translateX(-50%) translateY(8px);
}
.app-toast.is-visible {
transform: translateX(-50%) translateY(0);
}
}
@media (min-width: 1001px) {
.app-toast {
left: auto;
right: calc((100vw - 1000px) / 2 + 20px);
width: calc(var(--pc-content-width) - 40px);
transform: translateY(8px);
}
.app-toast.is-visible {
transform: translateY(0);
}
}
.app-toast__content {
display: flex;
align-items: center;
gap: 8px;
min-width: 0;
}
/* Figma CL-007 — ì°œ(WishList) 변형만 ì•„ì´ì½˜-í…스트 gap 4(카트 ë³€í˜•ì€ 8) */
.app-toast__content--like {
gap: 4px;
}
.app-toast__message {
font-family: Pretendard, sans-serif;
font-size: 13px;
font-weight: 400;
color: #ffffff;
white-space: nowrap;
overflow: hidden;
text-overflow: ellipsis;
}
/* ì•¡ì…˜("보러가기") — Figma 13px/400(메시지와 ë™ì¼ 굵기) */
.app-toast__action {
flex-shrink: 0;
background: none;
border: none;
padding: 0;
font-family: Pretendard, sans-serif;
font-size: 13px;
font-weight: 400;
color: #ffffff;
white-space: nowrap;
}
/* 취소 · 반품 · êµí™˜ ëª©ë¡ â€” Figma MY-003(5295:30384).
ë²¤ë” êµ¬ 스킨(ì§™ì€ ë‚¨ìƒ‰ ë°°ê²½/height:60px) ë¬´ë ¥í™” ë° ê³µìš© 밑줄 íƒ ë°°ê²½/높ì´/í°íЏí¬ê¸°Â·
굵기/비활성색/êµ¬ë¶„ì„ ì œê±°ëŠ” ì „ë¶€ _layout.cssì˜ .tabs 공용 오버ë¼ì´ë“œë¡œ ì´ì „ë¨ â€”
ì´ íŒŒì¼ì—” ë²¤ë” old-skinì´ ì•„ì´í…œ(li) 단위로 깔아둔 ë°°ê²½(#f8f8f8)/border-topì„
ë˜ëŒë¦¬ëŠ”, ì´ í´ëž˜ìŠ¤ëª…ë§Œ 겪는 세부 리셋만 남긴다. */
.claims__tabs .tabs__item {
background-color: transparent;
border-top: none;
border-bottom: 2px solid transparent;
}
.claims__tabs .tabs__item.on {
background-color: transparent;
border-bottom-width: 2px;
}
/* ── ëª©ë¡ ì„¹ì…˜ — Figma CancelCardSection(5295:30384): #fafafa ë°°ê²½ + pad 16, 카드 간격
20px. ë²¤ë” .claims__content{padding:20px}(í° ë°°ê²½) ëŒ€ì‹ Orders(.orders__list)와 ë™ì¼í•˜ê²Œ
ëª©ë¡ ì»¨í…Œì´ë„ˆ(.claims__list)ê°€ 회색 ë°°ê²½/íŒ¨ë”©ì„ ê°–ëŠ”ë‹¤(빈 ìƒíƒœëŠ” í° ë°°ê²½ ìœ ì§€) ── */
.claims__content {
padding: 0;
}
.claims__list {
padding: 16px;
background-color: #fafafa;
}
/* ë²¤ë” .claims__claim-summary+.claims__claim-summary{margin-top:32px} → Figma 카드 간격 20px */
.claims__list .claims__claim-summary + .claims__claim-summary {
margin-top: 20px;
}
/* ë‚ ì§œ + ìƒíƒœ + "주문 ìƒì„¸ë³´ê¸°" í—¤ë” í–‰ — Figma CardHeader(5295:30389).
Orders(.orders__card-header)와 ë™ì¼í•˜ê²Œ 카드 ë°– ìƒë‹¨ 행으로 pad 12/0 */
.claims__claim-header {
display: flex;
align-items: center;
justify-content: space-between;
margin-bottom: 0;
padding: 12px 0;
}
/* ë²¤ë” .claims__identifier{gap:12px;margin-bottom:8px} → Figma CancelStateContainer gap 4 */
.claims__identifier {
display: flex;
align-items: center;
gap: 4px;
margin-bottom: 0;
}
.claims__claim-date {
font-family: Pretendard, sans-serif;
font-size: 14px;
font-weight: 600;
color: #404040;
}
.claims__claim-status {
font-family: Pretendard, sans-serif;
font-size: 14px;
font-weight: 600;
color: #3c56d6;
}
.claims__order-detail-link {
display: flex;
align-items: center;
gap: 4px;
text-decoration: none;
font-family: Pretendard, sans-serif;
font-size: 12px;
color: #9b9b9b;
}
/* ── ìƒí’ˆ 카드 — Figma CancelCardì˜ CardBody(í° ë°°ê²½/#e6e6e6/r8/pad 18·20/gap 16).
ë²¤ë” ê¸°ë³¸ê°’(padding:20px, radius 10 10 10 0, #ddd ë³´ë”)ì„ Orders(.orders__card-body)와
ë™ì¼ 스펙으로 êµì²´ ── */
.claims__product-wrap {
display: flex;
flex-direction: column;
align-items: stretch;
gap: 16px;
padding: 18px 20px;
border-color: #e6e6e6;
border-radius: 8px;
background-color: #ffffff;
}
/* ë²¤ë” gap:16 → Figma ì´ë¯¸ì§€-ì •ë³´ 간격 12(Orders와 ë™ì¼) */
.claims__product {
gap: 12px;
text-decoration: none;
color: inherit;
}
/* Figma ImageContainer(72x72, #fafafa, r4) ì•ˆì— 60x60 ì´ë¯¸ì§€ — 벤ë”
.claims__product img{width:75px;height:75px}를 ì´ ìŠ¤íŽ™ìœ¼ë¡œ êµì²´ */
.claims__product-image {
display: flex;
align-items: center;
justify-content: center;
flex-shrink: 0;
width: 72px;
height: 72px;
border-radius: 4px;
background-color: #fafafa;
overflow: hidden;
}
.claims__product .claims__product-image img {
width: 60px;
height: 60px;
object-fit: cover;
border-radius: 4px;
}
/* Figma InfoArea — ìƒí’ˆëª…/옵션/ê°€ê²©ì„ gap 4로 위ì—서부터 쌓는다 */
.claims__product-description {
display: flex;
flex-direction: column;
gap: 4px;
min-width: 0;
}
/* ë²¤ë” --with-sticker{margin-top:5px} 리셋 + Figma ProductName(14/500/#1b1b1b) */
.claims__product-name {
margin: 0;
font-family: Pretendard, sans-serif;
font-size: 14px;
font-weight: 500;
line-height: 18px;
color: #1b1b1b;
}
.claims__product-name--with-sticker {
margin-top: 0;
}
/* ë²¤ë” {margin:10px 0;min-height:36px;font-size:12px} → Figma 옵션 문구 13/#9b9b9b */
.claims__product-option-label {
margin: 0;
min-height: 0;
font-family: Pretendard, sans-serif;
font-size: 13px;
font-weight: 400;
line-height: 18px;
color: #9b9b9b;
}
/* 벤ë”는 숫ìžë§Œ 16/700/#000ì´ê³ "ì›"ì€ íšŒìƒ‰ìœ¼ë¡œ 분리 — Figma SalePrice는 숫ìž+"ì›"ì´
16/600/#1a1a1a í•˜ë‚˜ì˜ í…스트(Orders .orders__pay-amount-labelê³¼ ë™ì¼ 스펙) */
.claims__pay-amount-label {
display: flex;
align-items: baseline;
gap: 0;
font-family: Pretendard, sans-serif;
font-size: 16px;
font-weight: 600;
color: #1a1a1a;
}
.claims__pay-amount-label .claims__pay-amount {
font-size: 16px;
font-weight: 600;
color: #1a1a1a;
}
/* 카드 본문 하단 ì „í "{취소} ìƒì„¸ë³´ê¸°" — Figma Button/Buttons(288x32, #f0f4fe/#3c56d6, r8) */
.claims__detail-btn {
display: flex;
align-items: center;
justify-content: center;
height: 32px;
border-radius: 8px;
background-color: #f0f4fe;
font-family: Pretendard, sans-serif;
font-size: 14px;
font-weight: 500;
color: #3c56d6;
text-decoration: none;
}
/* ì² íšŒ 버튼 — Figma ëª©ë¡ í”„ë ˆìž„ì—” 없는 요소지만 ê¸°ëŠ¥ìƒ ìœ ì§€. ë²¤ë” ê¸°ë³¸ 스타ì¼(회색 1px
ë³´ë”/radius 0/margin-top:20px)ì´ ê·¸ëŒ€ë¡œ ìƒˆì–´ë‚˜ì˜¤ë˜ ê²ƒì„ í”„ë¡œì 트 카드 CTA 톤(h32/r8,
EmptyState "쇼핑하러 가기"와 ê°™ì€ #202020 ë‹¤í¬ ë²„íŠ¼)으로 êµì²´ — 카드가 gap:16 컬럼ì´ë¼
ë²¤ë” margin-topë„ ë¦¬ì…‹ */
.claims__withdraw-btn {
width: 100%;
height: 32px;
margin-top: 0;
padding: 0;
border: none;
border-radius: 8px;
background-color: #202020;
font-family: Pretendard, sans-serif;
font-size: 14px;
font-weight: 500;
color: #ffffff;
}
/* ì² íšŒ í™•ì¸ ëª¨ë‹¬(빨간 톤, Figma 5319:41801)ì€ _layout.cssì˜ ê³µìš© 패턴
`.modal__box--confirm:has(.modal-danger-marker)`ê°€ 담당 — message 안ì—
modal-danger-marker 표ì‹ë§Œ 넣으면 ë¨(Claims.tsx handleWithdrawClaimBtnClick ì°¸ê³ ) */