@import url('https://fonts.googleapis.com/css2?family=Noto+Sans+KR:wght@300;400;500;600;700;800;900&display=swap');

:root {
  --bg: #0B0B0D;
  --bg-card: rgba(17,17,19,.85);
  --bg-card-solid: #111113;
  --bg-surface: #18181B;
  --bg-elevated: rgba(255,255,255,.015);
  --text: #F2EDE4;
  --text-sub: #A8A8B0;
  --text-muted: #7A7A82;
  --gold: #C5A55A;
  --gold-dark: #9E7F2F;
  --gold-light: #E8D5A3;
  --gold-bg: rgba(197,165,90,.04);
  --gold-border: rgba(197,165,90,.15);
  --gradient-gold: linear-gradient(135deg, #C5A55A 0%, #E8D5A3 50%, #C5A55A 100%);
  --green: #5EAA7D;
  --green-bg: rgba(94,170,125,.1);
  --red: #C07070;
  --red-bg: rgba(192,112,112,.1);
  --blue: #6A9FD8;
  --blue-bg: rgba(106,159,216,.1);
  --orange: #D4A03A;
  --orange-bg: rgba(212,160,58,.1);
  --border: rgba(255,255,255,.06);
  --border-light: rgba(255,255,255,.04);
  --shadow-s: 0 1px 4px rgba(0,0,0,.3);
  --shadow-m: 0 4px 24px rgba(0,0,0,.4);
  --shadow-l: 0 12px 48px rgba(0,0,0,.5);
  --radius: 0; --radius-lg: 0;
  --fs-xs: 13px; --fs-sm: 15px; --fs-base: 17px; --fs-md: 19px;
  --fs-lg: 23px; --fs-xl: 28px; --fs-2xl: 34px;
  --fs-3xl: clamp(2.2rem,5vw,3.4rem);
  --font: 'Noto Sans KR', -apple-system, sans-serif;
  --header-h: 64px; --max-w: 1080px;
  --ease: cubic-bezier(0.4,0,0.2,1);
}
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
html{font-size:var(--fs-base);scroll-behavior:smooth;-webkit-font-smoothing:antialiased}
body{font-family:var(--font);background:var(--bg);color:var(--text);line-height:1.85;letter-spacing:-.01em}
a{color:inherit;text-decoration:none} img{max-width:100%;display:block;object-fit:cover}
ul,ol{list-style:none} button{cursor:pointer;border:none;background:none;font-family:inherit}
input,select,textarea{font-family:inherit;font-size:var(--fs-base)}
.container{max-width:var(--max-w);margin:0 auto;padding:0 28px}
::-webkit-scrollbar{width:5px} ::-webkit-scrollbar-track{background:var(--bg)}
::-webkit-scrollbar-thumb{background:var(--gold-dark);border-radius:3px}

/* ═══ HEADER ═══ */
.header{position:sticky;top:0;z-index:100;background:rgba(11,11,13,.92);backdrop-filter:blur(28px);border-bottom:1px solid rgba(197,165,90,.06);height:var(--header-h);transition:all .4s var(--ease)}
.header.scrolled{box-shadow:0 4px 32px rgba(0,0,0,.5);border-bottom-color:rgba(197,165,90,.12)}
.header-inner{max-width:var(--max-w);margin:0 auto;padding:0 28px;height:100%;display:flex;align-items:center;gap:40px}
.logo{display:flex;align-items:center;gap:8px;font-weight:800;font-size:1.2rem;letter-spacing:3px;color:var(--gold);flex-shrink:0}
.logo-mark{width:32px;height:32px;display:flex;align-items:center;justify-content:center;background:var(--gradient-gold);color:var(--bg)}
.logo span{color:var(--gold-light)}
.gnb{display:flex;gap:36px;flex:1;justify-content:center}
.gnb a{font-size:.82rem;font-weight:500;color:var(--text-muted);transition:color .3s;position:relative;padding:4px 0;letter-spacing:1px;text-transform:uppercase}
.gnb a:hover,.gnb a.on{color:var(--gold)}
.gnb a.on::after{content:'';position:absolute;bottom:-2px;left:0;width:100%;height:1px;background:var(--gold)}
.header-right{display:flex;align-items:center;gap:6px;flex-shrink:0}
.user-grade{display:inline-flex;align-items:center;gap:5px;padding:4px 12px;font-size:.7rem;font-weight:700;letter-spacing:1px;text-transform:uppercase;border:1px solid var(--gold-border);color:var(--gold);margin-right:4px}
.user-grade i{width:12px;height:12px}
.hdr-link{font-size:.78rem;font-weight:500;color:var(--text-muted);padding:6px 14px;transition:color .3s;letter-spacing:.3px}
.hdr-link:hover{color:var(--gold)}
.hdr-sep{width:1px;height:14px;background:rgba(255,255,255,.1);margin:0 2px}
.hdr-logout{font-size:.72rem;font-weight:500;color:var(--text-muted);padding:5px 12px;border:1px solid rgba(255,255,255,.08);transition:all .3s;letter-spacing:.3px}
.hdr-logout:hover{border-color:var(--gold-border);color:var(--gold)}
.hamburger{display:none;flex-direction:column;gap:5px;padding:8px;margin-left:8px}
.hamburger span{display:block;width:20px;height:1.5px;background:var(--gold-light);transition:.3s}

/* ═══ BTN ═══ */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:12px 28px;font-size:.85rem;font-weight:600;transition:all .3s var(--ease);white-space:nowrap;letter-spacing:.5px}
.btn-gold{background:var(--gradient-gold);color:var(--bg);border:none}
.btn-gold:hover{transform:translateY(-2px);box-shadow:0 14px 44px rgba(197,165,90,.28)}
.btn-outline{border:1px solid rgba(197,165,90,.35);color:var(--gold-light);background:transparent}
.btn-outline:hover{border-color:var(--gold);background:rgba(197,165,90,.06);color:var(--gold)}
.btn-lg{padding:17px 44px;font-size:.92rem}
.btn-sm{padding:8px 16px;font-size:var(--fs-xs)}
.btn-sm.btn-gold{background:var(--gradient-gold);color:var(--bg)}

/* ═══ TOGGLE / BANNER ═══ */
.view-toggle{display:flex;background:rgba(255,255,255,.04);padding:3px;border:1px solid rgba(197,165,90,.1)}
.toggle-opt{padding:7px 16px;font-size:var(--fs-xs);font-weight:600;color:var(--text-muted);transition:all .3s var(--ease)}
.toggle-opt.on[data-mode="guest"]{background:rgba(255,255,255,.08);color:var(--text)}
.toggle-opt.on[data-mode="vip"]{background:var(--gold);color:var(--bg)}
.mode-banner{padding:10px 0;font-size:var(--fs-sm);font-weight:500;transition:all .3s var(--ease)}
.mode-banner.mode-guest{background:var(--bg-surface);color:var(--text-muted);border-bottom:1px solid var(--border)}
.mode-banner.mode-vip{background:rgba(197,165,90,.06);color:var(--gold);border-bottom:1px solid var(--gold-border)}

/* ═══ HERO ═══ */
.hero{padding:100px 0 120px;position:relative;overflow:hidden;min-height:80vh;display:flex;align-items:center}
.hero::before{content:'';position:absolute;inset:0;background:radial-gradient(ellipse at 20% 50%,rgba(197,165,90,.07) 0%,transparent 50%),radial-gradient(ellipse at 80% 30%,rgba(197,165,90,.04) 0%,transparent 50%)}
.hero-glow{position:absolute;border-radius:50%;filter:blur(80px);pointer-events:none}
.hero-glow-1{width:500px;height:500px;top:-150px;right:-100px;background:rgba(197,165,90,.08);animation:glowPulse 6s ease-in-out infinite alternate}
.hero-glow-2{width:400px;height:400px;bottom:-100px;left:-80px;background:rgba(197,165,90,.05);animation:glowPulse 8s ease-in-out infinite alternate-reverse}
@keyframes glowPulse{0%{transform:scale(1);opacity:1}100%{transform:scale(1.3);opacity:.5}}
.hero-orb{position:absolute;border-radius:50%;border:1px solid rgba(197,165,90,.08);animation:float 12s ease-in-out infinite}
.hero-orb-1{width:400px;height:400px;top:-100px;right:-80px}
.hero-orb-2{width:250px;height:250px;bottom:60px;left:-60px;animation-delay:-4s}
@keyframes float{0%,100%{transform:translateY(0) rotate(0deg)}50%{transform:translateY(-20px) rotate(3deg)}}
.hero-particles{position:absolute;inset:0;pointer-events:none;z-index:1}
.hero-inner{max-width:620px;position:relative;z-index:2}
.hero-label{display:inline-flex;align-items:center;gap:8px;padding:8px 20px;border:1px solid rgba(197,165,90,.3);font-size:.72rem;letter-spacing:3px;color:var(--gold);margin-bottom:28px;text-transform:uppercase}
.hero-label .dot{width:6px;height:6px;border-radius:50%;background:var(--gold);animation:blink 2s ease-in-out infinite}
@keyframes blink{0%,100%{opacity:1}50%{opacity:.3}}
.hero h1{font-size:var(--fs-3xl);font-weight:900;line-height:1.18;margin-bottom:24px;letter-spacing:-.02em}
.hero h1 .point{background:var(--gradient-gold);-webkit-background-clip:text;-webkit-text-fill-color:transparent}
.hero p{font-size:clamp(.92rem,1.6vw,1.05rem);color:var(--text-sub);line-height:2;margin-bottom:36px;font-weight:300}
.hero-btns{display:flex;gap:14px;flex-wrap:wrap}

/* ═══ SECTION ═══ */
.section{padding:100px 0;position:relative;overflow:hidden}
.section::before{content:'';position:absolute;top:0;left:0;right:0;height:1px;background:linear-gradient(90deg,transparent,rgba(197,165,90,.2),transparent)}
.section-head{text-align:center;margin-bottom:64px}
.section-head .over{font-size:.7rem;font-weight:600;color:var(--gold-dark);text-transform:uppercase;letter-spacing:5px;margin-bottom:20px}
.section-head h2{font-size:clamp(1.6rem,3.2vw,2.4rem);font-weight:800;letter-spacing:-.02em;margin-bottom:16px;line-height:1.35}
.section-head p{font-size:1rem;color:var(--text-sub);max-width:540px;margin:0 auto}

/* ═══ PRODUCT ═══ */
.products-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:20px}
.p-card{background:var(--bg-card);backdrop-filter:blur(20px);border:1px solid rgba(197,165,90,.08);overflow:hidden;transition:all .4s var(--ease);position:relative}
.p-card::after{content:'';position:absolute;bottom:0;left:0;width:100%;height:2px;background:var(--gradient-gold);transform:scaleX(0);transition:transform .4s}
.p-card:hover::after{transform:scaleX(1)}
.p-card:hover{transform:translateY(-4px);box-shadow:0 20px 60px rgba(197,165,90,.08);border-color:rgba(197,165,90,.2)}
.p-card .badge{position:absolute;top:14px;left:14px;z-index:2;padding:5px 14px;font-size:.7rem;font-weight:700;background:var(--gradient-gold);color:var(--bg);letter-spacing:1px;text-transform:uppercase}
.p-card .badge.new{background:var(--green);color:#fff}
.p-card .badge.best{background:var(--red);color:#fff}
.p-card .wish{position:absolute;top:14px;right:14px;z-index:2;width:36px;height:36px;background:rgba(11,11,13,.6);backdrop-filter:blur(8px);display:flex;align-items:center;justify-content:center;color:var(--text-muted);transition:.3s;border:1px solid rgba(255,255,255,.08)}
.p-card .wish:hover,.p-card .wish.on{color:var(--red);border-color:rgba(192,112,112,.3)}
.wish.on{color:var(--red) !important;border-color:rgba(192,112,112,.3) !important}
.wish.on i{fill:currentColor}
.p-card-img{aspect-ratio:4/3;overflow:hidden;background:var(--bg-surface);position:relative}
.p-card-img::after{content:'';position:absolute;inset:0;background:linear-gradient(to top,rgba(11,11,13,.3) 0%,transparent 40%);pointer-events:none}
.p-card-img img{width:100%;height:100%;object-fit:cover;transition:transform .6s var(--ease);filter:brightness(.92)}
.p-card:hover .p-card-img img{transform:scale(1.05);filter:brightness(1)}
.p-card-body{padding:22px}
.p-card-body .cate{font-size:.7rem;color:var(--gold-dark);font-weight:600;margin-bottom:8px;letter-spacing:2px;text-transform:uppercase}
.p-card-body h3{font-size:var(--fs-base);font-weight:600;margin-bottom:6px;line-height:1.4;color:var(--text)}
.p-card-body .desc{font-size:var(--fs-sm);color:var(--text-muted);margin-bottom:16px;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;line-height:1.7}
.price-row{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.price-public{font-size:var(--fs-md);font-weight:700;color:var(--text)}
.rating{display:flex;align-items:center;gap:5px;margin-top:12px;font-size:var(--fs-xs);color:var(--text-muted)}
.stars{color:var(--gold);letter-spacing:1px}
.price-lock-box{display:flex;align-items:center;gap:6px;margin-top:10px;padding:10px 14px;background:rgba(197,165,90,.04);border:1px solid var(--gold-border);font-size:var(--fs-xs);color:var(--gold);font-weight:500}
.price-original{font-size:var(--fs-sm);color:var(--text-muted);text-decoration:line-through}
.price-discount{font-size:var(--fs-xs);font-weight:700;color:var(--red);background:var(--red-bg);padding:2px 8px}
.price-special{display:inline-flex;align-items:center;gap:5px;padding:7px 18px;background:var(--gradient-gold);font-size:var(--fs-md);color:var(--bg);font-weight:800}

/* ═══ DETAIL ═══ */
.detail-wrap{padding:32px 0 80px}
.breadcrumb{padding:14px 0;font-size:var(--fs-sm);color:var(--text-muted);border-bottom:1px solid var(--border);margin-bottom:32px}
.breadcrumb a{color:var(--text-muted);transition:.2s} .breadcrumb a:hover{color:var(--gold)}
.detail-grid{display:grid;grid-template-columns:1fr 1fr;gap:48px;align-items:start}
.gallery{position:sticky;top:calc(var(--header-h) + 24px)}
.gallery-main{aspect-ratio:1;overflow:hidden;background:var(--bg-surface);margin-bottom:12px;border:1px solid var(--border)}
.gallery-main img{width:100%;height:100%;object-fit:cover}
.gallery-thumbs{display:flex;gap:10px}
.gallery-thumbs .thumb{width:72px;height:72px;overflow:hidden;border:1px solid var(--border);cursor:pointer;transition:.3s}
.gallery-thumbs .thumb.on,.gallery-thumbs .thumb:hover{border-color:var(--gold)}
.detail-info h1{font-size:var(--fs-xl);font-weight:700;line-height:1.35;margin-bottom:8px}
.detail-price{padding:24px;background:rgba(197,165,90,.04);border:1px solid var(--gold-border);margin-bottom:24px}
.detail-price .now{font-size:var(--fs-xl);font-weight:900;color:var(--gold)}
.detail-price .was{font-size:var(--fs-base);color:var(--text-muted);text-decoration:line-through}
.detail-price .off{padding:3px 10px;background:var(--red);color:#fff;font-size:var(--fs-xs);font-weight:700}
.detail-actions{display:flex;gap:10px;margin-bottom:24px} .detail-actions .btn{flex:1}
.share-area{padding-top:20px;border-top:1px solid var(--border)}
.share-btn{display:inline-flex;align-items:center;gap:6px;padding:10px 18px;font-size:var(--fs-sm);font-weight:600;border:1px solid var(--border);background:var(--bg-surface);transition:.3s;color:var(--text-sub)}
.share-btn:hover{border-color:var(--gold-border);color:var(--gold)}

/* Modal */
.overlay{position:fixed;inset:0;background:rgba(0,0,0,.6);backdrop-filter:blur(6px);z-index:200;display:none;align-items:center;justify-content:center;padding:24px}
.overlay.show{display:flex}
.modal{background:var(--bg-card-solid);border:1px solid var(--gold-border);max-width:480px;width:100%;padding:36px;position:relative;box-shadow:var(--shadow-l);animation:modalUp .3s var(--ease)}
@keyframes modalUp{from{opacity:0;transform:translateY(16px) scale(.98)}to{opacity:1;transform:none}}
.field{margin-bottom:18px}
.field label{display:block;font-size:var(--fs-sm);font-weight:600;margin-bottom:6px;color:var(--text-sub)}
.field input,.field select{width:100%;padding:12px 14px;border:1px solid rgba(255,255,255,.08);background:rgba(255,255,255,.03);color:var(--text);font-size:var(--fs-base);transition:.3s}
.field input:focus,.field select:focus{outline:none;border-color:var(--gold);box-shadow:0 0 0 3px rgba(197,165,90,.1)}

/* ═══ DASHBOARD ═══ */
.dash{display:grid;grid-template-columns:220px 1fr;min-height:calc(100vh - var(--header-h))}
.side{background:var(--bg-card-solid);border-right:1px solid var(--border);padding:28px 0}
.side-profile{padding:0 20px 24px;border-bottom:1px solid var(--border);margin-bottom:16px}
.side-avatar{width:48px;height:48px;background:var(--gradient-gold);display:flex;align-items:center;justify-content:center;color:var(--bg);font-size:var(--fs-md);font-weight:700;margin-bottom:10px}
.side-profile .name{font-size:var(--fs-base);font-weight:700;color:var(--text)}
.side-profile .tier{font-size:var(--fs-xs);color:var(--gold);font-weight:600;display:flex;align-items:center;gap:4px;margin-top:2px}
.side-nav a{display:flex;align-items:center;gap:10px;padding:11px 20px;font-size:var(--fs-sm);font-weight:500;color:var(--text-muted);transition:.3s;border-left:2px solid transparent}
.side-nav a:hover{background:rgba(197,165,90,.04);color:var(--text)}
.side-nav a.on{background:rgba(197,165,90,.06);color:var(--gold);border-left-color:var(--gold);font-weight:600}
.dash-main{padding:32px 36px;background:var(--bg)}
.dash-title{font-size:var(--fs-xl);font-weight:800;margin-bottom:6px}
.dash-sub{font-size:var(--fs-sm);color:var(--text-sub);margin-bottom:28px}
.period-bar{display:flex;align-items:center;justify-content:space-between;margin-bottom:20px;flex-wrap:wrap;gap:10px}
.period-btns{display:flex;gap:6px}
.period-btns button{padding:7px 16px;font-size:var(--fs-xs);font-weight:600;color:var(--text-muted);background:rgba(255,255,255,.04);transition:.3s;border:1px solid transparent}
.period-btns button.on,.period-btns button:hover{background:var(--gold);color:var(--bg);border-color:var(--gold)}
.date-range{display:flex;gap:6px;align-items:center}
.date-range input{padding:7px 10px;border:1px solid rgba(255,255,255,.08);background:rgba(255,255,255,.03);color:var(--text);font-size:var(--fs-xs)}
.stats{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;margin-bottom:24px}
.stat{background:var(--bg-card);backdrop-filter:blur(20px);border:1px solid rgba(197,165,90,.08);padding:24px;transition:all .4s var(--ease);position:relative;overflow:hidden}
.stat::before{content:'';position:absolute;top:0;left:0;right:0;height:2px;background:var(--gradient-gold);transform:scaleX(0);transition:transform .4s}
.stat:hover::before{transform:scaleX(1)} .stat:hover{border-color:rgba(197,165,90,.2)}
.stat-top{display:flex;align-items:center;justify-content:space-between;margin-bottom:14px}
.stat-ic{width:42px;height:42px;display:flex;align-items:center;justify-content:center;border:1px solid rgba(197,165,90,.15)}
.stat-ic.g{color:var(--gold);background:rgba(197,165,90,.06)}
.stat-ic.gr{color:var(--green);background:var(--green-bg)}
.stat-ic.b{color:var(--blue);background:var(--blue-bg)}
.stat-ic.o{color:var(--orange);background:var(--orange-bg)}
.stat-chg{font-size:var(--fs-xs);font-weight:600;padding:2px 8px}
.stat-chg.up{background:var(--green-bg);color:var(--green)}
.stat-chg.down{background:var(--red-bg);color:var(--red)}
.stat-val{font-size:var(--fs-xl);font-weight:900;margin-bottom:2px;color:var(--text)}
.stat-label{font-size:var(--fs-sm);color:var(--text-muted)}
.kpi-row{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;margin-bottom:24px}
.kpi{background:var(--bg-card);border:1px solid rgba(197,165,90,.06);padding:20px;text-align:center;transition:all .3s}
.kpi:hover{border-color:rgba(197,165,90,.15)}
.kpi .kpi-label{font-size:var(--fs-sm);color:var(--text-muted);margin-bottom:6px}
.kpi .kpi-val{font-size:var(--fs-lg);font-weight:900;color:var(--text)}
.kpi .kpi-sub{font-size:var(--fs-xs);color:var(--text-muted)}
.card-box{background:var(--bg-card);border:1px solid rgba(197,165,90,.08);padding:28px;margin-bottom:24px}
.card-box .card-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:20px}
.card-box .card-head h3{font-size:var(--fs-lg);font-weight:700}
.chart-area{height:260px;background:rgba(255,255,255,.015);border:1px solid var(--border);display:flex;align-items:flex-end;justify-content:center;gap:10px;padding:20px}
.bar{width:36px;background:var(--gradient-gold);transition:height .8s var(--ease)}
.chart-labels{display:flex;justify-content:space-between;padding:10px 20px 0;font-size:var(--fs-xs);color:var(--text-muted)}
.chart-filters{display:flex;gap:6px}
.chart-filters button{padding:6px 14px;font-size:var(--fs-xs);font-weight:600;color:var(--text-muted);background:rgba(255,255,255,.04);transition:.3s;border:1px solid transparent}
.chart-filters button.on,.chart-filters button:hover{background:var(--gold);color:var(--bg)}
.tbl-wrap{background:var(--bg-card);border:1px solid rgba(197,165,90,.08);overflow:hidden;margin-bottom:24px}
.tbl-head{display:flex;align-items:center;justify-content:space-between;padding:20px 24px;border-bottom:1px solid var(--border)}
.tbl-head h3{font-size:var(--fs-lg);font-weight:700}
.tbl{width:100%;border-collapse:collapse}
.tbl thead{background:rgba(255,255,255,.02)}
.tbl th{padding:12px 18px;font-size:.75rem;font-weight:600;color:var(--text-muted);text-align:left;text-transform:uppercase;letter-spacing:1px}
.tbl td{padding:14px 18px;font-size:var(--fs-sm);border-bottom:1px solid var(--border);vertical-align:middle;color:var(--text-sub)}
.tbl tbody tr:hover{background:rgba(197,165,90,.03)}
.pill{display:inline-flex;align-items:center;gap:5px;padding:3px 10px;font-size:var(--fs-xs);font-weight:600}
.pill.active{background:var(--green-bg);color:var(--green)}
.pill.expired{background:var(--red-bg);color:var(--red)}
.pill.pending{background:var(--orange-bg);color:var(--orange)}
.pill-dot{width:5px;height:5px;border-radius:50%;background:currentColor}
.tbl-page{display:flex;justify-content:center;gap:6px;padding:16px}
.dash-two{display:grid;grid-template-columns:1fr 1fr;gap:20px;margin-bottom:24px}
.rank-item{display:flex;align-items:center;gap:14px;padding:12px 0;border-bottom:1px solid var(--border)}
.rank-item:last-child{border-bottom:none}
.rank-num{font-size:var(--fs-sm);font-weight:700;width:20px;text-align:center;color:var(--text-muted)}
.rank-thumb{width:44px;height:44px;overflow:hidden;flex-shrink:0;border:1px solid var(--border)}
.rank-info{flex:1}
.rank-info .name{font-size:var(--fs-sm);font-weight:600;color:var(--text)}
.rank-info .sub{font-size:var(--fs-xs);color:var(--text-muted)}
.rank-val{font-size:var(--fs-sm);font-weight:700;color:var(--gold)}
.activity-item{display:flex;align-items:flex-start;gap:14px;padding:10px 0;border-bottom:1px solid var(--border)}
.activity-item:last-child{border-bottom:none}
.act-ic{width:34px;height:34px;flex-shrink:0;display:flex;align-items:center;justify-content:center}
.act-ic.buy{background:var(--green-bg);color:var(--green)}
.act-ic.view{background:var(--blue-bg);color:var(--blue)}
.act-ic.expire{background:var(--red-bg);color:var(--red)}
.act-ic.create{background:rgba(197,165,90,.08);color:var(--gold)}
.act-info .title{font-size:var(--fs-sm);font-weight:500;color:var(--text)}
.act-info .time{font-size:var(--fs-xs);color:var(--text-muted)}

/* ═══ FOOTER ═══ */
.footer{background:var(--bg-card-solid);border-top:1px solid var(--border);padding:52px 0 28px}
.footer-grid{display:grid;grid-template-columns:2fr 1fr 1fr 1fr;gap:40px;margin-bottom:40px}
.footer-brand p{font-size:var(--fs-sm);color:var(--text-muted);margin-top:12px;line-height:1.8}
.footer-col h4{font-size:.78rem;font-weight:700;margin-bottom:14px;letter-spacing:2px;text-transform:uppercase;color:var(--gold-dark)}
.footer-col a{display:block;font-size:var(--fs-sm);color:var(--text-muted);padding:5px 0;transition:.3s}
.footer-col a:hover{color:var(--gold)}
.footer-bottom{padding-top:20px;border-top:1px solid var(--border);display:flex;justify-content:space-between;align-items:center;font-size:var(--fs-xs);color:var(--text-muted)}

.toast{position:fixed;bottom:28px;right:28px;padding:14px 24px;background:var(--gradient-gold);color:var(--bg);font-size:var(--fs-sm);font-weight:600;box-shadow:0 14px 44px rgba(197,165,90,.28);transform:translateY(120%);opacity:0;transition:.3s var(--ease);z-index:300;letter-spacing:.5px}
.toast.show{transform:translateY(0);opacity:1}

/* ═══ MOBILE NAV ═══ */
.m-nav-bg{position:fixed;inset:0;background:rgba(0,0,0,.6);z-index:200;display:none}
.m-nav-bg.show{display:block}
.m-nav{position:fixed;top:0;right:-300px;bottom:0;width:300px;background:var(--bg-card-solid);z-index:201;padding:24px;box-shadow:var(--shadow-l);transition:right .35s var(--ease);border-left:1px solid var(--gold-border);overflow-y:auto}
.m-nav.open{right:0}
.m-nav .close-x{position:absolute;top:18px;right:18px;color:var(--text-muted);transition:.3s}
.m-nav .close-x:hover{color:var(--gold)}
.m-nav-logo{display:flex;align-items:center;gap:8px;font-weight:800;font-size:1rem;letter-spacing:2px;color:var(--gold);margin-bottom:28px;padding-top:8px}
.m-nav-links a{display:block;padding:13px 0;font-size:var(--fs-md);font-weight:500;border-bottom:1px solid var(--border);color:var(--text-sub);transition:.3s;letter-spacing:.5px}
.m-nav-links a:hover,.m-nav-links a.on{color:var(--gold)}
.m-nav-user{margin-top:28px;padding-top:20px;border-top:1px solid var(--gold-border)}
.m-nav-user .m-user-grade{display:flex;align-items:center;gap:6px;padding:10px 0;font-size:var(--fs-sm);font-weight:600;color:var(--gold)}
.m-nav-user .m-user-name{font-size:var(--fs-sm);color:var(--text-sub);margin-bottom:16px}
.m-nav-user .m-user-links{display:flex;flex-direction:column;gap:2px}
.m-nav-user .m-user-links a{display:block;padding:10px 0;font-size:var(--fs-sm);color:var(--text-muted);border-bottom:1px solid var(--border-light);transition:.3s}
.m-nav-user .m-user-links a:hover{color:var(--gold)}
.m-bottom{display:none;position:fixed;bottom:0;left:0;right:0;background:var(--bg-card-solid);border-top:1px solid var(--border);z-index:100;padding:6px 0;padding-bottom:max(6px,env(safe-area-inset-bottom))}
.m-bottom .items{display:flex;justify-content:space-around}
.m-bottom a{display:flex;flex-direction:column;align-items:center;gap:3px;font-size:11px;color:var(--text-muted);padding:4px 10px;transition:.3s}
.m-bottom a.on{color:var(--gold)}
.cate-filter{display:flex;gap:8px;justify-content:center;margin-bottom:36px;flex-wrap:wrap}
.cate-filter button{padding:9px 22px;font-size:var(--fs-sm);font-weight:500;border:1px solid rgba(197,165,90,.15);background:transparent;color:var(--text-muted);transition:.3s}
.cate-filter button.on,.cate-filter button:hover{background:var(--gold);color:var(--bg);border-color:var(--gold)}
.anim{opacity:0;transform:translateY(28px);transition:opacity .7s ease,transform .7s ease}
.anim.show{opacity:1;transform:none}

/* ═══ RESPONSIVE ═══ */
@media(max-width:1024px){
  .dash{grid-template-columns:1fr} .side{display:none}
  .stats,.kpi-row{grid-template-columns:repeat(2,1fr)}
  .detail-grid{grid-template-columns:1fr;gap:28px} .gallery{position:static}
  .footer-grid{grid-template-columns:1fr 1fr;gap:28px}
  .m-bottom.dash-bottom{display:block} .dash-main{padding-bottom:80px}
  .dash-two{grid-template-columns:1fr}
}
@media(max-width:768px){
  .gnb,.header-right .user-grade,.header-right .hdr-link,.header-right .hdr-sep,.header-right .hdr-logout{display:none}
  .hamburger{display:flex}
  .hero{padding:60px 0 80px;min-height:auto} .hero h1{font-size:clamp(1.8rem,5vw,2.6rem)}
  .section{padding:72px 0}
  .products-grid{grid-template-columns:1fr 1fr;gap:14px}
  .stats,.kpi-row{grid-template-columns:1fr}
  .dash-main{padding:20px 16px 80px}
  .footer-grid{grid-template-columns:1fr;gap:20px}
  .footer-bottom{flex-direction:column;gap:8px;text-align:center}
  .tbl-wrap{overflow-x:auto} .tbl{min-width:640px}
  .view-toggle{display:none} .gate-card{padding:36px 24px}
}
@media(max-width:480px){
  .container{padding:0 16px}
  .hero-btns{flex-direction:column;align-items:stretch}
  .hero-btns .btn{width:100%;text-align:center}
  .products-grid{grid-template-columns:1fr}
}

/* ══ 상품 상세 탭 (상품 상세 / 배송 / 교환·환불) ══ */
.detail-tabs{margin-top:48px;border:1px solid var(--gold-border);background:var(--bg-card);position:relative}
.detail-tabs::before{content:'';position:absolute;top:0;left:0;right:0;height:2px;background:var(--gradient-gold)}
.dt-nav{display:flex;border-bottom:1px solid var(--border);background:rgba(0,0,0,.2)}
.dt-tab{flex:1;display:flex;align-items:center;justify-content:center;gap:8px;padding:18px 20px;background:transparent;border:none;border-right:1px solid var(--border);color:var(--text-muted);font-size:var(--fs-sm);font-weight:600;letter-spacing:.5px;cursor:pointer;transition:.3s;font-family:inherit}
.dt-tab:last-child{border-right:none}
.dt-tab:hover{color:var(--gold-light);background:rgba(197,165,90,.04)}
.dt-tab.on{color:var(--gold);background:rgba(197,165,90,.08);position:relative}
.dt-tab.on::after{content:'';position:absolute;bottom:-1px;left:0;right:0;height:2px;background:var(--gold)}
.dt-body{padding:36px 40px}
.dt-pane{display:none;font-size:var(--fs-sm);color:var(--text-sub);line-height:2}
.dt-pane.on{display:block;animation:dtFade .3s ease}
@keyframes dtFade{from{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}
.dt-pane h4{font-size:var(--fs-md);font-weight:700;color:var(--text);margin:20px 0 12px;padding-bottom:8px;border-bottom:1px solid var(--gold-border)}
.dt-pane h4:first-child{margin-top:0}
.dt-pane p{margin-bottom:12px}
.dt-pane ul{list-style:none;padding:0;margin:0 0 16px}
.dt-pane ul li{padding:8px 0 8px 20px;position:relative;border-bottom:1px solid var(--border);line-height:1.8}
.dt-pane ul li:last-child{border-bottom:none}
.dt-pane ul li::before{content:'';position:absolute;left:4px;top:16px;width:6px;height:1px;background:var(--gold)}
.dt-pane strong{color:var(--text);font-weight:600}
.dt-pane img{max-width:100%;margin:20px 0}
@media(max-width:640px){
  .dt-nav{flex-wrap:wrap}
  .dt-tab{flex:1 1 33.333%;padding:14px 10px;font-size:var(--fs-xs)}
  .dt-body{padding:24px 20px}
}

/* ══ 대시보드 홈 — 통합 수익 하이라이트 카드 ══ */
.total-earn-card{display:grid;grid-template-columns:1fr auto;gap:24px;align-items:center;padding:26px 32px;margin-bottom:24px;background:linear-gradient(135deg,rgba(197,165,90,.08) 0%,rgba(197,165,90,.02) 100%);border:1px solid var(--gold-border);position:relative;overflow:hidden}
.total-earn-card::before{content:'';position:absolute;top:0;left:0;right:0;height:2px;background:var(--gradient-gold)}
.total-earn-card::after{content:'';position:absolute;top:-30%;right:-5%;width:240px;height:240px;background:radial-gradient(circle,rgba(197,165,90,.15) 0%,transparent 60%);pointer-events:none}
.total-earn-card .te-left,.total-earn-card .te-right{position:relative;z-index:1}
.total-earn-card .te-label{font-size:var(--fs-xs);color:var(--text-muted);letter-spacing:2px;text-transform:uppercase;font-weight:600;margin-bottom:6px}
.total-earn-card .te-label span{color:var(--gold-dark);letter-spacing:1px}
.total-earn-card .te-amount{font-size:clamp(1.8rem,3vw,2.4rem);font-weight:900;color:var(--gold);line-height:1;margin-bottom:14px;letter-spacing:-.02em}
.total-earn-card .te-split{display:flex;gap:22px;flex-wrap:wrap}
.total-earn-card .te-split-item{display:flex;align-items:center;gap:8px;font-size:var(--fs-sm);color:var(--text-sub)}
.total-earn-card .te-split-item .dot{width:8px;height:8px;border-radius:50%;flex-shrink:0}
.total-earn-card .te-split-item .dot.sale{background:var(--green)}
.total-earn-card .te-split-item .dot.recruit{background:var(--gold)}
.total-earn-card .te-split-item .nm{color:var(--text-muted)}
.total-earn-card .te-split-item strong{color:var(--text);font-weight:700;margin-left:2px}
.total-earn-card .te-right{display:flex;flex-direction:column;gap:6px}
.total-earn-card .te-link{display:inline-flex;align-items:center;gap:6px;padding:8px 14px;border:1px solid var(--gold-border);color:var(--gold-light);font-size:var(--fs-xs);font-weight:600;transition:.3s;white-space:nowrap}
.total-earn-card .te-link:hover{background:var(--gold);color:var(--bg);border-color:var(--gold)}
@media(max-width:768px){
  .total-earn-card{grid-template-columns:1fr;gap:18px}
  .total-earn-card .te-right{flex-direction:row;flex-wrap:wrap}
}