/* ============================================================
   찐뷰 (眞VIEW) — 모바일 우선 디자인 시스템 v7
   ============================================================ */
:root {
  --bg: #000000; --bg-2: #0a0a0a; --surface: #121212; --surface-2: #1a1a1a;
  --line: #2a2a2a; --line-2: #3a3a3a;
  --text: #ffffff; --text-2: #b8b8b8; --text-3: #707070;
  --accent: #FFD700; --accent-2: #FFB800;
  --primary: #4a7eff; --green: #00d68f; --red: #ff4757; --kakao: #FEE500;
  --emo-7: #0066CC; --emo-6: #3399FF; --emo-5: #99CCFF;
  --emo-4: #808080; --emo-3: #FFCC99; --emo-2: #FF9966; --emo-1: #C00000;
  --radius: 14px; --radius-lg: 20px; --radius-sm: 10px;
  --font-ko: 'Pretendard Variable', Pretendard, -apple-system, BlinkMacSystemFont, system-ui, 'Apple SD Gothic Neo', 'Noto Sans KR', sans-serif;
  --font-cn: 'Noto Serif KR', 'Songti SC', serif;
}
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
html{-webkit-text-size-adjust:100%}
body{font-family:var(--font-ko);background:var(--bg);color:var(--text);-webkit-font-smoothing:antialiased;line-height:1.55;overflow-x:hidden}
a{color:inherit;text-decoration:none;-webkit-tap-highlight-color:transparent}
button{font-family:inherit;cursor:pointer;border:none;background:none;color:inherit;-webkit-tap-highlight-color:transparent}
img,svg,video{max-width:100%;display:block}
input,textarea,select{font-family:inherit;font-size:16px}

/* NAV */
.nav{position:sticky;top:0;z-index:100;background:rgba(0,0,0,.9);backdrop-filter:saturate(180%) blur(20px);border-bottom:1px solid var(--line)}
.nav-inner{display:flex;align-items:center;justify-content:space-between;padding:12px 16px}
.logo{display:inline-flex;align-items:baseline;gap:4px;font-weight:900}
.logo{display:inline-flex;align-items:center;gap:4px;line-height:1}
.logo-cn{font-size:26px;font-weight:900;color:var(--accent);font-family:var(--font-cn);line-height:1;display:inline-flex;align-items:center}
.logo-ko{font-size:24px;font-weight:900;color:var(--text);letter-spacing:-.03em;line-height:1;display:inline-flex;align-items:center}
.nav-links{display:none;align-items:center;gap:6px}
.nav-links a{font-size:14px;color:var(--text-2);padding:8px 10px;font-weight:600}
.nav-links a:hover,.nav-links a.active{color:var(--text)}
.nav-menu-btn{width:40px;height:40px;display:flex;align-items:center;justify-content:center;background:var(--surface);border:1px solid var(--line);border-radius:10px;font-size:20px}
.btn-ghost{display:inline-flex;align-items:center;padding:8px 14px;border-radius:10px;font-size:14px;font-weight:700;background:var(--surface);border:1px solid var(--line);color:var(--text)}
.btn-primary{display:inline-flex;align-items:center;justify-content:center;padding:10px 18px;border-radius:10px;font-size:14px;font-weight:800;background:var(--accent);color:#000}
.btn-primary:hover{opacity:.9}
.nav-drawer{position:fixed;inset:60px 0 0 0;z-index:99;background:var(--bg);padding:24px 20px;display:none;flex-direction:column;gap:4px;overflow-y:auto}
.nav-drawer.open{display:flex}
.nav-drawer a{padding:16px;font-size:17px;font-weight:700;border-bottom:1px solid var(--line);display:flex;justify-content:space-between;align-items:center}
.nav-drawer a::after{content:'→';color:var(--text-3)}
.nav-drawer .btn-primary{margin-top:12px;padding:16px;justify-content:center}

/* CONTAINER */
.container{padding:0 16px}
section{padding:56px 0}

/* HERO */
.hero{padding:32px 16px 48px;position:relative;background:radial-gradient(ellipse at top,#0e0e0e 0%,var(--bg) 60%);overflow:hidden}
.hero-eyebrow{display:inline-block;padding:5px 12px;background:rgba(255,215,0,.1);color:var(--accent);border:1px solid rgba(255,215,0,.3);border-radius:16px;font-size:12px;font-weight:700;margin-bottom:20px}
.hero-h1{font-size:28px;font-weight:900;line-height:1.2;letter-spacing:-.03em;margin-bottom:16px}
.hero-h1 .hl{color:var(--accent)}
.hero-sub{font-size:14px;color:var(--text-2);margin-bottom:24px;line-height:1.6}

.search-bar{display:flex;align-items:stretch;background:var(--surface);border:1px solid var(--line);border-radius:14px;padding:4px;margin-bottom:16px;transition:border-color .2s,box-shadow .2s}
.search-bar:focus-within{border-color:var(--accent);box-shadow:0 0 0 3px rgba(255,215,0,.1)}
.search-icon-box{display:flex;align-items:center;justify-content:center;width:40px;font-size:16px;opacity:.5}
.search-bar input{flex:1;min-width:0;background:transparent;border:none;padding:12px 4px;color:var(--text);font-size:15px;outline:none}
.search-bar input::placeholder{color:var(--text-3)}
.search-btn{padding:0 18px;border-radius:10px;background:var(--accent);color:#000;font-size:14px;font-weight:800;white-space:nowrap}

.search-tags{display:flex;gap:6px;overflow-x:auto;padding:4px 0 12px;scrollbar-width:none;-webkit-overflow-scrolling:touch}
.search-tags::-webkit-scrollbar{display:none}
.search-tag{flex-shrink:0;padding:7px 14px;background:var(--surface);border:1px solid var(--line);border-radius:18px;font-size:13px;color:var(--text-2);font-weight:600}
.search-tag:active{background:var(--surface-2)}

/* 섹션 */
.section-eyebrow{display:inline-block;padding:4px 10px;background:rgba(74,126,255,.12);color:var(--primary);border-radius:14px;font-size:11px;font-weight:700;margin-bottom:12px}
.section-h2{font-size:24px;font-weight:900;line-height:1.25;letter-spacing:-.025em;margin-bottom:12px}
.section-h2 .hl{color:var(--accent)}
.section-h2 .hl-bad{color:var(--red)}
.section-sub{font-size:14px;color:var(--text-2);margin-bottom:28px;line-height:1.7}

/* 거래소 */
.exchange{background:var(--bg-2)}
.flow-stack{display:flex;flex-direction:column;gap:12px;margin-bottom:32px}
.flow-card{padding:20px;background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);text-align:center}
.flow-card.supply{border-color:rgba(74,126,255,.35)}
.flow-card.platform{border-color:rgba(255,215,0,.45);background:linear-gradient(135deg,rgba(255,215,0,.06),var(--surface))}
.flow-card.demand{border-color:rgba(0,214,143,.3)}
.flow-icon{font-size:36px;font-family:var(--font-cn);font-weight:900;color:var(--accent);margin-bottom:12px;line-height:1}
.flow-icon.emoji{font-family:inherit}
.flow-title{font-size:16px;font-weight:800;margin-bottom:6px}
.flow-desc{font-size:13px;color:var(--text-2);line-height:1.55}
.flow-arrow-vert{text-align:center;color:var(--text-3);font-size:12px;padding:4px 0}
.flow-arrow-vert::before{content:'↓ ';color:var(--accent);font-weight:700}

.steps{display:flex;flex-direction:column;gap:12px}
.step{display:flex;gap:14px;padding:18px;background:var(--surface);border:1px solid var(--line);border-radius:var(--radius)}
.step-num{flex-shrink:0;width:28px;height:28px;display:flex;align-items:center;justify-content:center;background:var(--accent);color:#000;border-radius:50%;font-size:13px;font-weight:900}
.step strong{display:block;font-size:14px;font-weight:800;margin-bottom:4px}
.step p{font-size:13px;color:var(--text-2);line-height:1.6}

/* 미리보기 */
.preview{background:var(--bg)}
.preview-cards{display:flex;flex-direction:column;gap:14px;margin-bottom:28px}
.preview-card{padding:18px;background:var(--surface);border:1px solid var(--line);border-radius:var(--radius)}
.preview-card.grade-bg-7{border-left:4px solid var(--emo-7)}
.preview-card.grade-bg-6{border-left:4px solid var(--emo-6)}
.preview-card.grade-bg-5{border-left:4px solid var(--emo-5)}
.preview-card.grade-bg-4{border-left:4px solid var(--emo-4)}
.preview-card.grade-bg-3{border-left:4px solid var(--emo-3)}
.preview-card.grade-bg-2{border-left:4px solid var(--emo-2)}
.preview-card.grade-bg-1{border-left:4px solid var(--emo-1)}

.preview-head{display:flex;gap:6px;margin-bottom:10px}
.pill{font-size:11px;font-weight:800;padding:3px 9px;border-radius:6px}
.pill-gold{background:rgba(255,215,0,.15);color:var(--accent)}
.pill-green{background:rgba(0,214,143,.15);color:var(--green)}
.pill-red{background:rgba(255,71,87,.15);color:var(--red)}

.preview-title{font-size:16px;font-weight:800;line-height:1.4;margin-bottom:8px}
.preview-body{font-size:13px;color:var(--text-2);line-height:1.6;margin-bottom:12px}
.preview-meta{display:flex;flex-direction:column;gap:2px;font-size:11px;color:var(--text-3);padding-bottom:12px;border-bottom:1px solid var(--line);margin-bottom:10px}
.preview-locked{font-size:12px;color:var(--accent);font-weight:700;background:rgba(255,215,0,.08);padding:8px 10px;border-radius:8px}
.preview-cta{display:flex;flex-direction:column;gap:10px}

/* 돈쭐·혼쭐 */
.lists{background:var(--bg-2)}
.lists-stack{display:flex;flex-direction:column;gap:12px}
.list-link{display:block;padding:24px 20px;background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-lg)}
.list-link.donjjul{background:linear-gradient(135deg,rgba(255,215,0,.06),var(--surface));border-color:rgba(255,215,0,.3)}
.list-link.honjjul{background:linear-gradient(135deg,rgba(255,71,87,.05),var(--surface));border-color:rgba(255,71,87,.25)}
.list-link-badge{display:inline-block;padding:4px 10px;background:rgba(255,255,255,.06);border-radius:10px;font-size:11px;font-weight:800;margin-bottom:12px}
.list-link h3{font-size:18px;font-weight:900;margin-bottom:8px;letter-spacing:-.02em}
.list-link p{font-size:13px;color:var(--text-2);line-height:1.6;margin-bottom:14px}
.list-link-cta{display:inline-flex;align-items:center;gap:4px;font-size:12px;font-weight:800;color:var(--accent)}
.list-link.honjjul .list-link-cta{color:var(--red)}
.list-link-cta::after{content:'→'}

/* 가격 */
.price{background:var(--bg)}
.price-stack{display:flex;flex-direction:column;gap:14px}
.price-card{padding:24px 20px;background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-lg);display:flex;flex-direction:column}
.price-card.featured{background:linear-gradient(180deg,rgba(255,215,0,.05),var(--surface));border-color:var(--accent)}
.price-label{display:inline-block;padding:4px 10px;background:rgba(255,255,255,.06);border-radius:10px;font-size:11px;font-weight:700;margin-bottom:12px;align-self:flex-start;letter-spacing:.05em}
.price-card.featured .price-label{background:rgba(255,215,0,.15);color:var(--accent)}
.price-num{font-size:28px;font-weight:900;margin-bottom:16px;letter-spacing:-.025em}
.price-num span{font-size:14px;color:var(--text-3);font-weight:600;margin-left:4px}
.price-card ul{list-style:none;margin-bottom:20px;flex:1}
.price-card li{padding:8px 0;font-size:13px;color:var(--text-2);border-top:1px solid var(--line)}
.price-card li:first-child{border-top:none}
.price-card li::before{content:'✓';color:var(--green);margin-right:8px;font-weight:800}
.btn-outline{display:block;padding:14px;text-align:center;background:transparent;color:var(--text);border:1px solid var(--line-2);border-radius:10px;font-size:14px;font-weight:800}
.btn-outline:hover{background:var(--surface-2);border-color:var(--accent)}
.price-card .btn-primary{width:100%;padding:14px}

/* 헌법 */
.constitution{background:var(--bg-2)}
.const-grid{display:grid;grid-template-columns:1fr;gap:8px}
.const-item{display:flex;align-items:center;gap:12px;padding:14px 16px;background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-sm);font-size:13px;color:var(--text-2);line-height:1.5}
.const-item span{flex-shrink:0;width:30px;text-align:center;font-size:11px;font-weight:900;color:var(--accent);background:rgba(255,215,0,.1);padding:4px 0;border-radius:6px}
.const-item.new{border-color:rgba(255,215,0,.4);background:linear-gradient(135deg,rgba(255,215,0,.06),var(--surface))}

/* CTA 최종 */
.cta-final{padding:80px 24px;text-align:center;background:radial-gradient(ellipse at center,rgba(255,215,0,.05),var(--bg))}
.cta-h2{font-size:32px;font-weight:900;line-height:1.2;letter-spacing:-.03em;margin-bottom:12px}
.cta-h2 .hl{color:var(--accent)}
.cta-sub{font-size:14px;color:var(--text-2);margin-bottom:32px}
.cta-buttons{display:flex;flex-direction:column;gap:10px;max-width:320px;margin:0 auto}
.btn-big{padding:16px;border-radius:12px;font-size:15px;font-weight:800;text-align:center;display:block;transition:opacity .15s,transform .15s}
.btn-big.btn-primary{background:var(--accent);color:#000}
.btn-big.btn-secondary{background:var(--surface);border:1px solid var(--line-2);color:var(--text)}
.btn-big.btn-tertiary{background:transparent;border:1px solid var(--line);color:var(--text-2)}
.btn-big:active{transform:scale(.98)}

/* FOOTER */
.footer{background:var(--bg-2);border-top:1px solid var(--line);padding:48px 0 32px}
.footer-brand{margin-bottom:32px}
.footer-brand p{font-size:13px;color:var(--text-3);margin-top:8px}
.footer-tagline{font-size:12px;color:var(--accent)!important;font-weight:600;margin-top:4px!important}
.footer-links{display:grid;grid-template-columns:1fr 1fr;gap:24px}
.footer-col h4{font-size:12px;font-weight:800;color:var(--text);margin-bottom:12px;letter-spacing:.05em;text-transform:uppercase}
.footer-col a{display:block;padding:6px 0;font-size:13px;color:var(--text-3)}
.footer-col a:hover{color:var(--text)}
.footer-bottom{margin-top:32px;padding-top:20px;border-top:1px solid var(--line);font-size:11px;color:var(--text-3);display:flex;flex-direction:column;gap:6px}

/* AUTH */
.auth-main{min-height:calc(100vh - 60px);padding:32px 16px 60px}
.auth-box{max-width:420px;margin:0 auto}
.auth-h1{font-size:26px;font-weight:900;letter-spacing:-.025em;margin-bottom:8px}
.auth-sub{font-size:14px;color:var(--text-2);margin-bottom:28px;line-height:1.6}
.role-label{font-size:13px;color:var(--text-2);font-weight:700;margin-bottom:12px}
.role-card{display:flex;align-items:center;gap:14px;width:100%;padding:18px;margin-bottom:10px;background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);text-align:left}
.role-card:active{background:var(--surface-2)}
.role-icon{font-size:28px;flex-shrink:0}
.role-body{flex:1;min-width:0}
.role-title{font-size:15px;font-weight:800;margin-bottom:3px}
.role-desc{font-size:12px;color:var(--text-2)}
.role-arrow{color:var(--text-3)}
.consent-back{color:var(--primary);font-size:13px;cursor:pointer;margin-bottom:14px;font-weight:600}
.consent-list{margin:20px 0}
.consent-item{display:flex;gap:10px;padding:12px 0;font-size:13px;color:var(--text-2);border-bottom:1px solid var(--line);cursor:pointer}
.consent-item input{margin-top:2px;flex-shrink:0}
.consent-item span{flex:1;line-height:1.5}
.consent-item a{color:var(--primary);text-decoration:underline}
.consent-all{font-weight:700;color:var(--text)}
.consent-critical{background:rgba(255,215,0,.05);padding:12px;border-radius:8px;border:1px solid rgba(255,215,0,.2)}
.consent-critical strong{color:var(--accent)}
.consent-note{color:var(--text-3);font-size:11px;text-align:center;margin-top:14px}
.btn-kakao{display:flex;align-items:center;justify-content:center;gap:8px;width:100%;padding:15px;margin:14px 0;background:var(--kakao);color:#3C1E1E;border-radius:12px;font-size:15px;font-weight:800}
.btn-kakao:disabled{opacity:.4;cursor:not-allowed}
.verify-info{background:var(--surface);border:1px solid var(--line);border-radius:12px;padding:14px;margin:16px 0}
.info-row{display:flex;justify-content:space-between;gap:12px;padding:6px 0;font-size:12px;border-top:1px solid var(--line)}
.info-row:first-child{border-top:none}
.info-key{color:var(--text-3)}
.info-val{color:var(--text);text-align:right}
.verify-name-note{font-size:12px;color:var(--text-2);background:rgba(74,126,255,.08);padding:10px;border-radius:8px;margin:12px 0;line-height:1.6}
.verify-name-note strong{color:var(--primary)}
.verify-cancel{text-align:center;margin-top:14px;font-size:12px}
.verify-cancel a{color:var(--text-3)}
.step-indicator{display:inline-block;padding:3px 10px;background:rgba(74,126,255,.12);color:var(--primary);border-radius:12px;font-size:11px;font-weight:700;margin-bottom:14px}
.login-help{text-align:center;margin:14px 0;font-size:13px;color:var(--text-2)}
.login-help a{color:var(--primary);font-weight:600;margin-left:4px}
.login-meta{text-align:center;font-size:11px;color:var(--text-3);margin-top:32px;line-height:1.6}

/* 대시보드 */
.dash-main{padding:24px 16px 80px}
.dash-greet{font-size:13px;color:var(--text-2);margin-bottom:12px}
.dash-greet span{color:var(--accent);font-weight:700}
.dash-hero{background:linear-gradient(135deg,var(--surface),var(--surface-2));border-radius:var(--radius);padding:20px;margin-bottom:14px}
.grade-display{display:flex;align-items:center;gap:14px;margin-bottom:16px}
.grade-circle{width:56px;height:56px;border-radius:50%;background:var(--primary);display:flex;align-items:center;justify-content:center;flex-shrink:0;font-size:22px;font-weight:900;color:#fff}
.grade-info-block{flex:1;min-width:0}
.grade-name{font-size:20px;font-weight:800}
.grade-desc{font-size:12px;color:var(--text-2)}
.next-grade-info{display:flex;justify-content:space-between;font-size:11px;color:var(--text-3);margin-bottom:6px}
.next-grade-info strong{color:var(--accent)}
.grade-bar{height:4px;background:var(--line);border-radius:2px;overflow:hidden}
.grade-bar-fill{height:100%;background:linear-gradient(90deg,var(--primary),var(--accent));transition:width .4s ease}

.dash-points{background:var(--surface);border:1px solid var(--line);border-radius:14px;padding:18px;margin-bottom:14px}
.point-row{display:flex;justify-content:space-between;align-items:center;margin-bottom:6px}
.point-key{font-size:13px;color:var(--text-2)}
.point-val{font-size:24px;font-weight:900}
.point-val strong{color:var(--accent)}
.point-meta{display:flex;justify-content:space-between;font-size:11px;color:var(--text-3);padding:8px 0;border-top:1px solid var(--line);margin-top:8px}
.point-meta strong{color:var(--text)}
.btn-full{width:100%}

.dash-actions{margin-bottom:24px}
.action-card{display:flex;align-items:center;gap:12px;padding:14px 16px;background:var(--surface);border:1px solid var(--line);border-radius:12px;margin-bottom:8px}
.action-card.action-primary{background:linear-gradient(135deg,rgba(255,215,0,.06),var(--surface));border-color:var(--accent)}
.action-card .action-icon{font-size:22px;flex-shrink:0}
.action-card .action-body{flex:1;min-width:0}
.action-card .action-title{font-size:14px;font-weight:800}
.action-card .action-desc{font-size:11px;color:var(--text-2);margin-top:2px}
.action-card .action-arrow{color:var(--text-3)}

.dash-section{margin-bottom:24px}
.dash-h2{font-size:16px;font-weight:800;margin-bottom:12px}
.dash-const ul.const-mini{list-style:none;padding:16px;background:rgba(74,126,255,.06);border-left:3px solid var(--primary);border-radius:8px}
.const-mini li{font-size:12px;color:var(--text-2);padding:5px 0;line-height:1.55}
.const-mini strong{color:var(--accent)}

/* 사장님·SaaS */
.dash-merchant-name{font-size:22px;font-weight:900;letter-spacing:-.02em;margin-bottom:6px}
.dash-merchant-meta{font-size:12px;color:var(--text-2);line-height:1.55;margin-bottom:14px}
.dash-saas{background:linear-gradient(135deg,rgba(255,215,0,.06),var(--surface));border:1px solid var(--accent);border-radius:14px;padding:18px;margin-bottom:14px}
.saas-status{display:flex;justify-content:space-between;align-items:center;margin-bottom:6px}
.saas-label{font-size:11px;color:var(--text-3);font-weight:600}
.saas-tier{font-size:16px;font-weight:800;color:var(--accent)}
.saas-meta{font-size:12px;color:var(--text-2);margin-bottom:12px;line-height:1.55}

.alert-card{padding:14px;background:var(--surface);border:1px solid var(--accent);border-radius:12px;margin-bottom:10px}
.alert-head{display:flex;align-items:center;gap:8px;margin-bottom:6px}
.alert-grade{font-size:12px;font-weight:800;padding:3px 8px;border-radius:6px;color:#fff}
.alert-grade.grade-1{background:var(--red)}
.alert-grade.grade-2{background:#FF9966}
.alert-grade.grade-3{background:#FFCC99;color:#000}
.alert-grade.grade-4{background:#808080}
.alert-grade.grade-5{background:#99CCFF;color:#000}
.alert-grade.grade-6{background:#3399FF}
.alert-grade.grade-7{background:#0066CC}
.alert-head strong{font-size:13px;flex:1}
.alert-preview{font-size:12px;color:var(--text-2);margin-bottom:8px;line-height:1.5}
.alert-cta{display:block;padding:8px;text-align:center;background:var(--primary);color:#fff;border-radius:6px;font-size:12px;font-weight:700}

.metric-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}
.metric-card{padding:14px 10px;background:var(--surface);border:1px solid var(--line);border-radius:10px;text-align:center}
.metric-label{font-size:10px;color:var(--text-3);font-weight:600;margin-bottom:5px}
.metric-val{font-size:18px;font-weight:800;color:var(--accent)}

/* 피드 */
.feed-main{padding:16px 16px 80px}
.plus-bar{background:linear-gradient(135deg,var(--accent),var(--accent-2));color:#000;padding:10px 14px;border-radius:10px;margin-bottom:16px;font-size:12px;font-weight:700;display:flex;align-items:center;gap:8px}
.plus-badge{background:rgba(0,0,0,.15);padding:2px 8px;border-radius:4px;font-size:10px;font-weight:900}
.filter-row{display:flex;gap:6px;overflow-x:auto;padding:4px 0 12px;scrollbar-width:none}
.filter-row::-webkit-scrollbar{display:none}
.filter-chip,.sort-chip{flex-shrink:0;padding:7px 14px;background:var(--surface);border:1px solid var(--line);border-radius:18px;font-size:13px;color:var(--text-2);font-weight:600;white-space:nowrap}
.filter-chip.active,.sort-chip.active{background:var(--accent);color:#000;border-color:var(--accent)}
.feed-search{margin-bottom:14px}
.feed-grid{display:grid;grid-template-columns:1fr;gap:12px}
.feed-card{display:block;padding:16px;background:var(--surface);border:1px solid var(--line);border-radius:var(--radius)}
.feed-card-head{display:flex;gap:6px;margin-bottom:10px;flex-wrap:wrap}
.grade-pill,.v-pill{font-size:11px;font-weight:800;padding:3px 8px;border-radius:6px}
.grade-pill{background:rgba(255,215,0,.15);color:var(--accent)}
.v-pill{background:rgba(0,214,143,.15);color:var(--green)}
.feed-card-title{font-size:15px;font-weight:800;margin-bottom:6px;line-height:1.4}
.feed-card-body{font-size:13px;color:var(--text-2);line-height:1.55;margin-bottom:10px}
.feed-card-meta{display:flex;justify-content:space-between;font-size:11px;color:var(--text-3);padding-top:10px;border-top:1px solid var(--line)}
.feed-cons-tag{margin-top:8px;padding:6px 10px;background:rgba(255,71,87,.08);color:var(--red);border-radius:6px;font-size:12px;font-weight:700}
.feed-more{padding:14px 0}

/* 리뷰 작성 */
.review-main{padding:16px 16px 80px}
.review-h1{font-size:22px;font-weight:900;letter-spacing:-.02em;margin-bottom:14px}
.grade-tracker{position:sticky;top:60px;z-index:30;background:linear-gradient(135deg,var(--surface),var(--surface-2));border:1px solid var(--accent);border-radius:12px;padding:14px 16px;margin-bottom:20px}
.grade-info{display:flex;justify-content:space-between;margin-bottom:6px;font-size:12px}
.grade-label{color:var(--text-3);font-weight:600}
.grade-value{color:var(--accent);font-weight:800}
.review-step{background:var(--surface);border:1px solid var(--line);border-radius:12px;padding:18px 16px;margin-bottom:12px}
.step-title{font-size:15px;font-weight:800;margin-bottom:6px}
.step-help{font-size:12px;color:var(--text-2);margin-bottom:10px;line-height:1.55}
.step-help-critical{font-size:12px;color:var(--accent);background:rgba(255,215,0,.08);padding:10px;border-radius:8px;margin-bottom:10px;font-weight:600}
.form-input,.form-select,.form-textarea{width:100%;padding:12px 14px;background:var(--bg-2);border:1px solid var(--line);border-radius:10px;color:var(--text);font-size:15px;margin-bottom:6px}
.form-input:focus,.form-select:focus,.form-textarea:focus{outline:none;border-color:var(--primary)}
.form-textarea{resize:vertical;min-height:80px;line-height:1.55}
.form-cons{border-color:rgba(255,71,87,.3)}
.form-label{display:block;font-size:12px;color:var(--text-2);font-weight:600;margin:10px 0 5px}
.char-counter{font-size:11px;color:var(--text-3);text-align:right;margin-top:3px}
.upload-zone{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;padding:24px 16px;background:var(--bg-2);border:2px dashed var(--line);border-radius:10px}
.upload-zone.upload-small{padding:16px}
.upload-icon{font-size:28px}
.upload-text{font-size:13px;color:var(--text-2)}
.ocr-result{background:rgba(0,214,143,.08);border:1px solid rgba(0,214,143,.3);border-radius:10px;padding:12px;margin-top:10px}
.ocr-row{display:flex;justify-content:space-between;padding:5px 0;font-size:13px}
.ocr-row span{color:var(--text-3)}
.ocr-row strong{color:var(--green)}

.emotion-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px}
.emotion-card{background:var(--bg-2);border:1px solid var(--line);border-radius:10px;padding:12px;cursor:pointer}
.emotion-card.active{background:rgba(255,215,0,.08);border-color:var(--accent)}
.emotion-head{font-size:13px;font-weight:700;margin-bottom:6px}
.emotion-slider{width:100%;margin:4px 0}
.emotion-strength{font-size:11px;color:var(--text-3);text-align:center}
.strength-val{color:var(--accent);font-weight:700}

.submit-area{margin-top:20px}
.submit-note{font-size:12px;color:var(--text-2);margin-bottom:14px;text-align:center;line-height:1.6}
.submit-area .btn-big{width:100%}

/* 사장님 인증 */
.verify-progress{display:flex;align-items:center;gap:6px;margin-bottom:20px}
.progress-step{display:flex;align-items:center;gap:6px;font-size:11px;color:var(--text-3);font-weight:600}
.progress-step span{display:inline-flex;align-items:center;justify-content:center;width:22px;height:22px;background:var(--surface);border:1px solid var(--line);border-radius:50%;font-size:10px}
.progress-step.active{color:var(--accent)}
.progress-step.active span{background:var(--accent);color:#000;border-color:var(--accent)}
.progress-step.done span{background:var(--green);color:#fff;border-color:var(--green);font-size:0}
.progress-step.done span::before{content:'✓';font-size:11px}
.progress-line{flex:1;height:1.5px;background:var(--line)}
.bank-info{background:var(--bg-2);border:1px solid var(--line);border-radius:10px;padding:14px;margin:12px 0}
.bank-row{display:flex;justify-content:space-between;align-items:center;gap:10px;padding:6px 0;font-size:13px;border-top:1px solid var(--line)}
.bank-row:first-child{border-top:none}
.bank-key{color:var(--text-3);min-width:50px}
.bank-val{color:var(--text);font-weight:700}
.bank-copy{padding:3px 10px;background:var(--primary);color:#fff;border-radius:6px;font-size:11px;font-weight:700}
.bank-help{font-size:12px;color:var(--text-2);line-height:1.7;background:rgba(74,126,255,.08);padding:10px;border-radius:8px;margin:10px 0}

.success-icon{width:64px;height:64px;background:var(--green);border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:32px;color:#fff;margin:20px auto}
.success-title{text-align:center;font-size:18px;font-weight:800;margin-bottom:6px}
.success-meta{text-align:center;font-size:13px;color:var(--text-2);margin-bottom:20px}

/* 출금 */
.amount-presets{display:grid;grid-template-columns:repeat(5,1fr);gap:6px;margin:10px 0}
.preset-btn{padding:10px 4px;background:var(--surface-2);border:1px solid var(--line);border-radius:8px;font-size:12px;font-weight:700;color:var(--text)}
.preset-btn:hover{border-color:var(--accent)}
.amount-summary{background:var(--bg-2);border:1px solid var(--line);border-radius:10px;padding:12px;margin-top:10px}
.amount-row{display:flex;justify-content:space-between;padding:5px 0;font-size:13px;color:var(--text-2)}
.amount-final{font-size:15px;font-weight:800;color:var(--accent);padding-top:8px;border-top:1px solid var(--line);margin-top:5px}

/* 마이 */
.me-profile{display:flex;gap:14px;align-items:center}
.me-avatar{width:56px;height:56px;background:var(--surface-2);border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:28px}
.me-info{flex:1;min-width:0}
.me-name{font-size:20px;font-weight:900;margin-bottom:3px;letter-spacing:-.02em}
.me-role{font-size:12px;color:var(--accent);font-weight:700;margin-bottom:3px}
.me-meta{font-size:11px;color:var(--text-3)}
.me-meta strong{color:var(--green)}
.me-menu{background:var(--surface);border:1px solid var(--line);border-radius:12px;overflow:hidden;margin-bottom:14px}
.menu-item{display:flex;align-items:center;gap:12px;width:100%;padding:14px 16px;background:none;border:none;border-bottom:1px solid var(--line);font-family:inherit;font-size:14px;color:var(--text);text-align:left}
.menu-item:last-child{border-bottom:none}
.menu-item:hover{background:var(--surface-2)}
.menu-icon{font-size:18px;width:22px}
.menu-text{flex:1}
.menu-arrow{color:var(--text-3)}
.menu-secondary{font-size:13px;color:var(--text-2)}
.menu-danger{color:var(--red)}
.me-version{text-align:center;font-size:10px;color:var(--text-3);margin-top:24px}

/* 약관 */
.legal-main{padding:32px 16px 60px}
.legal-main h1{font-size:26px;font-weight:900;letter-spacing:-.025em;margin-bottom:6px}
.legal-meta{font-size:12px;color:var(--text-3);margin-bottom:24px}
.legal-main h2{font-size:17px;font-weight:800;color:var(--accent);margin:28px 0 10px}
.legal-main h3{font-size:14px;font-weight:700;margin:18px 0 6px}
.legal-main p,.legal-main li{font-size:14px;color:var(--text-2);line-height:1.7;margin-bottom:6px}
.legal-main ol,.legal-main ul{margin:6px 0 10px 22px}
.legal-main strong{color:var(--text)}
.legal-main table{width:100%;border-collapse:collapse;margin:10px 0;font-size:13px}
.legal-main th,.legal-main td{padding:8px;border:1px solid var(--line);text-align:left}
.legal-main th{background:var(--surface);color:var(--text);font-weight:700}
.legal-main td{color:var(--text-2)}
.legal-main .toc{background:var(--surface);border:1px solid var(--line);border-radius:10px;padding:14px;margin-bottom:20px}
.legal-main .toc a{color:var(--primary);display:block;padding:3px 0;font-size:13px}
.note-box{background:var(--surface);border:1px solid var(--accent);border-radius:10px;padding:14px;margin:14px 0}

/* TOP 5 */
.list-hero{padding:40px 16px 32px;background:var(--bg);text-align:center}
.list-hero h1{font-size:26px;font-weight:900;letter-spacing:-.025em;margin-bottom:12px}
.list-hero p{font-size:13px;color:var(--text-2);line-height:1.65;margin-bottom:8px}
.list-hero p strong{color:var(--text)}
.list-badge{display:inline-block;padding:5px 12px;border-radius:18px;font-size:12px;font-weight:700;margin-bottom:20px}
.donjjul-badge{background:rgba(255,215,0,.15);color:var(--accent)}
.honjjul-badge{background:rgba(255,71,87,.12);color:var(--red)}
.list-grid{padding:16px;display:flex;flex-direction:column;gap:10px}
.rank-card{display:flex;gap:14px;padding:16px;background:var(--surface);border:1px solid var(--line);border-radius:14px}
.rank-num{width:40px;height:40px;display:flex;align-items:center;justify-content:center;background:var(--surface-2);border-radius:10px;font-size:18px;font-weight:900;flex-shrink:0}
.rank-1 .rank-num{background:linear-gradient(135deg,#FFD700,#FFA500);color:#000}
.rank-2 .rank-num{background:linear-gradient(135deg,#C0C0C0,#888);color:#000}
.rank-3 .rank-num{background:linear-gradient(135deg,#CD7F32,#8B4513);color:#fff}
.rank-honjjul-1 .rank-num{background:var(--red);color:#fff}
.rank-honjjul-2 .rank-num{background:#FF9966;color:#fff}
.rank-honjjul-3 .rank-num{background:#FFCC99;color:#000}
.rank-body{flex:1;min-width:0}
.rank-cat{font-size:11px;color:var(--text-3);margin-bottom:4px}
.rank-name{font-size:16px;font-weight:900;margin-bottom:6px}
.rank-meta{display:flex;flex-wrap:wrap;gap:12px;font-size:12px;color:var(--text-2);margin-bottom:8px}
.rank-meta strong{color:var(--accent)}
.rank-quote{font-size:12px;color:var(--text-2);font-style:italic;line-height:1.5;border-left:3px solid var(--accent);padding-left:10px}
.rank-quote-bad{border-left-color:var(--red)}
.legal-notice{margin:16px;padding:14px 16px;background:rgba(74,126,255,.06);border-left:3px solid var(--primary);border-radius:8px}
.legal-notice strong{display:block;font-size:12px;color:var(--primary);margin-bottom:6px}
.legal-notice p{font-size:12px;color:var(--text-2);line-height:1.6}
.criteria-grid{display:grid;grid-template-columns:1fr;gap:10px;padding:0 16px}
.criteria-card{padding:16px;background:var(--surface);border:1px solid var(--line);border-radius:12px}
.criteria-num{font-size:22px;font-weight:900;color:var(--accent);margin-bottom:8px}
.criteria-card h3{font-size:14px;font-weight:800;margin-bottom:4px}
.criteria-card p{font-size:12px;color:var(--text-2);line-height:1.5}
.criteria-promise{margin:20px 16px;padding:18px;background:linear-gradient(135deg,rgba(255,215,0,.05),var(--surface));border:1px solid var(--accent);border-radius:14px}
.criteria-promise p{font-size:13px;line-height:1.7;color:var(--text)}
.criteria-promise strong{color:var(--accent)}
.criteria-promise em{color:var(--text-3);font-style:normal;display:block;margin-top:8px;font-size:11px}
.honjjul-promise{background:linear-gradient(135deg,rgba(255,71,87,.04),var(--surface));border-color:var(--red)}
.honjjul-promise strong{color:var(--red)}
.dispute-cta{background:var(--surface);border:1px solid var(--line);border-radius:14px;padding:20px;margin:20px 16px;text-align:center}
.dispute-cta p{font-size:13px;color:var(--text-2);margin-bottom:14px;line-height:1.6}

.empty-state{padding:32px 20px;text-align:center;background:var(--surface);border:1px solid var(--line);border-radius:12px}
.empty-state p{color:var(--text-2);font-size:14px;margin-bottom:12px}
.plus-gate{padding:48px 24px;text-align:center}
.gate-icon{font-size:40px;margin-bottom:12px}
.plus-gate h3{font-size:17px;font-weight:800;margin-bottom:10px}
.plus-gate p{font-size:13px;color:var(--text-2);line-height:1.7;margin-bottom:16px}

/* 페이드 인 */
.fade-up{opacity:0;transform:translateY(16px);transition:opacity .5s ease,transform .5s ease}
.fade-up.in-view{opacity:1;transform:none}

/* ============== TABLET 768+ ============== */
@media(min-width:768px){
  .container{padding:0 24px;max-width:720px;margin:0 auto}
  .nav-inner{padding:14px 24px;max-width:1100px;margin:0 auto}
  .nav-links{display:flex}
  .nav-menu-btn{display:none}
  section{padding:80px 0}
  .hero{padding:64px 24px 72px}
  .hero-h1{font-size:40px}
  .hero-sub{font-size:16px}
  .section-h2{font-size:32px}
  .section-sub{font-size:15px}
  .preview-cards{display:grid;grid-template-columns:repeat(2,1fr)}
  .lists-stack{display:grid;grid-template-columns:1fr 1fr}
  .price-stack{display:grid;grid-template-columns:repeat(3,1fr)}
  .const-grid{grid-template-columns:1fr 1fr}
  .footer-links{grid-template-columns:repeat(3,1fr)}
  .cta-buttons{flex-direction:row;justify-content:center;max-width:none}
  .cta-buttons .btn-big{min-width:180px}
  .cta-h2{font-size:44px}
  .auth-main,.dash-main,.feed-main,.review-main{padding:32px 24px 80px}
  .legal-main{padding:40px 24px 80px;max-width:720px;margin:0 auto}
  .feed-grid{grid-template-columns:repeat(2,1fr)}
  .criteria-grid{grid-template-columns:repeat(3,1fr);padding:0 24px}
  .list-grid{padding:24px;max-width:720px;margin:0 auto}
}

/* ============== DESKTOP 1024+ ============== */
@media(min-width:1024px){
  .container{max-width:1100px}
  .hero{padding:88px 24px 96px}
  .hero-h1{font-size:56px;line-height:1.1}
  .hero-sub{font-size:18px;max-width:560px}
  .section-h2{font-size:40px}
  .section-sub{font-size:16px}
  .preview-cards{grid-template-columns:repeat(3,1fr)}
  .flow-stack{display:grid;grid-template-columns:1fr auto 1fr auto 1fr;align-items:stretch;gap:16px}
  .flow-arrow-vert{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:0;font-size:13px}
  .flow-arrow-vert::before{content:'→';font-size:24px}
  .flow-card{padding:28px 20px}
  .flow-icon{font-size:44px}
  .steps{display:grid;grid-template-columns:1fr 1fr}
  .const-grid{grid-template-columns:repeat(4,1fr)}
  .cta-h2{font-size:56px}
  .cta-buttons .btn-big{min-width:220px;padding:18px 28px;font-size:16px}
}

/* ============== 수수료 정책 ============== */
.price-section { padding: 40px 0; }
.fee-policy {
  display: flex; flex-direction: column; gap: 12px;
}
.fee-item {
  display: flex; gap: 16px;
  padding: 18px 20px;
  background: var(--surface);
  border: 1px solid var(--line);
  border-radius: 14px;
}
.fee-icon {
  font-size: 28px; flex-shrink: 0;
}
.fee-item strong {
  display: block; font-size: 15px; font-weight: 800;
  margin-bottom: 4px;
}
.fee-item p {
  font-size: 13px; color: var(--text-2); line-height: 1.6;
}
.fee-item p strong {
  display: inline; color: var(--red);
}
.fee-item.fee-banned {
  background: linear-gradient(135deg, rgba(255, 71, 87, 0.05), var(--surface));
  border-color: rgba(255, 71, 87, 0.3);
}
.fee-item.fee-banned strong { color: var(--red); }

/* ============================================================
   v8 추가 — soopvault 결 카드 시스템
   ============================================================ */

/* ============== SIGNUP 페이지 ============== */
.signup-main {
  min-height: calc(100vh - 60px);
  padding: 40px 16px 80px;
}
.signup-container {
  max-width: 1100px; margin: 0 auto;
}
.signup-header {
  text-align: center;
  margin-bottom: 40px;
  padding: 0 16px;
}
.signup-eyebrow {
  display: inline-block;
  padding: 6px 14px;
  background: rgba(255, 215, 0, 0.1);
  color: var(--accent);
  border: 1px solid rgba(255, 215, 0, 0.3);
  border-radius: 16px;
  font-size: 12px; font-weight: 700;
  margin-bottom: 20px;
  letter-spacing: 0.05em;
}
.signup-h1 {
  font-size: 28px;
  font-weight: 900;
  line-height: 1.25;
  letter-spacing: -0.025em;
  margin-bottom: 14px;
}
.signup-sub {
  font-size: 14px;
  color: var(--text-2);
  line-height: 1.7;
}

/* 역할 카드 그리드 */
.role-grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: 16px;
  margin-bottom: 32px;
}

.role-card-v2 {
  position: relative;
  background: linear-gradient(180deg, var(--surface), var(--bg-2));
  border: 1px solid var(--line);
  border-radius: 20px;
  padding: 32px 24px 24px;
  overflow: hidden;
  transition: transform 0.2s, border-color 0.2s;
}
.role-card-v2:hover { transform: translateY(-3px); }

.role-accent {
  position: absolute; top: 0; left: 0; right: 0;
  height: 4px;
}
.role-reviewer .role-accent { background: linear-gradient(90deg, #4a7eff, #00d68f); }
.role-subscriber .role-accent { background: linear-gradient(90deg, var(--accent), var(--accent-2)); }
.role-merchant .role-accent { background: linear-gradient(90deg, #00d68f, #FFB800); }

.role-reviewer:hover { border-color: #4a7eff; }
.role-subscriber:hover { border-color: var(--accent); }
.role-merchant:hover { border-color: #00d68f; }

.role-card-v2.featured {
  background: linear-gradient(180deg, rgba(255, 215, 0, 0.05), var(--bg-2));
  border-color: rgba(255, 215, 0, 0.3);
}

.role-badge {
  display: inline-block;
  padding: 5px 12px;
  background: rgba(255, 255, 255, 0.05);
  border: 1px solid rgba(255, 255, 255, 0.1);
  border-radius: 12px;
  font-size: 10px; font-weight: 800;
  color: var(--text-2);
  letter-spacing: 0.1em;
  margin-bottom: 20px;
}
.role-subscriber .role-badge {
  background: rgba(255, 215, 0, 0.1); color: var(--accent);
  border-color: rgba(255, 215, 0, 0.3);
}

.role-card-title {
  font-size: 28px;
  font-weight: 900;
  line-height: 1.2;
  letter-spacing: -0.03em;
  margin-bottom: 14px;
}
.role-card-hl {
  color: var(--accent);
}
.role-reviewer .role-card-hl { color: #4a7eff; }
.role-merchant .role-card-hl { color: #00d68f; }

.role-card-desc {
  font-size: 14px;
  color: var(--text-2);
  line-height: 1.65;
  margin-bottom: 24px;
}

.role-features {
  list-style: none;
  margin-bottom: 24px;
  padding: 0;
}
.role-features li {
  padding: 9px 0;
  font-size: 13px;
  color: var(--text-2);
  border-top: 1px solid var(--line);
  font-weight: 500;
}
.role-features li:first-child { border-top: none; }
.role-features li strong { color: var(--accent); font-weight: 800; }

.role-price-line {
  display: flex; justify-content: space-between; align-items: baseline;
  padding: 16px;
  background: rgba(0, 0, 0, 0.3);
  border-radius: 12px;
  margin-bottom: 18px;
}
.role-price-line span {
  font-size: 12px; color: var(--text-3); font-weight: 600;
}
.role-price-line strong {
  font-size: 22px; font-weight: 900; color: var(--text);
  letter-spacing: -0.02em;
}
.role-subscriber .role-price-line strong { color: var(--accent); }
.role-reviewer .role-price-line strong { color: #4a7eff; }
.role-merchant .role-price-line strong { color: #00d68f; }
.role-price-line strong small {
  font-size: 12px; color: var(--text-3); font-weight: 600;
  margin-left: 2px;
}

.btn-role {
  display: block;
  width: 100%;
  padding: 16px;
  background: var(--surface-2);
  border: 1px solid var(--line-2);
  border-radius: 12px;
  font-size: 14px; font-weight: 800;
  color: var(--text);
  transition: all 0.15s;
}
.btn-role:hover {
  background: var(--surface);
  border-color: var(--text);
}
.btn-role-primary {
  background: var(--accent);
  color: #000;
  border-color: var(--accent);
}
.btn-role-primary:hover {
  background: var(--accent-2);
  border-color: var(--accent-2);
}

.signup-footer-info {
  text-align: center;
  padding-top: 24px;
  border-top: 1px solid var(--line);
}
.signup-footer-info p {
  font-size: 13px; color: var(--text-3);
  padding: 6px 0;
}
.signup-footer-info a { color: var(--accent); font-weight: 700; }

/* ============== 모달 ============== */
.modal-overlay {
  position: fixed; inset: 0; z-index: 200;
  background: rgba(0, 0, 0, 0.8);
  backdrop-filter: blur(4px);
  -webkit-backdrop-filter: blur(4px);
  display: flex; align-items: flex-end; justify-content: center;
  padding: 0;
}
.modal-box {
  position: relative;
  background: var(--surface);
  border-top: 1px solid var(--line);
  border-radius: 20px 20px 0 0;
  width: 100%;
  max-height: 90vh;
  overflow-y: auto;
  padding: 24px 20px 32px;
  animation: slideUp 0.25s ease;
}
@keyframes slideUp {
  from { transform: translateY(100%); }
  to { transform: translateY(0); }
}
.modal-close {
  position: absolute; top: 14px; right: 14px;
  width: 36px; height: 36px;
  background: var(--surface-2); border: 1px solid var(--line);
  border-radius: 50%;
  font-size: 16px; color: var(--text);
  display: flex; align-items: center; justify-content: center;
}

.modal-header { margin-bottom: 20px; padding-right: 50px; }
.modal-eyebrow {
  font-size: 12px; color: var(--primary); font-weight: 700;
  margin-bottom: 6px;
}
.modal-title { font-size: 20px; font-weight: 800; letter-spacing: -0.02em; }
.modal-title span { color: var(--accent); }

@media (min-width: 768px) {
  .modal-overlay { align-items: center; padding: 24px; }
  .modal-box {
    border-radius: 20px; max-width: 480px;
    max-height: 85vh;
  }
  @keyframes slideUp {
    from { transform: scale(0.95); opacity: 0; }
    to { transform: scale(1); opacity: 1; }
  }
}

/* ============== PRICE 페이지 (가격 카드 5종) ============== */
.price-grid-v2 {
  display: grid;
  grid-template-columns: 1fr;
  gap: 14px;
}
.price-card-v2 {
  background: linear-gradient(180deg, var(--surface), var(--bg-2));
  border: 1px solid var(--line);
  border-radius: 20px;
  padding: 24px 20px;
  position: relative;
  overflow: hidden;
}
.price-card-v2 .price-accent {
  position: absolute; top: 0; left: 0; right: 0; height: 4px;
}
.price-card-v2.reviewer .price-accent { background: linear-gradient(90deg, #4a7eff, #00d68f); }
.price-card-v2.plus .price-accent { background: linear-gradient(90deg, var(--accent), var(--accent-2)); }
.price-card-v2.light .price-accent { background: linear-gradient(90deg, #00d68f, #4a7eff); }
.price-card-v2.standard .price-accent { background: linear-gradient(90deg, #4a7eff, var(--accent)); }
.price-card-v2.pro .price-accent { background: linear-gradient(90deg, var(--accent), #FF9966); }

.price-card-v2 .role-badge { margin-bottom: 16px; }
.price-card-v2 h3 {
  font-size: 22px;
  font-weight: 900;
  letter-spacing: -0.025em;
  margin-bottom: 8px;
}
.price-card-v2 .price-desc {
  font-size: 13px; color: var(--text-2);
  margin-bottom: 16px;
  line-height: 1.6;
}
.price-card-v2 .price-amount {
  font-size: 36px;
  font-weight: 900;
  letter-spacing: -0.03em;
  margin-bottom: 4px;
}
.price-card-v2 .price-amount small {
  font-size: 14px; color: var(--text-3); font-weight: 600;
  margin-left: 4px;
}
.price-card-v2 .price-unit {
  font-size: 12px; color: var(--text-3);
  margin-bottom: 18px;
}
.price-card-v2 ul {
  list-style: none; margin-bottom: 20px;
}
.price-card-v2 li {
  padding: 8px 0;
  font-size: 13px; color: var(--text-2);
  border-top: 1px solid var(--line);
}
.price-card-v2 li:first-child { border-top: none; }
.price-card-v2 li::before {
  content: '✓'; color: var(--green);
  margin-right: 8px; font-weight: 800;
}
.price-card-v2 .btn-role {
  margin: 0;
}

/* TABLET 768+ */
@media (min-width: 768px) {
  .signup-main { padding: 56px 24px 80px; }
  .signup-h1 { font-size: 40px; }
  .signup-sub { font-size: 16px; }
  .role-grid { grid-template-columns: 1fr 1fr; }
  .role-grid .role-card-v2:nth-child(3) { grid-column: span 2; }
  .price-grid-v2 { grid-template-columns: 1fr 1fr; }
}

/* DESKTOP 1024+ */
@media (min-width: 1024px) {
  .signup-h1 { font-size: 48px; }
  .role-grid { grid-template-columns: repeat(3, 1fr); }
  .role-grid .role-card-v2:nth-child(3) { grid-column: auto; }
  .role-card-title { font-size: 32px; }

  /* 가격 5개 카드 */
  .price-grid-v2 { grid-template-columns: repeat(3, 1fr); }
  .price-grid-v2 .price-card-v2:nth-child(4) { grid-column: 1 / span 2; }
  .price-grid-v2 .price-card-v2:nth-child(5) { grid-column: 3 / span 1; }
}

/* ============================================================
   v10 — 검색 결과 + SOOPLENS + 카카오맵
   ============================================================ */
.search-main{padding:24px 16px 80px;max-width:1100px;margin:0 auto}
.search-top{position:relative;margin-bottom:24px}
.search-top .search-bar{margin-bottom:8px}
.search-meta{font-size:13px;color:var(--text-3);padding:4px 4px}

/* 자동완성 */
.autocomplete{position:absolute;top:60px;left:0;right:0;background:var(--surface);border:1px solid var(--line);border-radius:12px;overflow:hidden;z-index:50;box-shadow:0 12px 32px rgba(0,0,0,.5)}
.ac-item{display:flex;flex-direction:column;gap:2px;padding:12px 16px;cursor:pointer;border-bottom:1px solid var(--line)}
.ac-item:last-child{border-bottom:none}
.ac-item:hover{background:var(--surface-2)}
.ac-item strong{font-size:14px;font-weight:700}
.ac-item span{font-size:12px;color:var(--text-3)}

/* 탭 */
.result-tabs{display:flex;gap:6px;overflow-x:auto;padding:4px 0 16px;scrollbar-width:none;border-bottom:1px solid var(--line);margin-bottom:20px}
.result-tabs::-webkit-scrollbar{display:none}
.result-tab{flex-shrink:0;padding:10px 16px;background:var(--surface);border:1px solid var(--line);border-radius:18px;font-size:13px;font-weight:700;color:var(--text-2);white-space:nowrap}
.result-tab.active{background:var(--accent);color:#000;border-color:var(--accent)}

.tab-panel{min-height:240px}

/* 지도 */
.map-container{width:100%;height:380px;border-radius:14px;background:var(--surface);border:1px solid var(--line);margin-bottom:16px}
.map-list{display:flex;flex-direction:column;gap:8px}
.map-place{padding:12px 14px;background:var(--surface);border:1px solid var(--line);border-radius:10px;display:flex;flex-direction:column;gap:3px}
.map-place strong{font-size:14px;font-weight:700}
.map-place span{font-size:12px;color:var(--text-2)}
.map-place small{font-size:11px;color:var(--text-3)}

/* SOOPLENS */
.sooplens-hero{margin-bottom:20px}
.sooplens-hero #sl-area{color:var(--accent)}

.sooplens-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-bottom:24px}
.sl-widget{padding:16px 14px;background:linear-gradient(180deg,var(--surface),var(--bg-2));border:1px solid var(--line);border-radius:14px;position:relative;overflow:hidden}
.sl-widget::before{content:"";position:absolute;top:0;left:0;right:0;height:3px;background:var(--accent)}
.sl-academy::before{background:linear-gradient(90deg,#FFD700,#FFB800)}
.sl-apt::before{background:linear-gradient(90deg,#3399FF,#0066CC)}
.sl-safety::before{background:linear-gradient(90deg,#00d68f,#00B377)}
.sl-school::before{background:linear-gradient(90deg,#FF9966,#FF6633)}
.sl-transit::before{background:linear-gradient(90deg,#99CCFF,#3399FF)}
.sl-medical::before{background:linear-gradient(90deg,#FF6B9D,#C44569)}
.sl-commerce::before{background:linear-gradient(90deg,#FFD700,#FF9933)}
.sl-traffic::before{background:linear-gradient(90deg,#808080,#404040)}
.sl-youth::before{background:linear-gradient(90deg,#00d68f,#3399FF)}

.sl-icon{font-size:22px;margin-bottom:8px}
.sl-label{font-size:11px;color:var(--text-3);font-weight:700;margin-bottom:6px;letter-spacing:.03em}
.sl-value{font-size:14px;font-weight:800;color:var(--text);margin-bottom:8px;line-height:1.3;min-height:32px}
.sl-meta{font-size:10px;color:var(--text-3)}

/* 종합 신호등 */
.sl-signal{background:var(--surface);border:1px solid var(--line);border-radius:14px;padding:18px;margin-bottom:14px}
.sl-signal h3{font-size:15px;font-weight:800;margin-bottom:10px}
.sl-signal-row{display:flex;align-items:center;gap:10px;padding:6px 0;font-size:13px;color:var(--text-2)}
.signal-dot{width:14px;height:14px;border-radius:50%;flex-shrink:0}
.signal-dot.green{background:var(--green)}
.signal-dot.yellow{background:#FFCC33}
.signal-dot.red{background:var(--red)}
.sl-signal-final{margin-top:12px;padding-top:12px;border-top:1px solid var(--line);font-size:15px;font-weight:700;text-align:center}
.sl-signal-final strong span{color:var(--accent)}

.sooplens-note{font-size:12px;color:var(--text-3);line-height:1.7;text-align:center;padding:12px}
.sooplens-note strong{color:var(--accent)}

/* 태블릿+ */
@media(min-width:768px){
  .sooplens-grid{grid-template-columns:repeat(3,1fr);gap:14px}
  .sl-widget{padding:20px}
  .map-container{height:480px}
}
@media(min-width:1024px){
  .search-main{padding:32px 24px 80px}
  .sooplens-grid{grid-template-columns:repeat(3,1fr)}
}

/* ============================================================
   v11 — 거래소 (Exchange) UI
   ============================================================ */
.ex-main{padding:0 0 80px;max-width:1200px;margin:0 auto}

/* 티커 바 */
.ex-ticker{display:grid;grid-template-columns:1fr 1fr;gap:1px;background:var(--line);padding:1px;margin:0;border-bottom:1px solid var(--line)}
.ticker-item{display:flex;flex-direction:column;gap:2px;padding:12px 14px;background:var(--bg-2)}
.t-label{font-size:10px;color:var(--text-3);font-weight:700;letter-spacing:.03em}
.t-value{font-size:18px;font-weight:900;color:var(--text);line-height:1.2}
.t-delta{font-size:11px;font-weight:700}
.t-delta.up{color:var(--green)}
.t-delta.down{color:var(--red)}
.t-delta.neutral{color:var(--text-3)}

/* 헤더 */
.ex-hero{padding:32px 16px 24px}
.ex-h1{font-size:26px;font-weight:900;line-height:1.2;letter-spacing:-.03em;margin-bottom:12px}
.ex-h1 .hl{color:var(--accent)}
.ex-sub{font-size:14px;color:var(--text-2);line-height:1.6}

/* 필터 */
.ex-filter{padding:0 16px 16px;display:flex;flex-direction:column;gap:8px;border-bottom:1px solid var(--line);margin-bottom:20px}
.filter-row{display:flex;gap:6px;overflow-x:auto;scrollbar-width:none;-webkit-overflow-scrolling:touch}
.filter-row::-webkit-scrollbar{display:none}
.chip{flex-shrink:0;padding:8px 14px;background:var(--surface);border:1px solid var(--line);border-radius:18px;font-size:13px;color:var(--text-2);font-weight:700;white-space:nowrap}
.chip.active{background:var(--accent);color:#000;border-color:var(--accent)}
.chip.sort{appearance:none;padding-right:30px;background-image:linear-gradient(45deg,transparent 50%,var(--text-2) 50%),linear-gradient(135deg,var(--text-2) 50%,transparent 50%);background-position:calc(100% - 14px) 50%,calc(100% - 10px) 50%;background-size:4px 4px;background-repeat:no-repeat}

/* 거래 화면 */
.ex-board{display:flex;flex-direction:column;gap:20px;padding:0 16px;margin-bottom:36px}
.board-col{background:var(--surface);border:1px solid var(--line);border-radius:14px;overflow:hidden}
.board-head{display:flex;justify-content:space-between;align-items:center;padding:14px 16px;background:var(--surface-2);border-bottom:1px solid var(--line)}
.board-title{font-size:14px;font-weight:800}
.board-meta{font-size:11px;color:var(--text-3);font-weight:700}

/* 호가창 */
.orderbook{max-height:520px;overflow-y:auto}
.ob-row{display:flex;justify-content:space-between;align-items:center;padding:12px 14px;border-bottom:1px solid var(--line);gap:10px}
.ob-row:last-child{border-bottom:none}
.ob-row:hover{background:var(--surface-2)}
.ob-left{display:flex;align-items:flex-start;gap:10px;flex:1;min-width:0}
.ob-emoji{font-size:24px;flex-shrink:0;width:36px;height:36px;display:flex;align-items:center;justify-content:center;background:var(--bg-2);border-radius:8px}
.ob-info{flex:1;min-width:0}
.ob-title{font-size:13px;font-weight:800;margin-bottom:5px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.ob-meta{display:flex;gap:4px;flex-wrap:wrap;align-items:center}
.ob-grade{font-size:10px;font-weight:800;padding:2px 6px;border-radius:5px;background:var(--surface-2);color:var(--text-2)}
.ob-grade.master{background:rgba(255,215,0,.15);color:var(--accent)}
.ob-grade.trust{background:rgba(74,126,255,.15);color:var(--primary)}
.ob-grade.reg{background:rgba(0,214,143,.15);color:var(--green)}
.ob-tag{font-size:9px;font-weight:800;padding:2px 5px;border-radius:4px;background:rgba(255,255,255,.08);color:var(--text-3)}
.ob-tag.v{background:rgba(0,214,143,.2);color:var(--green)}
.ob-tag.day50{background:rgba(255,153,51,.2);color:#FF9933}
.ob-time{font-size:10px;color:var(--text-3);margin-left:4px}
.ob-right{display:flex;flex-direction:column;align-items:flex-end;gap:6px;flex-shrink:0}
.ob-price{font-size:14px;font-weight:900;color:var(--accent)}
.ob-buy{padding:6px 14px;background:var(--accent);color:#000;border-radius:8px;font-size:12px;font-weight:800}
.ob-buy:hover{opacity:.9}
.board-more{display:block;text-align:center;padding:14px;font-size:13px;color:var(--text-2);font-weight:700;border-top:1px solid var(--line);background:var(--surface-2)}

/* 체결 피드 */
.trades{max-height:520px;overflow-y:auto}
.trade-row{display:grid;grid-template-columns:48px 1fr auto auto;gap:8px;align-items:center;padding:10px 14px;border-bottom:1px solid var(--line);font-size:12px}
.trade-row:last-child{border-bottom:none}
.tr-time{font-size:11px;color:var(--text-3);font-weight:700;font-variant-numeric:tabular-nums}
.tr-title{font-weight:700;color:var(--text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.tr-price{font-weight:900;color:var(--green);font-variant-numeric:tabular-nums}
.tr-buyer{font-size:10px;color:var(--text-3);font-weight:700}

/* 등급별 가격대 */
.ex-grade-table{padding:0 16px;margin-bottom:36px}
.grade-rows{display:flex;flex-direction:column;gap:10px;margin-top:18px}
.g-row{display:grid;grid-template-columns:auto 1fr;grid-template-rows:auto auto;gap:6px 14px;padding:14px 16px;background:var(--surface);border:1px solid var(--line);border-radius:12px;position:relative;overflow:hidden}
.g-row::before{content:"";position:absolute;left:0;top:0;bottom:0;width:3px;background:var(--accent)}
.g-master::before{background:linear-gradient(180deg,#FFD700,#FFB800)}
.g-trust::before{background:var(--primary)}
.g-reg::before{background:var(--green)}
.g-new::before{background:var(--text-3)}
.g-rank{grid-column:1;font-size:14px;font-weight:800}
.g-range{grid-column:2;font-size:13px;font-weight:900;color:var(--accent);text-align:right}
.g-share{grid-column:1;font-size:11px;color:var(--text-2);font-weight:700}
.g-cond{grid-column:2;font-size:11px;color:var(--text-3);text-align:right}

/* 작동 원리 */
.ex-how{padding:0 16px;margin-bottom:36px}
.how-list{list-style:none;counter-reset:item;display:flex;flex-direction:column;gap:12px;margin-top:18px}
.how-list li{counter-increment:item;padding:16px 16px 16px 54px;background:var(--surface);border:1px solid var(--line);border-radius:12px;font-size:13px;color:var(--text-2);line-height:1.6;position:relative}
.how-list li::before{content:counter(item);position:absolute;left:16px;top:16px;width:28px;height:28px;background:var(--accent);color:#000;border-radius:50%;display:flex;align-items:center;justify-content:center;font-weight:900;font-size:13px}
.how-list strong{display:block;color:var(--text);font-weight:800;margin-bottom:4px}

/* CTA */
.ex-cta{padding:0 16px;display:flex;flex-direction:column;gap:12px}
.cta-card{padding:24px 20px;background:linear-gradient(135deg,var(--surface),var(--bg-2));border:1px solid var(--line);border-radius:14px;text-align:center}
.cta-card h3{font-size:17px;font-weight:900;margin-bottom:8px}
.cta-card p{font-size:13px;color:var(--text-2);margin-bottom:16px;line-height:1.6}
.btn-big{display:inline-flex;align-items:center;justify-content:center;padding:14px 28px;border-radius:12px;font-size:15px;font-weight:900;width:100%}
.btn-secondary{background:var(--surface-2);color:var(--text);border:1px solid var(--line-2)}

/* 푸터 */
.footer{padding:24px 16px;border-top:1px solid var(--line);background:var(--bg-2);text-align:center;font-size:12px;color:var(--text-3);line-height:1.7}
.footer-meta a{color:var(--text-3);text-decoration:underline}

/* 태블릿+ */
@media(min-width:768px){
  .ex-ticker{grid-template-columns:repeat(4,1fr)}
  .ex-board{flex-direction:row;align-items:flex-start}
  .board-col{flex:1}
  .board-sell{flex:2}
  .ex-hero{padding:48px 24px 32px}
  .ex-h1{font-size:36px}
  .ex-grade-table,.ex-how,.ex-cta,.ex-filter{padding-left:24px;padding-right:24px}
  .ex-cta{flex-direction:row}
  .btn-big{width:auto}
  .g-row{grid-template-columns:120px 1fr 120px 1fr;grid-template-rows:auto}
  .g-share{grid-column:3;text-align:center}
  .g-cond{grid-column:4}
}
@media(min-width:1024px){
  .ex-h1{font-size:44px}
}

/* ============================================================
   v12 — 거래소 매김 (티커 키움 + 컬러시그널 + 호가잔량 + 핫매물 + 헌법)
   ============================================================ */

/* β 베타 바 */
.ex-beta-bar{display:flex;align-items:center;gap:10px;padding:10px 16px;background:linear-gradient(90deg,rgba(255,215,0,.08),rgba(74,126,255,.08));border-bottom:1px solid var(--line);font-size:12px}
.beta-tag{display:inline-flex;align-items:center;justify-content:center;width:22px;height:22px;background:var(--accent);color:#000;border-radius:50%;font-weight:900;font-size:11px}
.beta-msg{color:var(--text-2);flex:1}
.beta-msg strong{color:var(--accent)}
.beta-msg a{color:var(--primary);text-decoration:underline}

/* 티커 v2 (숫자 키움) */
.ex-ticker-v2{display:grid;grid-template-columns:1fr 1fr;gap:1px;background:var(--line);border-bottom:1px solid var(--line)}
.tic-cell{padding:18px 16px;background:var(--bg-2);display:flex;flex-direction:column;gap:4px;position:relative;min-height:108px}
.tic-label{font-size:10px;color:var(--text-3);font-weight:800;letter-spacing:.04em;display:flex;justify-content:space-between;align-items:center;text-transform:uppercase}
.tic-mini{font-size:9px;color:var(--text-3);text-transform:none;font-weight:600}
.tic-big{font-size:32px;font-weight:900;color:var(--text);line-height:1.05;font-variant-numeric:tabular-nums;letter-spacing:-.025em}
.tic-delta{font-size:11px;font-weight:700}
.tic-delta.up{color:var(--green)}
.tic-delta.down{color:var(--red)}
.tic-delta.neutral{color:var(--text-3)}
.tic-spark{position:absolute;right:14px;bottom:14px;opacity:.9}

/* 핫매물 TOP 3 */
.ex-hot{padding:0 16px 24px}
.hot-title{font-size:15px;font-weight:900;margin-bottom:14px;display:flex;justify-content:space-between;align-items:baseline}
.hot-meta{font-size:11px;color:var(--text-3);font-weight:700}
.hot-grid{display:grid;grid-template-columns:1fr;gap:10px}
.hot-card{padding:14px 16px;background:linear-gradient(135deg,var(--surface),var(--bg-2));border:1px solid var(--line);border-radius:12px;position:relative;overflow:hidden;display:grid;grid-template-columns:auto 1fr auto;grid-template-rows:auto auto;gap:4px 12px;align-items:center}
.hot-card::before{content:"";position:absolute;top:0;left:0;bottom:0;width:4px}
.hot-1::before{background:linear-gradient(180deg,#FF4500,#FF6B35)}
.hot-2::before{background:linear-gradient(180deg,#FFA500,#FFD700)}
.hot-3::before{background:linear-gradient(180deg,#FFD700,#FFEC73)}
.hot-rank{grid-row:1/3;font-size:28px;font-weight:900;color:var(--accent);font-variant-numeric:tabular-nums;line-height:1}
.hot-emoji{font-size:24px}
.hot-title{font-size:13px;font-weight:800;grid-column:2;grid-row:1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;margin:0}
.hot-meta{grid-column:2;grid-row:2;display:flex;gap:8px;align-items:center}
.hot-score{font-size:11px;font-weight:900;color:#FF6B35}
.hot-price{grid-column:3;grid-row:1/3;font-size:15px;font-weight:900;color:var(--accent);font-variant-numeric:tabular-nums}

/* 변동률 ▲▼ */
.delta{display:inline-block;font-size:10px;font-weight:900;padding:1px 5px;border-radius:4px;font-variant-numeric:tabular-nums}
.delta.up{background:rgba(0,214,143,.18);color:var(--green)}
.delta.down{background:rgba(255,71,87,.18);color:var(--red)}

/* SEED 워터마크 */
.seed-tag{display:inline-block;font-size:9px;font-weight:800;padding:1px 5px;background:rgba(112,112,112,.25);color:var(--text-3);border-radius:3px;margin-left:4px;letter-spacing:.02em}
.seed-tag-mini{color:var(--text-3);font-size:10px}
.ob-row.is-seed{opacity:.85}
.ob-row.is-seed .ob-price{color:var(--text-2)}
.trade-row.is-seed{opacity:.8}

/* 호가창 잔량 막대 */
.ob-row{position:relative;overflow:hidden}
.depth-bar{position:absolute;top:0;bottom:0;left:0;background:linear-gradient(90deg,rgba(255,215,0,.08),rgba(255,215,0,.02));z-index:0;pointer-events:none}
.ob-left,.ob-right{position:relative;z-index:1}

/* 체결 컬러 시그널 */
.tr-price.up{color:var(--green)}
.tr-price.down{color:var(--red)}
.tr-price.neutral{color:var(--text-2)}

/* 헌법 박스 */
.ex-constitution{padding:32px 16px;margin:24px 0;background:linear-gradient(180deg,var(--surface),var(--bg-2));border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.const-list{list-style:none;display:flex;flex-direction:column;gap:14px;margin-top:18px}
.const-list li{padding:16px 18px;background:var(--bg-2);border:1px solid var(--line);border-radius:12px;border-left:3px solid var(--accent)}
.const-list strong{display:block;font-size:14px;font-weight:900;color:var(--accent);margin-bottom:6px}
.const-list p{font-size:13px;color:var(--text-2);line-height:1.6}
.const-foot{margin-top:18px;font-size:12px;color:var(--text-3);text-align:center}
.const-foot a{color:var(--accent);text-decoration:underline}

/* 태블릿+ */
@media(min-width:768px){
  .ex-ticker-v2{grid-template-columns:repeat(4,1fr)}
  .tic-big{font-size:38px}
  .hot-grid{grid-template-columns:repeat(3,1fr)}
}
@media(min-width:1024px){
  .tic-big{font-size:42px}
}

/* 법적 문서 (Constitution) */
.legal-main{padding:32px 16px 80px;max-width:760px;margin:0 auto}
.legal-doc{background:var(--surface);border:1px solid var(--line);border-radius:14px;padding:28px 24px}
.legal-eyebrow{display:inline-block;padding:4px 10px;background:rgba(255,215,0,.12);color:var(--accent);border-radius:12px;font-size:11px;font-weight:800;margin-bottom:12px}
.legal-h1{font-size:26px;font-weight:900;line-height:1.2;letter-spacing:-.025em;margin-bottom:8px}
.legal-meta{font-size:12px;color:var(--text-3);padding-bottom:20px;border-bottom:1px solid var(--line);margin-bottom:24px}
.legal-sec{margin-bottom:28px}
.legal-sec h2{font-size:16px;font-weight:900;color:var(--accent);margin-bottom:12px;padding-left:10px;border-left:3px solid var(--accent)}
.legal-sec p,.legal-sec li{font-size:13px;color:var(--text-2);line-height:1.7}
.legal-sec ul,.legal-sec ol{padding-left:20px;margin:8px 0}
.legal-sec ul ul,.legal-sec ol ul{margin-top:4px}
.legal-sec li{margin-bottom:6px}
.legal-sec code{font-family:'SF Mono','Menlo',monospace;background:var(--bg-2);padding:1px 6px;border-radius:4px;font-size:12px;color:var(--accent)}
.legal-table{width:100%;border-collapse:collapse;margin:12px 0;font-size:12px}
.legal-table th,.legal-table td{padding:10px 12px;border:1px solid var(--line);text-align:left}
.legal-table th{background:var(--bg-2);color:var(--accent);font-weight:800;font-size:11px}
.legal-foot{padding-top:20px;border-top:1px solid var(--line)}
.legal-foot p{margin-bottom:8px}

/* ============================================================
   v13 — soopvault 결 모바일 풀 재설계 (360px 우선)
   ============================================================ */
.ex-v13{padding:0 0 100px;max-width:540px;margin:0 auto;overflow-x:hidden}

/* HERO — 자동 타이핑 */
.hero-v13{padding:24px 16px 16px}
.hero-search-card{background:linear-gradient(180deg,rgba(255,215,0,.04),transparent),var(--surface);border:1px solid var(--line);border-radius:18px;padding:24px 18px;position:relative;box-shadow:0 0 40px rgba(255,215,0,.06)}
.hero-search-bar{display:flex;align-items:center;gap:8px;background:var(--bg-2);border:2px solid rgba(255,215,0,.35);border-radius:14px;padding:6px 6px 6px 14px;box-shadow:0 0 24px rgba(255,215,0,.15)}
.hs-icon{font-size:16px;opacity:.8}
.hs-input{flex:1;font-size:16px;font-weight:800;color:var(--text);padding:10px 0;min-height:22px;letter-spacing:-.01em}
.typing-caret{display:inline-block;animation:blink 1s steps(2) infinite;color:var(--accent);font-weight:300;margin-left:1px}
@keyframes blink{50%{opacity:0}}
.hs-btn{padding:11px 18px;background:var(--accent);color:#000;border-radius:10px;font-size:14px;font-weight:900}
.hero-mini{font-size:11px;color:var(--text-3);text-align:center;padding:12px 0 18px}

.hero-h1-v13{font-size:21px;font-weight:900;line-height:1.35;letter-spacing:-.02em;text-align:center;margin-bottom:10px}
.hero-h1-v13 .hl{color:var(--accent);position:relative;display:inline-block}
.hero-h1-v13 .hl::after{content:"";position:absolute;left:0;right:0;bottom:1px;height:6px;background:rgba(255,215,0,.2);z-index:-1;border-radius:3px}
.hero-sub-v13{font-size:12px;color:var(--text-2);text-align:center;line-height:1.6}

/* 모듈 8칸 그리드 */
.modules-v13{padding:8px 16px 28px}
.mod-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:6px}
.mod-card{display:flex;flex-direction:column;align-items:center;gap:3px;padding:14px 6px;background:linear-gradient(180deg,var(--surface),var(--bg-2));border:1px solid var(--line);border-radius:10px;text-align:center;position:relative;overflow:hidden;transition:transform .15s,border-color .15s}
.mod-card::before{content:"";position:absolute;top:0;left:0;right:0;height:2px;background:var(--accent)}
.mod-card:active{transform:scale(.96)}
.mod-1::before{background:#FFD700}
.mod-2::before{background:#FF9933}
.mod-3::before{background:#00d68f}
.mod-4::before{background:#FF4500}
.mod-5::before{background:#FFD700}
.mod-6::before{background:#FF4500}
.mod-7::before{background:#9966FF}
.mod-8::before{background:#00d68f}
.mod-num{font-size:14px;font-weight:900;color:var(--accent);font-variant-numeric:tabular-nums;letter-spacing:-.02em}
.mod-1 .mod-num{color:#FFD700}
.mod-3 .mod-num{color:#00d68f}
.mod-7 .mod-num{color:#9966FF}
.mod-8 .mod-num{color:#00d68f}
.mod-title{font-size:11px;font-weight:900;color:var(--text);letter-spacing:-.02em}
.mod-sub{font-size:9px;color:var(--text-3);letter-spacing:-.01em;line-height:1.3}
.mod-card.premium{background:linear-gradient(135deg,rgba(255,215,0,.06),var(--bg-2));border-color:rgba(255,215,0,.3)}
.mod-pill{position:absolute;top:-7px;right:-2px;background:linear-gradient(90deg,#9966FF,#7744DD);color:#fff;font-size:7px;font-weight:900;padding:2px 6px;border-radius:8px;letter-spacing:.05em;transform:rotate(8deg)}

/* WHY 섹션 */
.why-v13{padding:28px 16px;text-align:center}
.why-big{font-size:54px;font-weight:900;line-height:1;color:var(--accent);text-shadow:0 0 24px rgba(255,215,0,.4);margin-bottom:10px;letter-spacing:-.04em}
.why-claim{font-size:18px;font-weight:900;line-height:1.4;margin-bottom:8px;letter-spacing:-.02em}
.why-claim .hl{color:var(--accent)}
.why-sub{font-size:12px;color:var(--text-2);margin-bottom:20px;line-height:1.6}
.why-cards{display:flex;flex-direction:column;gap:10px;text-align:left}
.why-card{padding:16px 18px;background:var(--surface);border:1px solid var(--line);border-radius:14px;display:flex;align-items:flex-start;gap:12px;position:relative;overflow:hidden}
.why-card::before{content:"";position:absolute;top:0;left:0;bottom:0;width:3px}
.why-cur::before{background:linear-gradient(180deg,#FFD700,#FFB800)}
.why-ans::before{background:linear-gradient(180deg,#4a7eff,#3366FF)}
.why-care::before{background:linear-gradient(180deg,#00d68f,#00B377)}
.why-icon{font-size:24px;flex-shrink:0;width:38px;height:38px;display:flex;align-items:center;justify-content:center;background:var(--bg-2);border-radius:10px}
.why-card > div:nth-child(n+2){flex:1;min-width:0}
.why-num{font-size:10px;font-weight:800;letter-spacing:.08em;color:var(--accent);margin-bottom:4px}
.why-ans .why-num{color:#4a7eff}
.why-care .why-num{color:#00d68f}
.why-title{font-size:14px;font-weight:900;line-height:1.4;margin-bottom:6px;letter-spacing:-.01em}
.why-desc{font-size:12px;color:var(--text-2);line-height:1.55}
.why-desc .hl{color:var(--accent);font-weight:800}
.emo-pos{color:#4a7eff;font-weight:800}
.emo-neu{color:#00d68f;font-weight:800}
.emo-neg{color:#ff4757;font-weight:800}

/* 미리보기 잠금 */
.preview-lock{padding:24px 16px}
.lock-card{padding:24px 18px;background:radial-gradient(ellipse at top,rgba(255,215,0,.06),transparent 60%),var(--surface);border:1.5px solid rgba(255,215,0,.25);border-radius:18px;text-align:center;position:relative}
.lock-tag{display:inline-block;padding:5px 12px;background:rgba(255,215,0,.12);color:var(--accent);border:1px solid rgba(255,215,0,.3);border-radius:14px;font-size:10px;font-weight:800;margin-bottom:16px;letter-spacing:.03em}
.lock-h2{font-size:22px;font-weight:900;line-height:1.35;letter-spacing:-.025em;margin-bottom:8px}
.lock-h2 .hl{color:var(--accent);text-decoration:underline;text-decoration-color:rgba(255,215,0,.4);text-underline-offset:3px}
.lock-sub{font-size:12px;color:var(--text-2);margin-bottom:18px;line-height:1.6}
.lock-preview{position:relative;background:#f0f0f0;border-radius:12px;padding:20px 18px 60px;margin-bottom:16px;min-height:180px;text-align:left}
.lock-page-num{position:absolute;top:8px;right:10px;background:rgba(0,0,0,.7);color:#FFD700;font-size:10px;font-weight:800;padding:4px 10px;border-radius:10px;letter-spacing:.02em}
.lock-content{position:relative;display:flex;flex-direction:column;gap:10px;filter:blur(4px)}
.lock-line{height:10px;background:#999;border-radius:3px}
.lock-line.w-90{width:90%}.lock-line.w-80{width:80%}.lock-line.w-75{width:75%}.lock-line.w-60{width:60%}.lock-line.w-55{width:55%}.lock-line.w-40{width:40%}
.lock-fade{position:absolute;left:-18px;right:-18px;bottom:-60px;height:80px;background:linear-gradient(180deg,transparent,#f0f0f0)}
.lock-cta{display:inline-block;padding:14px 28px;background:linear-gradient(90deg,#FFD700,#FFB800);color:#000;font-weight:900;border-radius:12px;font-size:14px;box-shadow:0 6px 20px rgba(255,215,0,.3);margin-bottom:14px}
.lock-meta{display:inline-block;font-size:10px;color:var(--text-3);padding:4px 10px;background:var(--bg-2);border-radius:8px;letter-spacing:.05em;margin-bottom:14px}
.lock-controls{display:flex;justify-content:space-between;align-items:center;padding:10px 4px;border-top:1px solid var(--line);margin-bottom:10px}
.lc-pause{padding:6px 12px;background:var(--bg-2);border-radius:8px;font-size:11px;color:var(--text-2);font-weight:700}
.lc-dots{display:flex;gap:4px;align-items:center}
.lc-dots .dot{width:8px;height:8px;border-radius:50%;background:var(--text-3)}
.lc-dots .dot.lock{background:transparent;color:var(--text-3);font-size:10px;width:auto;height:auto}
.lc-dots .dot.lock.red{color:#ff4757}
.lc-all{padding:6px 12px;background:rgba(255,215,0,.12);color:var(--accent);border-radius:8px;font-size:11px;font-weight:800}
.lock-foot{font-size:10px;color:var(--text-3);line-height:1.5}

/* HOT TOP 3 */
.hot-v13{padding:28px 16px}
.sec-h{font-size:18px;font-weight:900;letter-spacing:-.025em;margin-bottom:6px}
.sec-sub{font-size:12px;color:var(--text-3);margin-bottom:16px;line-height:1.5}
.hot-3{display:flex;flex-direction:column;gap:8px}
.h3-card{display:grid;grid-template-columns:auto auto 1fr auto;gap:10px;align-items:center;padding:12px 14px;background:linear-gradient(135deg,var(--surface),var(--bg-2));border:1px solid var(--line);border-radius:12px;position:relative;overflow:hidden}
.h3-card::before{content:"";position:absolute;left:0;top:0;bottom:0;width:3px}
.h3-1::before{background:linear-gradient(180deg,#FF4500,#FF6B35)}
.h3-2::before{background:linear-gradient(180deg,#FFA500,#FFD700)}
.h3-3::before{background:linear-gradient(180deg,#FFD700,#FFEC73)}
.h3-rk{font-size:22px;font-weight:900;color:var(--accent);font-variant-numeric:tabular-nums;width:24px;text-align:center}
.h3-emoji{font-size:24px}
.h3-info{min-width:0}
.h3-name{font-size:13px;font-weight:900;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.h3-meta{font-size:11px;color:var(--text-3);margin-top:2px}
.h3-price{text-align:right}
.h3-pr{font-size:14px;font-weight:900;color:var(--accent);font-variant-numeric:tabular-nums}
.h3-dt{font-size:10px;color:var(--text-3);margin-top:2px}

/* 매물 카드 그리드 (soopvault 결) */
.listings-v13{padding:28px 16px}
.lst-head{margin-bottom:14px}
.lst-meta{font-size:12px;color:var(--text-3);margin-top:4px}
.lst-meta strong{color:var(--text);font-weight:900}
.lst-filter{display:flex;gap:6px;overflow-x:auto;padding-bottom:14px;scrollbar-width:none;-webkit-overflow-scrolling:touch}
.lst-filter::-webkit-scrollbar{display:none}
.chip-v13{flex-shrink:0;padding:7px 14px;background:var(--surface);border:1px solid var(--line);border-radius:16px;font-size:12px;color:var(--text-2);font-weight:700;white-space:nowrap}
.chip-v13.active{background:var(--accent);color:#000;border-color:var(--accent)}

.lst-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:10px;margin-bottom:20px}
.lst-card{padding:14px 12px;background:linear-gradient(180deg,var(--surface),var(--bg-2));border:1.5px solid var(--line);border-radius:14px;display:flex;flex-direction:column;gap:6px;position:relative;overflow:hidden;transition:transform .15s,border-color .15s}
.lst-card:active{transform:scale(.97)}
.lst-master{border-color:rgba(255,215,0,.35);box-shadow:0 0 16px rgba(255,215,0,.05)}
.lst-trust{border-color:rgba(74,126,255,.3)}
.lst-reg{border-color:rgba(0,214,143,.25)}
.lc-head{display:flex;justify-content:space-between;align-items:center}
.lc-emoji{font-size:18px;width:30px;height:24px;display:flex;align-items:center;justify-content:center;background:rgba(153,102,255,.15);border-radius:6px;color:#9966FF;font-size:10px;font-weight:900;padding:4px 6px}
.lc-year{font-size:10px;color:var(--text-3);font-weight:700}
.lc-name{font-size:14px;font-weight:900;line-height:1.3;letter-spacing:-.015em;color:var(--text)}
.lc-area{font-size:11px;color:var(--text-2);font-weight:600}
.lc-tags{display:flex;flex-wrap:wrap;gap:4px;align-items:center;margin-top:2px}
.lc-t-mid{font-size:9px;font-weight:800;padding:2px 6px;background:rgba(255,69,0,.15);color:#FF6B35;border-radius:4px}
.lc-t-sub{font-size:9px;font-weight:800;padding:2px 6px;background:var(--bg-2);color:var(--text-2);border-radius:4px}
.lc-t-jjin{font-size:10px;font-weight:800;color:var(--g-color,var(--accent));margin-left:auto;display:flex;align-items:center;gap:3px}
.d-up{color:var(--green);font-size:9px}
.d-dn{color:var(--red);font-size:9px}
.d-eq{color:var(--text-3);font-size:9px}
.lc-foot{display:flex;justify-content:space-between;align-items:center;padding-top:8px;border-top:1px solid var(--line);margin-top:auto}
.lc-pages{font-size:10px;color:var(--text-3);font-weight:700}
.lc-price{font-size:15px;font-weight:900;color:var(--accent);font-variant-numeric:tabular-nums}
.lc-price small{font-size:10px;color:var(--text-3);font-weight:700;margin-left:1px}
.lc-seed{position:absolute;top:8px;right:8px;font-size:8px;font-weight:800;padding:2px 5px;background:rgba(112,112,112,.3);color:var(--text-3);border-radius:3px;letter-spacing:.02em}

.lst-paginate{display:flex;justify-content:center;align-items:center;gap:6px;padding:10px 0}
.pg-num{width:32px;height:32px;background:var(--surface);border:1px solid var(--line);border-radius:8px;font-size:12px;font-weight:800;color:var(--text-2)}
.pg-num.active{background:var(--accent);color:#000;border-color:var(--accent)}
.pg-next{padding:7px 14px;background:var(--surface);border:1px solid var(--line);border-radius:8px;font-size:12px;font-weight:700;color:var(--text-2)}

/* 호가창 잔량 막대 */
.ob-v13{padding:28px 16px}
.ob-list{display:flex;flex-direction:column;gap:6px}
.ob-bar{position:relative;background:var(--surface);border:1px solid var(--line);border-radius:10px;overflow:hidden;padding:10px 12px}
.ob-fill{position:absolute;left:0;top:0;bottom:0;background:linear-gradient(90deg,rgba(255,215,0,.15),rgba(255,215,0,.03));z-index:0}
.ob-fill[style*="--g"]{background:linear-gradient(90deg,color-mix(in srgb,var(--g) 25%,transparent),color-mix(in srgb,var(--g) 3%,transparent))}
.ob-row-info{position:relative;z-index:1;display:grid;grid-template-columns:auto 1fr auto auto;gap:8px;align-items:center;font-size:12px}
.ob-emoji-13{font-size:16px}
.ob-name{font-weight:800;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.ob-jjin{font-size:10px;color:var(--text-2);font-weight:700}
.ob-pr{font-weight:900;color:var(--accent);font-variant-numeric:tabular-nums;font-size:13px}

/* 체결 */
.trd-v13{padding:28px 16px}
.trd-list{display:flex;flex-direction:column;gap:4px;background:var(--surface);border:1px solid var(--line);border-radius:12px;padding:8px 0;overflow:hidden}
.trd-row{display:grid;grid-template-columns:48px 1fr auto auto;gap:8px;align-items:center;padding:9px 14px;font-size:12px;border-bottom:1px solid var(--line)}
.trd-row:last-child{border-bottom:none}
.trd-t{font-size:11px;color:var(--text-3);font-weight:700;font-variant-numeric:tabular-nums}
.trd-n{font-weight:700;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.trd-p{font-weight:900;font-variant-numeric:tabular-nums;font-size:12px}
.trd-up .trd-p{color:var(--green)}
.trd-dn .trd-p{color:var(--red)}
.trd-eq .trd-p{color:var(--text-2)}
.trd-b{font-size:10px;color:var(--text-3);font-weight:700}

/* 등급 카드 */
.grade-v13{padding:28px 16px}
.g-cards{display:flex;flex-direction:column;gap:8px}
.g-card{display:grid;grid-template-columns:auto 1fr auto;grid-template-rows:auto auto;gap:4px 12px;padding:14px 16px;background:var(--surface);border:1px solid var(--line);border-radius:12px;position:relative;overflow:hidden}
.g-card::before{content:"";position:absolute;left:0;top:0;bottom:0;width:4px}
.g-master::before{background:linear-gradient(180deg,#FFD700,#FFB800)}
.g-trust::before{background:linear-gradient(180deg,#4a7eff,#3366FF)}
.g-reg::before{background:linear-gradient(180deg,#00d68f,#00B377)}
.g-new::before{background:var(--text-3)}
.g-rk{grid-row:1;font-size:14px;font-weight:900;color:var(--text)}
.g-pr{grid-row:1;font-size:14px;font-weight:900;color:var(--accent);text-align:right;font-variant-numeric:tabular-nums}
.g-sh{grid-row:2;font-size:11px;color:var(--text-2);font-weight:700}
.g-cd{grid-row:2;font-size:10px;color:var(--text-3);text-align:right}

/* CTA */
.cta-v13{padding:28px 16px;display:flex;flex-direction:column;gap:10px}
.cta-card-v13{padding:20px 18px;background:linear-gradient(135deg,var(--surface),var(--bg-2));border:1px solid var(--line);border-radius:14px;text-align:center}
.cta-card-v13 h3{font-size:15px;font-weight:900;margin-bottom:6px}
.cta-card-v13 p{font-size:12px;color:var(--text-2);margin-bottom:14px}
.cta-btn{display:inline-block;padding:12px 24px;border-radius:10px;font-size:13px;font-weight:900;width:100%}
.cta-btn.primary{background:var(--accent);color:#000}
.cta-btn.secondary{background:var(--surface-2);color:var(--text);border:1px solid var(--line-2)}

/* 태블릿+ */
@media(min-width:640px){
  .ex-v13{max-width:720px}
  .mod-grid{grid-template-columns:repeat(4,1fr);gap:10px}
  .mod-card{padding:18px 8px}
  .mod-num{font-size:16px}
  .mod-title{font-size:13px}
  .mod-sub{font-size:10px}
  .hero-h1-v13{font-size:26px}
  .why-big{font-size:72px}
  .why-claim{font-size:22px}
  .why-cards{display:grid;grid-template-columns:repeat(3,1fr)}
  .lst-grid{grid-template-columns:repeat(3,1fr)}
  .lock-h2{font-size:28px}
  .cta-v13{flex-direction:row}
}
@media(min-width:1024px){
  .ex-v13{max-width:1100px}
  .lst-grid{grid-template-columns:repeat(4,1fr)}
  .hero-h1-v13{font-size:32px}
}

/* ============================================================
   v14 — 돈쭐·혼쭐 사연기 게시판 + 작성 마법사
   ============================================================ */
.board-main{padding:0 0 80px;max-width:540px;margin:0 auto}
.don-bg{--theme-color:#FFD700;--theme-bg:rgba(255,215,0,.05)}
.hon-bg{--theme-color:#ff4757;--theme-bg:rgba(255,71,87,.06)}

.board-hero{padding:28px 16px 20px;position:relative}
.don-hero{background:radial-gradient(ellipse at top,rgba(255,215,0,.08),transparent 60%)}
.hon-hero{background:radial-gradient(ellipse at top,rgba(255,71,87,.08),transparent 60%)}
.board-eyebrow{display:inline-block;padding:5px 12px;background:var(--theme-bg);color:var(--theme-color);border:1px solid var(--theme-color);border-radius:14px;font-size:10px;font-weight:800;margin-bottom:14px;letter-spacing:.03em}
.board-h1{font-size:24px;font-weight:900;line-height:1.3;letter-spacing:-.02em;margin-bottom:10px}
.hl-don{color:#FFD700}
.hl-hon{color:#ff4757}
.board-sub{font-size:12px;color:var(--text-2);margin-bottom:18px;line-height:1.6}

/* 카드 잔량 상태 바 */
.card-status{display:flex;gap:8px;align-items:center;padding:14px 16px;background:var(--surface);border:1.5px solid var(--theme-color);border-radius:12px;box-shadow:0 0 20px var(--theme-bg)}
.cs-cell{flex:1;display:flex;flex-direction:column;gap:2px}
.cs-label{font-size:10px;color:var(--text-3);font-weight:800;letter-spacing:.05em}
.cs-value{font-size:14px;font-weight:900;color:var(--text)}
.cs-write{padding:9px 16px;background:var(--theme-color);color:#000;border-radius:9px;font-size:13px;font-weight:900}

/* 이주의 TOP */
.top-week{padding:24px 16px}
.don-week{background:linear-gradient(180deg,rgba(255,215,0,.03),transparent)}
.hon-week{background:linear-gradient(180deg,rgba(255,71,87,.03),transparent)}
.top-cards{display:flex;flex-direction:column;gap:8px;margin-top:14px}
.top-card{display:grid;grid-template-columns:auto 1fr auto;gap:10px;align-items:center;padding:12px 14px;background:linear-gradient(135deg,var(--surface),var(--bg-2));border:1px solid var(--line);border-radius:12px;position:relative;overflow:hidden}
.top-card::before{content:"";position:absolute;left:0;top:0;bottom:0;width:3px}
.don-top.top-1::before{background:linear-gradient(180deg,#FFD700,#FF9500)}
.don-top.top-2::before{background:linear-gradient(180deg,#FFA500,#FFD700)}
.don-top.top-3::before{background:linear-gradient(180deg,#FFD700,#FFEC73)}
.hon-top.top-1::before{background:linear-gradient(180deg,#ff4757,#c00000)}
.hon-top.top-2::before{background:linear-gradient(180deg,#ff6b35,#ff4757)}
.hon-top.top-3::before{background:linear-gradient(180deg,#ff9966,#ff6b35)}
.top-rk{font-size:24px;font-weight:900;color:var(--theme-color);font-variant-numeric:tabular-nums}
.top-info{min-width:0}
.top-emoji{font-size:18px;margin-bottom:2px}
.top-title{font-size:13px;font-weight:900;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;line-height:1.3}
.top-meta{font-size:10px;color:var(--text-3);margin-top:2px}
.top-stats{text-align:right;font-size:11px}
.ts-empathy{font-weight:900;color:var(--theme-color);font-variant-numeric:tabular-nums}
.ts-comments{color:var(--text-3);font-weight:700;margin-top:2px}

/* 필터 */
.board-filter{padding:16px;display:flex;flex-direction:column;gap:8px;border-bottom:1px solid var(--line)}

/* 글 카드 */
.post-list{padding:18px 16px;display:flex;flex-direction:column;gap:10px}
.post-card{padding:16px 14px;background:var(--surface);border:1px solid var(--line);border-radius:12px;display:flex;flex-direction:column;gap:8px;position:relative}
.don-post{border-left:3px solid #FFD700}
.hon-post{border-left:3px solid #ff4757}
.pc-head{display:flex;align-items:center;gap:6px;font-size:11px}
.pc-emoji{font-size:16px}
.pc-confirmed{padding:2px 7px;background:rgba(0,214,143,.18);color:var(--green);border-radius:5px;font-size:10px;font-weight:900}
.pc-pending{padding:2px 7px;background:rgba(255,215,0,.18);color:var(--accent);border-radius:5px;font-size:10px;font-weight:800}
.pc-days{margin-left:auto;color:var(--text-3);font-weight:700;font-size:10px}
.pc-title{font-size:15px;font-weight:900;line-height:1.4;letter-spacing:-.015em}
.pc-meta{font-size:11px;color:var(--text-2)}
.pc-stats{display:flex;gap:14px;align-items:center;font-size:12px;font-weight:800}
.ps-empathy{color:var(--theme-color);font-variant-numeric:tabular-nums}
.ps-comments{color:var(--text-2)}
.ps-progress{margin-left:auto;color:var(--text-3);font-size:10px;font-weight:700}
.pc-bar{height:3px;background:var(--bg-2);border-radius:2px;overflow:hidden}
.pc-bar-fill{height:100%;background:linear-gradient(90deg,var(--theme-color),var(--accent));transition:width .3s}

/* 작성 가이드 — 4중 증빙 */
.write-guide{padding:28px 16px;background:var(--bg-2)}
.evidence-cards{display:grid;grid-template-columns:repeat(2,1fr);gap:8px;margin-top:14px}
.ev-card{padding:14px 12px;background:var(--surface);border:1px solid var(--line);border-radius:10px;position:relative;overflow:hidden}
.ev-card::before{content:"";position:absolute;top:0;left:0;right:0;height:2px;background:var(--theme-color)}
.ev-icon{font-size:22px;margin-bottom:6px}
.ev-num{font-size:9px;font-weight:800;color:var(--theme-color);letter-spacing:.05em;margin-bottom:4px}
.ev-title{font-size:13px;font-weight:900;margin-bottom:4px;line-height:1.3}
.ev-desc{font-size:10px;color:var(--text-3);line-height:1.4}

/* 실명 보관 약속 박스 */
.vault-promise,.vault-box{display:flex;gap:12px;padding:16px;background:linear-gradient(135deg,rgba(74,126,255,.06),var(--surface));border:1px solid rgba(74,126,255,.3);border-radius:12px;margin-top:14px}
.vp-icon,.vb-icon{font-size:24px;flex-shrink:0;width:38px;height:38px;display:flex;align-items:center;justify-content:center;background:rgba(74,126,255,.15);border-radius:8px}
.vp-body,.vb-body{flex:1;min-width:0}
.vp-body strong,.vb-body strong{display:block;font-size:13px;font-weight:900;margin-bottom:4px;color:#4a7eff}
.vp-body p,.vb-body p{font-size:11px;color:var(--text-2);line-height:1.6}
.vb-source{font-size:10px;color:var(--text-3);margin-top:4px}

/* 자가·지인 차단 안내 */
.self-block{padding:28px 16px}
.block-list{display:flex;flex-direction:column;gap:6px;margin-top:12px}
.bl-item{display:flex;align-items:flex-start;gap:8px;padding:10px 12px;background:var(--surface);border:1px solid var(--line);border-radius:8px;font-size:12px;color:var(--text-2);line-height:1.5}
.bl-no{font-weight:900;color:var(--theme-color);flex-shrink:0;font-variant-numeric:tabular-nums}
.self-note{margin-top:14px;padding:12px;background:rgba(255,71,87,.06);border-left:3px solid var(--red);border-radius:6px;font-size:11px;color:var(--text-2);line-height:1.6}
.self-note strong{color:var(--red)}

/* CTA */
.board-cta{padding:28px 16px;display:flex;flex-direction:column;gap:10px}
.big-cta{padding:16px 24px;font-size:14px;text-align:center;display:block}

/* ===== 작성 마법사 ===== */
.write-main{padding:0 0 100px;max-width:540px;margin:0 auto}
.write-hero{padding:24px 16px 20px}
.write-h1{font-size:22px;font-weight:900;margin-bottom:8px;letter-spacing:-.02em}
.write-sub{font-size:12px;color:var(--text-2);margin-bottom:18px}
.card-banner{display:flex;gap:12px;padding:14px 16px;background:linear-gradient(135deg,rgba(255,215,0,.08),var(--surface));border:1px solid var(--accent);border-radius:12px}
.cb-icon{font-size:24px}
.cb-body strong{display:block;font-size:13px;font-weight:900;margin-bottom:4px}
.cb-body p{font-size:11px;color:var(--text-2);line-height:1.5}

/* 단계 인디케이터 */
.steps-ind{display:flex;gap:0;padding:0 16px 14px;border-bottom:1px solid var(--line);overflow-x:auto;scrollbar-width:none}
.steps-ind::-webkit-scrollbar{display:none}
.si-step{flex:1;display:flex;align-items:center;gap:6px;padding:8px 10px;font-size:11px;font-weight:700;color:var(--text-3);white-space:nowrap;border-bottom:2px solid transparent}
.si-step span{width:22px;height:22px;display:flex;align-items:center;justify-content:center;background:var(--surface-2);border-radius:50%;font-weight:900;font-size:11px;color:var(--text-3)}
.si-step.active{color:var(--theme-color,var(--accent));border-bottom-color:var(--theme-color,var(--accent))}
.si-step.active span{background:var(--theme-color,var(--accent));color:#000}

/* 단계 패널 */
.step-panel{display:none;padding:24px 16px}
.step-panel.active{display:block}
.sp-h{font-size:18px;font-weight:900;margin-bottom:14px;letter-spacing:-.02em}
.sp-input{width:100%;padding:14px 16px;background:var(--surface);border:1.5px solid var(--line);border-radius:12px;color:var(--text);font-size:14px;margin-bottom:12px}
.sp-input:focus{border-color:var(--accent);outline:none}
.sp-textarea{width:100%;min-height:280px;padding:16px;background:var(--surface);border:1.5px solid var(--line);border-radius:12px;color:var(--text);font-size:14px;line-height:1.7;resize:vertical;font-family:inherit;margin-bottom:8px}
.sp-textarea:focus{border-color:var(--accent);outline:none}
.sp-hint{font-size:11px;color:var(--text-3);line-height:1.5;padding:8px 4px;margin-bottom:12px}

/* 업로드 그리드 */
.up-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:8px;margin-bottom:16px}
.up-card{padding:18px 12px;background:var(--surface);border:2px dashed var(--line-2);border-radius:12px;display:flex;flex-direction:column;align-items:center;gap:5px;cursor:pointer;position:relative;transition:border-color .15s,transform .1s}
.up-card:active{transform:scale(.97)}
.up-icon{font-size:28px;margin-bottom:4px}
.up-title{font-size:13px;font-weight:900}
.up-meta{font-size:10px;color:var(--text-3);text-align:center}
.up-status{position:absolute;top:8px;right:8px;font-size:10px;padding:2px 7px;border-radius:6px;font-weight:800}
.up-status.pending{background:rgba(112,112,112,.25);color:var(--text-3)}
.up-status.done{background:rgba(0,214,143,.18);color:var(--green)}

/* 글자수 카운터 */
.char-counter{display:flex;align-items:center;gap:10px;padding:8px 4px;font-size:11px;color:var(--text-2)}
.cc-bar{flex:1;height:5px;background:var(--bg-2);border-radius:3px;overflow:hidden}
.cc-fill{height:100%;background:var(--accent);transition:width .15s,background .3s;width:0}

.content-warn{padding:10px 12px;background:rgba(255,71,87,.06);border-left:3px solid var(--red);border-radius:6px;font-size:11px;color:var(--text-2);line-height:1.6;margin:8px 0 16px}

/* KCB 인증 + 최종 동의 */
.kcb-btn{display:block;width:100%;padding:14px;background:linear-gradient(90deg,#4a7eff,#3366FF);color:#fff;font-weight:900;border-radius:12px;font-size:14px;margin:14px 0}
.final-check{display:flex;flex-direction:column;gap:10px;padding:14px 0}
.final-check label{display:flex;gap:10px;align-items:flex-start;font-size:12px;color:var(--text-2);line-height:1.5;cursor:pointer}
.final-check input{margin-top:2px;accent-color:var(--accent);width:16px;height:16px}

/* 스텝 네비 */
.step-nav{display:flex;gap:8px;margin-top:18px}
.sp-prev,.sp-next,.sp-submit{flex:1;padding:13px;border-radius:10px;font-size:13px;font-weight:900;text-align:center}
.sp-prev{background:var(--surface-2);color:var(--text-2)}
.sp-next{background:var(--accent);color:#000}
.sp-submit{background:linear-gradient(90deg,#FFD700,#FFB800);color:#000;box-shadow:0 6px 16px rgba(255,215,0,.3)}

/* 태블릿+ */
@media(min-width:640px){
  .board-main,.write-main{max-width:720px}
  .evidence-cards{grid-template-columns:repeat(4,1fr)}
  .up-grid{grid-template-columns:repeat(4,1fr)}
  .post-list{display:grid;grid-template-columns:repeat(2,1fr)}
  .pc-title{font-size:14px}
}

/* ============================================================
   v15 — 거래소 첫화면 증권거래소 결 + 갱생 거래소
   ============================================================ */
.ex-v15{padding:0 0 80px;max-width:540px;margin:0 auto}

/* ① 티커 (첫화면 압도) */
.kx-ticker{display:grid;grid-template-columns:1fr 1fr;gap:1px;background:var(--line);border-bottom:1px solid var(--line)}
.kt-cell{padding:18px 14px;background:var(--bg-2);display:flex;flex-direction:column;gap:4px}
.kt-label{font-size:10px;color:var(--text-3);font-weight:800;letter-spacing:.04em;text-transform:uppercase}
.kt-big{font-size:30px;font-weight:900;color:var(--text);line-height:1.05;font-variant-numeric:tabular-nums;letter-spacing:-.025em}
.kt-delta{font-size:10px;font-weight:700;color:var(--text-3)}
.kt-delta.up{color:var(--green)}
.kt-delta.down{color:var(--red)}

/* ② 검색바 */
.kx-search{padding:18px 16px 8px}
.kx-bar{display:flex;align-items:stretch;background:var(--surface);border:1.5px solid rgba(255,215,0,.3);border-radius:12px;padding:4px;box-shadow:0 0 16px rgba(255,215,0,.08)}
.kxs-icon{display:flex;align-items:center;justify-content:center;width:38px;font-size:16px;opacity:.7}
.kx-bar input{flex:1;background:transparent;border:none;color:var(--text);font-size:15px;font-weight:700;padding:11px 4px;outline:none}
.kxs-btn{padding:0 18px;background:var(--accent);color:#000;border-radius:9px;font-size:13px;font-weight:900}
.kxs-hint{font-size:11px;color:var(--text-3);padding:8px 4px 0;text-align:center}
.typing-caret{display:inline-block;animation:blink 1s steps(2) infinite;color:var(--accent)}
@keyframes blink{50%{opacity:0}}

/* 공통 섹션 */
.kx-h{font-size:17px;font-weight:900;letter-spacing:-.02em;margin-bottom:10px}
.kx-meta{font-size:11px;color:var(--text-3);font-weight:700}

/* ③ 핫매물 TOP 3 */
.kx-hot{padding:14px 16px 18px}
.kx-hot-cards{display:flex;flex-direction:column;gap:8px;margin-top:6px}
.kx-h3{display:grid;grid-template-columns:auto auto 1fr auto;gap:10px;align-items:center;padding:11px 13px;background:linear-gradient(135deg,var(--surface),var(--bg-2));border:1px solid var(--line);border-radius:11px;position:relative;overflow:hidden}
.kx-h3::before{content:"";position:absolute;left:0;top:0;bottom:0;width:3px}
.kx-h3-1::before{background:linear-gradient(180deg,#FF4500,#FF6B35)}
.kx-h3-2::before{background:linear-gradient(180deg,#FFA500,#FFD700)}
.kx-h3-3::before{background:linear-gradient(180deg,#FFD700,#FFEC73)}
.kx-h3-rk{font-size:20px;font-weight:900;color:var(--accent);font-variant-numeric:tabular-nums;width:20px;text-align:center}
.kx-h3-em{font-size:22px}
.kx-h3-info{min-width:0}
.kx-h3-n{font-size:13px;font-weight:900;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.kx-h3-m{font-size:10px;color:var(--text-3);margin-top:2px}
.kx-h3-pr{text-align:right}
.kx-h3-pr > div:first-child{font-size:13px;font-weight:900;color:var(--accent);font-variant-numeric:tabular-nums}
.kx-h3-j{font-size:10px;color:var(--text-3);margin-top:2px}
.d-up{color:var(--green);font-size:9px;font-weight:900}
.d-dn{color:var(--red);font-size:9px;font-weight:900}
.d-eq{color:var(--text-3);font-size:9px}

/* ④ 호가창 + 체결 */
.kx-board{padding:0 16px 18px;display:flex;flex-direction:column;gap:12px}
.kx-board-col{background:var(--surface);border:1px solid var(--line);border-radius:11px;overflow:hidden}
.kx-board-head{display:flex;justify-content:space-between;align-items:center;padding:11px 13px;background:var(--surface-2);border-bottom:1px solid var(--line);font-size:13px;font-weight:800}
.kx-ob{max-height:380px;overflow-y:auto}
.kx-ob-r{position:relative;padding:10px 13px;border-bottom:1px solid var(--line)}
.kx-ob-r:last-child{border-bottom:none}
.kx-ob-f{position:absolute;left:0;top:0;bottom:0;background:linear-gradient(90deg,color-mix(in srgb,var(--g,#FFD700) 18%,transparent),color-mix(in srgb,var(--g,#FFD700) 2%,transparent));z-index:0}
.kx-ob-i{position:relative;z-index:1;display:grid;grid-template-columns:auto 1fr auto auto;gap:8px;align-items:center;font-size:12px}
.kx-ob-e{font-size:16px}
.kx-ob-n{font-weight:800;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.kx-ob-j{font-size:10px;color:var(--text-2);font-weight:700}
.kx-ob-p{font-weight:900;color:var(--accent);font-variant-numeric:tabular-nums}

.kx-trd{max-height:380px;overflow-y:auto}
.kx-trd-r{display:grid;grid-template-columns:46px 1fr auto auto;gap:8px;align-items:center;padding:9px 13px;border-bottom:1px solid var(--line);font-size:12px}
.kx-trd-r:last-child{border-bottom:none}
.kx-trd-t{font-size:10px;color:var(--text-3);font-weight:700;font-variant-numeric:tabular-nums}
.kx-trd-n{font-weight:700;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.kx-trd-p{font-weight:900;font-variant-numeric:tabular-nums}
.kx-trd-up .kx-trd-p{color:var(--green)}
.kx-trd-dn .kx-trd-p{color:var(--red)}
.kx-trd-eq .kx-trd-p{color:var(--text-2)}
.kx-trd-b{font-size:9px;color:var(--text-3);font-weight:700}

/* ⑤ 매물 그리드 */
.kx-listings{padding:18px 16px}
.kx-lst-head{display:flex;justify-content:space-between;align-items:baseline;margin-bottom:10px}
.kx-lst-head strong{color:var(--text);font-weight:900}
.kx-filter{display:flex;gap:6px;overflow-x:auto;padding-bottom:12px;scrollbar-width:none}
.kx-filter::-webkit-scrollbar{display:none}
.chip-v15{flex-shrink:0;padding:7px 13px;background:var(--surface);border:1px solid var(--line);border-radius:14px;font-size:12px;color:var(--text-2);font-weight:800;white-space:nowrap}
.chip-v15.active{background:var(--accent);color:#000;border-color:var(--accent)}
.kx-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:8px}
.kx-card{padding:12px;background:linear-gradient(180deg,var(--surface),var(--bg-2));border:1.5px solid var(--line);border-radius:12px;display:flex;flex-direction:column;gap:5px;position:relative;overflow:hidden;transition:transform .15s}
.kx-card:active{transform:scale(.97)}
.kx-card-master{border-color:rgba(255,215,0,.35)}
.kx-card-trust{border-color:rgba(74,126,255,.3)}
.kx-card-reg{border-color:rgba(0,214,143,.25)}
.kxc-head{display:flex;justify-content:space-between;align-items:center}
.kxc-em{font-size:16px}
.kxc-yr{font-size:10px;color:var(--text-3);font-weight:800;padding:2px 6px;background:var(--bg-2);border-radius:4px}
.kxc-n{font-size:13px;font-weight:900;line-height:1.3}
.kxc-a{font-size:10px;color:var(--text-2);font-weight:700}
.kxc-tags{display:flex;gap:5px;align-items:center;flex-wrap:wrap;margin-top:2px}
.kxc-t1{font-size:9px;font-weight:800;padding:2px 5px;background:rgba(255,69,0,.15);color:#FF6B35;border-radius:4px}
.kxc-jj{font-size:10px;font-weight:800;color:var(--g,var(--accent));margin-left:auto}
.kxc-foot{display:flex;justify-content:space-between;align-items:center;padding-top:7px;border-top:1px solid var(--line);margin-top:auto}
.kxc-pg{font-size:10px;color:var(--text-3);font-weight:700}
.kxc-pr{font-size:14px;font-weight:900;color:var(--accent);font-variant-numeric:tabular-nums}
.kxc-pr small{font-size:9px;color:var(--text-3);margin-left:1px}
.kxc-seed{position:absolute;top:6px;right:6px;font-size:7px;font-weight:800;padding:1px 5px;background:rgba(112,112,112,.3);color:var(--text-3);border-radius:3px}

/* ⑥ 모듈 그리드 */
.kx-modules{padding:18px 16px}
.kx-mod-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:6px;margin-top:8px}
.kx-mod{display:flex;flex-direction:column;align-items:center;gap:3px;padding:13px 6px;background:linear-gradient(180deg,var(--surface),var(--bg-2));border:1px solid var(--line);border-radius:10px;text-align:center;position:relative;overflow:hidden}
.kx-mod::before{content:"";position:absolute;top:0;left:0;right:0;height:2px;background:var(--accent)}
.kx-mn{font-size:13px;font-weight:900;color:var(--accent);font-variant-numeric:tabular-nums}
.kx-mt{font-size:11px;font-weight:900;color:var(--text)}
.kx-ms{font-size:9px;color:var(--text-3);line-height:1.3}
.kx-mod-prem{background:linear-gradient(135deg,rgba(255,215,0,.06),var(--bg-2));border-color:rgba(255,215,0,.3)}
.kx-mod-rb{background:linear-gradient(135deg,rgba(0,214,143,.1),var(--bg-2));border-color:rgba(0,214,143,.4)}
.kx-mod-rb::before{background:linear-gradient(90deg,#00d68f,#00B377)}
.kx-mod-rb .kx-mn{color:#00d68f}
.kx-pill{position:absolute;top:-6px;right:-2px;background:linear-gradient(90deg,#9966FF,#7744DD);color:#fff;font-size:7px;font-weight:900;padding:2px 5px;border-radius:6px;transform:rotate(8deg)}
.kx-pill-rb{background:linear-gradient(90deg,#00d68f,#00B377)}

/* ⑦ 등급 */
.kx-grade{padding:18px 16px}
.kx-g-rows{display:flex;flex-direction:column;gap:6px;margin-top:8px}
.kx-g{display:grid;grid-template-columns:auto 1fr auto;gap:10px;padding:12px 14px;background:var(--surface);border:1px solid var(--line);border-radius:10px;align-items:center;position:relative;overflow:hidden}
.kx-g::before{content:"";position:absolute;left:0;top:0;bottom:0;width:3px}
.kx-g-master::before{background:linear-gradient(180deg,#FFD700,#FFB800)}
.kx-g-trust::before{background:linear-gradient(180deg,#4a7eff,#3366FF)}
.kx-g-reg::before{background:linear-gradient(180deg,#00d68f,#00B377)}
.kx-g-new::before{background:var(--text-3)}
.kx-g span:first-child{font-size:12px;font-weight:900}
.kx-g strong{font-size:13px;font-weight:900;color:var(--accent);font-variant-numeric:tabular-nums}
.kx-g span:last-child{font-size:11px;color:var(--text-2);font-weight:700}

/* ⑧ 헌법 4종 박스 */
.kx-const{padding:18px 16px}
.kx-const-grid{display:grid;grid-template-columns:1fr 1fr;gap:6px;margin-top:8px}
.kx-const-card{padding:12px 13px;background:linear-gradient(135deg,var(--surface),var(--bg-2));border:1px solid var(--line);border-radius:10px;display:flex;flex-direction:column;gap:4px;position:relative;overflow:hidden}
.kx-const-card::before{content:"";position:absolute;top:0;left:0;right:0;height:2px;background:var(--accent)}
.kx-const-card strong{font-size:13px;font-weight:900;color:var(--accent)}
.kx-const-card span{font-size:10px;color:var(--text-2);line-height:1.5}
.kx-const-new::before{background:linear-gradient(90deg,#00d68f,#3399FF)}
.kx-const-new strong{color:#00d68f}

/* ⑨ CTA */
.kx-cta{padding:18px 16px;display:flex;flex-direction:column;gap:8px}

/* === 갱생 거래소 === */
.rb-main{padding:0 0 80px;max-width:540px;margin:0 auto}
.rb-hero{padding:32px 16px 20px;background:radial-gradient(ellipse at top,rgba(0,214,143,.06),transparent 70%);text-align:center}
.rb-eyebrow{display:inline-block;padding:5px 14px;background:rgba(0,214,143,.12);color:#00d68f;border:1px solid rgba(0,214,143,.4);border-radius:14px;font-size:11px;font-weight:800;margin-bottom:16px}
.rb-h1{font-size:24px;font-weight:900;line-height:1.35;letter-spacing:-.02em;margin-bottom:10px}
.rb-hl{color:#00d68f}
.rb-sub{font-size:12px;color:var(--text-2);line-height:1.6}

.rb-flow{padding:24px 16px;display:flex;flex-direction:column;gap:10px}
.rb-step{padding:18px 16px 18px 58px;background:var(--surface);border:1px solid var(--line);border-radius:12px;position:relative}
.rb-step-num{position:absolute;left:16px;top:18px;width:32px;height:32px;background:linear-gradient(135deg,#00d68f,#00B377);color:#000;border-radius:50%;display:flex;align-items:center;justify-content:center;font-weight:900;font-size:13px}
.rb-step h3{font-size:14px;font-weight:900;margin-bottom:6px}
.rb-step p{font-size:12px;color:var(--text-2);line-height:1.6}

.rb-progress{padding:18px 16px}
.rb-list{display:flex;flex-direction:column;gap:8px;margin-top:10px}
.rb-card{padding:14px;background:var(--surface);border:1px solid rgba(0,214,143,.3);border-radius:11px;border-left:3px solid #00d68f}
.rb-c-head{display:flex;align-items:center;gap:8px;margin-bottom:8px}
.rb-c-em{font-size:18px}
.rb-c-name{font-size:14px;font-weight:900;flex:1}
.rb-c-days{font-size:11px;font-weight:900;color:#00d68f;padding:3px 8px;background:rgba(0,214,143,.15);border-radius:6px}
.rb-c-status{font-size:12px;color:var(--text-2);margin-bottom:8px}
.rb-c-bar{height:4px;background:var(--bg-2);border-radius:2px;overflow:hidden;margin-bottom:6px}
.rb-c-fill{height:100%;background:linear-gradient(90deg,#00d68f,#00B377)}
.rb-c-meta{font-size:10px;color:var(--text-3)}

.rb-invite{padding:18px 16px}
.rb-invite-card{margin-top:10px;padding:18px;background:var(--surface);border:1px solid var(--line);border-radius:12px;display:flex;flex-direction:column;gap:14px}
.rb-i-row{display:flex;gap:12px;align-items:flex-start}
.rb-i-icon{font-size:18px;font-weight:900;color:#00d68f;width:24px;flex-shrink:0;font-variant-numeric:tabular-nums}
.rb-i-row strong{display:block;font-size:13px;font-weight:900;margin-bottom:3px}
.rb-i-row p{font-size:11px;color:var(--text-2);line-height:1.5}

.rb-scope{padding:18px 16px}
.rb-scope-list{list-style:none;padding:0;margin-top:8px;display:flex;flex-direction:column;gap:6px}
.rb-scope-list li{padding:10px 14px;background:var(--surface);border:1px solid var(--line);border-radius:8px;font-size:12px;color:var(--text-2);line-height:1.5}
.rb-scope-list strong{color:var(--accent)}

.rb-cta{padding:18px 16px;display:flex;flex-direction:column;gap:8px}

/* 태블릿+ */
@media(min-width:640px){
  .ex-v15,.rb-main{max-width:760px}
  .kx-ticker{grid-template-columns:repeat(4,1fr)}
  .kt-big{font-size:34px}
  .kx-board{flex-direction:row}
  .kx-board-col{flex:1}
  .kx-grid{grid-template-columns:repeat(3,1fr)}
  .kx-const-grid{grid-template-columns:repeat(4,1fr)}
  .rb-flow{display:grid;grid-template-columns:repeat(2,1fr)}
  .rb-cta,.kx-cta{flex-direction:row}
}
@media(min-width:1024px){
  .ex-v15{max-width:1100px}
  .kt-big{font-size:40px}
  .kx-grid{grid-template-columns:repeat(4,1fr)}
  .rb-flow{grid-template-columns:repeat(4,1fr)}
}

/* ============================================================
   v16 — v12 거래소 강점 복원 (큰 헤더 + 호가창 풀 정보)
   ============================================================ */
.ex-v16{padding:0 0 80px;max-width:1200px;margin:0 auto}

/* 티커 — v12 결 큰 숫자 */
.v16-ticker{display:grid;grid-template-columns:1fr 1fr;gap:1px;background:var(--line);border-bottom:1px solid var(--line)}
.v16-t-cell{padding:18px 16px;background:var(--bg-2);display:flex;flex-direction:column;gap:6px}
.v16-t-label{font-size:11px;color:var(--text-3);font-weight:800;letter-spacing:.04em;text-transform:uppercase}
.v16-t-big{font-size:24px;font-weight:900;color:var(--text);line-height:1.1;font-variant-numeric:tabular-nums;letter-spacing:-.025em}
.v16-t-delta{font-size:12px;font-weight:800}
.v16-t-delta.up{color:var(--green)}
.v16-t-delta.down{color:var(--red)}
.v16-t-delta.neutral{color:var(--text-3)}

/* 거래소 헤더 — v12 강점 큰 카피 */
.v16-hero{padding:32px 16px 24px}
.v16-eyebrow{display:inline-block;padding:5px 12px;background:rgba(74,126,255,.12);color:var(--primary);border-radius:14px;font-size:11px;font-weight:800;margin-bottom:14px}
.v16-h1{font-size:32px;font-weight:900;line-height:1.2;letter-spacing:-.03em;margin-bottom:12px}
.v16-hl{color:var(--accent)}
.v16-sub{font-size:14px;color:var(--text-2);line-height:1.6}

/* 필터 — v12 결 큰 칩 */
.v16-filter{padding:0 16px 16px;display:flex;flex-direction:column;gap:8px;border-bottom:1px solid var(--line);margin-bottom:20px}
.v16-fr{display:flex;gap:6px;overflow-x:auto;scrollbar-width:none;-webkit-overflow-scrolling:touch}
.v16-fr::-webkit-scrollbar{display:none}
.v16-chip{flex-shrink:0;padding:9px 16px;background:var(--surface);border:1px solid var(--line);border-radius:18px;font-size:13px;color:var(--text-2);font-weight:700;white-space:nowrap}
.v16-chip.active{background:var(--accent);color:#000;border-color:var(--accent)}
.v16-sort{appearance:none;padding-right:30px;background-image:linear-gradient(45deg,transparent 50%,var(--text-2) 50%),linear-gradient(135deg,var(--text-2) 50%,transparent 50%);background-position:calc(100% - 14px) 50%,calc(100% - 10px) 50%;background-size:4px 4px;background-repeat:no-repeat}

/* 거래 보드 — 호가창 + 체결 */
.v16-board{display:flex;flex-direction:column;gap:20px;padding:0 16px;margin-bottom:36px}
.v16-col{background:var(--surface);border:1px solid var(--line);border-radius:14px;overflow:hidden}
.v16-bh{display:flex;justify-content:space-between;align-items:center;padding:14px 16px;background:var(--surface-2);border-bottom:1px solid var(--line)}
.v16-bt{font-size:14px;font-weight:800}
.v16-bm{font-size:11px;color:var(--text-3);font-weight:700}

/* 호가창 — v12 풀 정보 결 */
.v16-ob{max-height:520px;overflow-y:auto}
.v16-ob-row{display:flex;justify-content:space-between;align-items:center;padding:14px 16px;border-bottom:1px solid var(--line);gap:10px}
.v16-ob-row:last-child{border-bottom:none}
.v16-ob-row:hover{background:var(--surface-2)}
.v16-ob-left{display:flex;align-items:flex-start;gap:10px;flex:1;min-width:0}
.v16-ob-emoji{font-size:24px;flex-shrink:0;width:38px;height:38px;display:flex;align-items:center;justify-content:center;background:var(--bg-2);border-radius:8px}
.v16-ob-info{flex:1;min-width:0}
.v16-ob-title{font-size:13px;font-weight:800;margin-bottom:6px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.v16-ob-meta{display:flex;gap:5px;flex-wrap:wrap;align-items:center}
.v16-ob-grade{font-size:10px;font-weight:800;padding:2px 7px;border-radius:5px;background:var(--surface-2);color:var(--text-2)}
.v16-ob-grade.master{background:rgba(255,215,0,.18);color:var(--accent)}
.v16-ob-grade.trust{background:rgba(74,126,255,.18);color:var(--primary)}
.v16-ob-grade.reg{background:rgba(0,214,143,.18);color:var(--green)}
.v16-ob-tag{font-size:9px;font-weight:800;padding:2px 6px;border-radius:4px;background:rgba(255,255,255,.08);color:var(--text-3)}
.v16-ob-tag.v{background:rgba(0,214,143,.2);color:var(--green)}
.v16-ob-tag.day50{background:rgba(255,153,51,.2);color:#FF9933}
.v16-ob-time{font-size:10px;color:var(--text-3);margin-left:4px}
.v16-ob-right{display:flex;flex-direction:column;align-items:flex-end;gap:8px;flex-shrink:0}
.v16-ob-price{font-size:15px;font-weight:900;color:var(--accent);font-variant-numeric:tabular-nums}
.v16-ob-buy{padding:7px 16px;background:var(--accent);color:#000;border-radius:8px;font-size:12px;font-weight:900}
.v16-ob-buy:hover{opacity:.9}
.v16-more{display:block;text-align:center;padding:14px;font-size:13px;color:var(--text-2);font-weight:700;border-top:1px solid var(--line);background:var(--surface-2)}

/* 체결 피드 */
.v16-trd{max-height:520px;overflow-y:auto}
.v16-trd-row{display:grid;grid-template-columns:48px 1fr auto auto;gap:8px;align-items:center;padding:11px 16px;border-bottom:1px solid var(--line);font-size:12px}
.v16-trd-row:last-child{border-bottom:none}
.v16-trd-t{font-size:11px;color:var(--text-3);font-weight:700;font-variant-numeric:tabular-nums}
.v16-trd-n{font-weight:700;color:var(--text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.v16-trd-p{font-weight:900;color:var(--green);font-variant-numeric:tabular-nums}
.v16-trd-b{font-size:10px;color:var(--text-3);font-weight:700}

/* 핫매물 TOP 3 */
.v16-hot{padding:0 16px 36px}
.v16-sh{font-size:18px;font-weight:900;letter-spacing:-.02em;margin-bottom:6px;display:flex;justify-content:space-between;align-items:baseline}
.v16-shmeta{font-size:11px;color:var(--text-3);font-weight:700}
.v16-shsub{font-size:13px;color:var(--text-3);margin-bottom:14px;line-height:1.5}
.v16-hot-grid{display:flex;flex-direction:column;gap:10px}
.v16-hot-card{display:grid;grid-template-columns:auto auto 1fr auto;gap:12px;align-items:center;padding:14px 16px;background:linear-gradient(135deg,var(--surface),var(--bg-2));border:1px solid var(--line);border-radius:12px;position:relative;overflow:hidden}
.v16-hot-card::before{content:"";position:absolute;left:0;top:0;bottom:0;width:4px}
.v16-hot-1::before{background:linear-gradient(180deg,#FF4500,#FF6B35)}
.v16-hot-2::before{background:linear-gradient(180deg,#FFA500,#FFD700)}
.v16-hot-3::before{background:linear-gradient(180deg,#FFD700,#FFEC73)}
.v16-hot-rk{font-size:24px;font-weight:900;color:var(--accent);font-variant-numeric:tabular-nums}
.v16-hot-em{font-size:24px}
.v16-hot-info{min-width:0}
.v16-hot-title{font-size:13px;font-weight:800;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;margin-bottom:4px}
.v16-hot-meta{display:flex;gap:8px;align-items:center;font-size:11px}
.v16-hot-score{font-size:11px;color:#FF6B35;font-weight:900}
.v16-hot-price{font-size:15px;font-weight:900;color:var(--accent);font-variant-numeric:tabular-nums}

/* 등급별 가격대 — v12 강점 큰 카드 */
.v16-grade{padding:0 16px 36px}
.v16-grows{display:flex;flex-direction:column;gap:10px;margin-top:14px}
.v16-g-row{display:grid;grid-template-columns:auto 1fr;grid-template-rows:auto auto;gap:6px 14px;padding:16px 18px;background:var(--surface);border:1px solid var(--line);border-radius:12px;position:relative;overflow:hidden}
.v16-g-row::before{content:"";position:absolute;left:0;top:0;bottom:0;width:4px}
.v16-g-master::before{background:linear-gradient(180deg,#FFD700,#FFB800)}
.v16-g-trust::before{background:var(--primary)}
.v16-g-reg::before{background:var(--green)}
.v16-g-new::before{background:var(--text-3)}
.v16-grk{grid-column:1;font-size:14px;font-weight:800}
.v16-grg{grid-column:2;font-size:14px;font-weight:900;color:var(--accent);text-align:right;font-variant-numeric:tabular-nums}
.v16-gsh{grid-column:1;font-size:11px;color:var(--text-2);font-weight:700}
.v16-gcd{grid-column:2;font-size:11px;color:var(--text-3);text-align:right}

/* 갱생 거래소 진입 박스 */
.v16-rebirth{padding:0 16px 36px}
.v16-rb-cta{display:flex;align-items:center;gap:14px;padding:18px;background:linear-gradient(135deg,rgba(0,214,143,.1),var(--surface));border:1.5px solid rgba(0,214,143,.4);border-radius:14px;margin-top:14px}
.v16-rb-icon{font-size:32px;flex-shrink:0}
.v16-rb-body{flex:1;min-width:0}
.v16-rb-body strong{display:block;font-size:14px;font-weight:900;color:#00d68f;margin-bottom:4px}
.v16-rb-body span{font-size:11px;color:var(--text-2)}
.v16-rb-arrow{font-size:22px;color:#00d68f;font-weight:900}

/* 사연기 진입 박스 */
.v16-jjul{padding:0 16px 36px}
.v16-jjul-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:14px}
.v16-jc{padding:18px 14px;background:linear-gradient(135deg,var(--surface),var(--bg-2));border:1px solid var(--line);border-radius:12px;display:flex;flex-direction:column;gap:6px;align-items:flex-start;position:relative;overflow:hidden}
.v16-jc::before{content:"";position:absolute;top:0;left:0;right:0;height:3px}
.v16-jc-don::before{background:linear-gradient(90deg,#FFD700,#FFB800)}
.v16-jc-hon::before{background:linear-gradient(90deg,#ff4757,#c00000)}
.v16-jc-icon{font-size:24px}
.v16-jc strong{font-size:13px;font-weight:900}
.v16-jc span{font-size:10px;color:var(--text-3);line-height:1.4}

/* 헌법 4종 박스 */
.v16-const{padding:0 16px 36px}
.v16-const-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:14px}
.v16-cc{padding:14px;background:linear-gradient(135deg,var(--surface),var(--bg-2));border:1px solid var(--line);border-radius:10px;display:flex;flex-direction:column;gap:4px;position:relative;overflow:hidden}
.v16-cc::before{content:"";position:absolute;top:0;left:0;right:0;height:2px;background:var(--accent)}
.v16-cc strong{font-size:13px;font-weight:900;color:var(--accent)}
.v16-cc span{font-size:10px;color:var(--text-2);line-height:1.5}
.v16-cc-new::before{background:linear-gradient(90deg,#00d68f,#3399FF)}
.v16-cc-new strong{color:#00d68f}

/* CTA */
.v16-cta{padding:0 16px;display:flex;flex-direction:column;gap:12px}
.v16-cta-card{padding:24px 20px;background:linear-gradient(135deg,var(--surface),var(--bg-2));border:1px solid var(--line);border-radius:14px;text-align:center}
.v16-cta-card h3{font-size:17px;font-weight:900;margin-bottom:8px}
.v16-cta-card p{font-size:13px;color:var(--text-2);margin-bottom:16px;line-height:1.6}

/* 변동률 ▲▼ */
.d-up{display:inline-block;font-size:10px;font-weight:900;padding:1px 5px;border-radius:4px;background:rgba(0,214,143,.18);color:var(--green);font-variant-numeric:tabular-nums}
.d-dn{display:inline-block;font-size:10px;font-weight:900;padding:1px 5px;border-radius:4px;background:rgba(255,71,87,.18);color:var(--red);font-variant-numeric:tabular-nums}

/* 태블릿+ */
@media(min-width:768px){
  .v16-ticker{grid-template-columns:repeat(4,1fr)}
  .v16-t-big{font-size:30px}
  .v16-board{flex-direction:row;align-items:flex-start}
  .v16-col{flex:1}
  .v16-sell{flex:2}
  .v16-hero{padding:48px 24px 32px}
  .v16-h1{font-size:42px}
  .v16-cta{flex-direction:row}
  .v16-const-grid{grid-template-columns:repeat(4,1fr)}
  .v16-g-row{grid-template-columns:120px 1fr 120px 1fr;grid-template-rows:auto}
  .v16-gsh{grid-column:3;text-align:center}
  .v16-gcd{grid-column:4}
}
@media(min-width:1024px){
  .v16-h1{font-size:50px}
  .v16-t-big{font-size:36px}
}

/* ============================================================
   v17 — 갱생 거래소 증권거래소 결
   ============================================================ */
.rb-v17{padding:0 0 80px;max-width:1200px;margin:0 auto}
.rb-beta{background:linear-gradient(90deg,rgba(0,214,143,.1),rgba(0,214,143,.04))}
.rb-beta .beta-tag{background:linear-gradient(135deg,#00d68f,#00B377);color:#000}

.rb-hero-v17{padding-top:32px}
.rb-eyebrow-v17{background:rgba(0,214,143,.12);color:#00d68f;border:1px solid rgba(0,214,143,.4)}
.rb-hl-v17{color:#00d68f}
.rb-c-green{color:#00d68f}

.rb-bh-v17{background:linear-gradient(90deg,rgba(0,214,143,.08),var(--surface-2))}

/* 갱생 진행 호가창 행 */
.rb-prog-row{padding:14px 16px}
.rb-status-pill{font-size:10px;font-weight:800;padding:3px 8px;border-radius:5px;background:rgba(0,214,143,.18);color:#00d68f}
.rb-prog-bar{height:4px;background:var(--bg-2);border-radius:2px;overflow:hidden;margin-top:8px}
.rb-prog-fill{height:100%;background:linear-gradient(90deg,#00d68f,#00B377);transition:width .3s}
.rb-dday{font-size:14px;font-weight:900;color:#00d68f;font-variant-numeric:tabular-nums;padding:4px 10px;background:rgba(0,214,143,.12);border-radius:7px}
.rb-prog-pct{font-size:11px;color:var(--text-3);font-weight:700;font-variant-numeric:tabular-nums;margin-top:6px}

/* 변경 완료 피드 */
.rb-complete-row .v16-trd-p{color:#00d68f}
.rb-diff{font-size:11px;font-weight:800;color:#00d68f;text-align:right}

/* 절차 4단계 */
.rb-flow-v17{padding:0 16px 36px}
.rb-flow-grid{display:flex;flex-direction:column;gap:10px;margin-top:14px}
.rb-step-v17{padding:18px 16px 18px 60px;background:var(--surface);border:1px solid var(--line);border-radius:12px;position:relative;border-left:3px solid #00d68f}
.rb-step-v17 .rb-step-num{position:absolute;left:14px;top:16px;width:34px;height:34px;background:linear-gradient(135deg,#00d68f,#00B377);color:#000;border-radius:50%;display:flex;align-items:center;justify-content:center;font-weight:900;font-size:13px}
.rb-step-v17 h3{font-size:14px;font-weight:900;margin-bottom:6px}
.rb-step-v17 p{font-size:12px;color:var(--text-2);line-height:1.6}

/* 원작자 재초대 */
.rb-invite-v17{padding:0 16px 36px}
.rb-invite-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:14px}
.rb-i-card{padding:16px 14px;background:linear-gradient(135deg,var(--surface),var(--bg-2));border:1px solid var(--line);border-radius:11px;position:relative;overflow:hidden}
.rb-i-card::before{content:"";position:absolute;top:0;left:0;right:0;height:3px;background:linear-gradient(90deg,#00d68f,#00B377)}
.rb-i-num{display:inline-flex;width:24px;height:24px;background:rgba(0,214,143,.15);color:#00d68f;border-radius:50%;align-items:center;justify-content:center;font-weight:900;font-size:12px;margin-bottom:8px}
.rb-i-card strong{display:block;font-size:13px;font-weight:900;margin-bottom:4px}
.rb-i-card p{font-size:11px;color:var(--text-2);line-height:1.5}

/* 적용 범위 */
.rb-scope-v17{padding:0 16px 36px}
.rb-scope-cards{display:grid;grid-template-columns:1fr;gap:6px;margin-top:14px}
.rb-scope-c{padding:12px 14px;background:var(--surface);border:1px solid var(--line);border-radius:8px;font-size:12px;color:var(--text-2);line-height:1.6;border-left:3px solid #00d68f}
.rb-scope-c strong{color:#00d68f}

/* 태블릿+ */
@media(min-width:768px){
  .rb-flow-grid{display:grid;grid-template-columns:repeat(2,1fr)}
  .rb-invite-grid{grid-template-columns:repeat(4,1fr)}
  .rb-scope-cards{grid-template-columns:repeat(2,1fr)}
}
@media(min-width:1024px){
  .rb-flow-grid{grid-template-columns:repeat(4,1fr)}
}

/* ============================================================
   v18 — 사연기 게시판 증권거래소 결 (돈쭐·혼쭐 통일)
   ============================================================ */
.jjb-v18{padding:0 0 80px;max-width:1200px;margin:0 auto}

/* 베타바 컬러 */
.jjb-don-beta{background:linear-gradient(90deg,rgba(255,215,0,.1),rgba(255,215,0,.04))}
.jjb-don-beta .beta-tag{background:linear-gradient(135deg,#FFD700,#FFB800);color:#000}
.jjb-hon-beta{background:linear-gradient(90deg,rgba(255,71,87,.1),rgba(255,71,87,.04))}
.jjb-hon-beta .beta-tag{background:linear-gradient(135deg,#ff4757,#c00000);color:#fff}

/* 컬러 변수 */
.jjb-don-c{color:#FFD700}
.jjb-hon-c{color:#ff4757}
.jjb-don-hl{color:#FFD700}
.jjb-hon-hl{color:#ff4757}
.jjb-don-eb{background:rgba(255,215,0,.12);color:#FFD700;border:1px solid rgba(255,215,0,.4)}
.jjb-hon-eb{background:rgba(255,71,87,.12);color:#ff4757;border:1px solid rgba(255,71,87,.4)}

.jjb-hero-don{padding-top:32px}
.jjb-hero-hon{padding-top:32px}

.jjb-don-bh{background:linear-gradient(90deg,rgba(255,215,0,.08),var(--surface-2))}
.jjb-hon-bh{background:linear-gradient(90deg,rgba(255,71,87,.08),var(--surface-2))}

.jjb-write-cta{display:inline-block;margin-top:16px;padding:13px 22px;background:linear-gradient(90deg,#FFD700,#FFB800);color:#000;border-radius:11px;font-size:14px;font-weight:900;box-shadow:0 6px 18px rgba(255,215,0,.25)}
.jjb-hero-hon .jjb-write-cta{background:linear-gradient(90deg,#ff4757,#c00000);color:#fff;box-shadow:0 6px 18px rgba(255,71,87,.25)}

/* 호가창 사연 행 */
.jjb-row{padding:16px}
.jjb-pill-conf{font-size:10px;font-weight:900;padding:2px 7px;border-radius:5px;background:rgba(0,214,143,.18);color:var(--green)}
.jjb-pill-prog{font-size:10px;font-weight:800;padding:2px 7px;border-radius:5px;background:rgba(255,215,0,.18);color:var(--accent)}
.jjb-empathy-bar{margin-top:8px;height:5px;background:var(--bg-2);border-radius:3px;overflow:hidden;position:relative}
.jjb-empathy-fill{height:100%;background:linear-gradient(90deg,#FFD700,#FFB800)}
.jjb-row.jjb-hon-row .jjb-empathy-fill,
[class*="hon"] .jjb-empathy-fill{background:linear-gradient(90deg,#ff4757,#c00000)}
.jjb-empathy-label{position:absolute;right:0;top:-16px;font-size:10px;font-weight:800;color:var(--text-2)}
.jjb-comment-count{font-size:11px;color:var(--text-3);font-weight:700;margin-bottom:6px}
.jjb-don-btn{background:linear-gradient(90deg,#FFD700,#FFB800)!important;color:#000!important}
.jjb-hon-btn{background:linear-gradient(90deg,#ff4757,#c00000)!important;color:#fff!important}

/* 확정 피드 */
.jjb-conf-row{display:grid;grid-template-columns:46px 1fr auto auto;gap:8px}
.jjb-conf-empathy{font-size:12px;font-weight:900;color:#FFD700;font-variant-numeric:tabular-nums}
.jjb-hon-bh + .v16-trd .jjb-conf-empathy,
[class*="hon"] .jjb-conf-empathy{color:#ff4757}

/* 왜? 섹션 */
.jjb-why{padding:32px 16px 36px;text-align:center}
.jjb-why-big{font-size:64px;font-weight:900;color:#FFD700;text-shadow:0 0 24px rgba(255,215,0,.4);margin-bottom:10px;letter-spacing:-.04em;line-height:1}
[class*="hon"] .jjb-why-big{color:#ff4757;text-shadow:0 0 24px rgba(255,71,87,.4)}
.jjb-why-claim{font-size:20px;font-weight:900;line-height:1.4;margin-bottom:18px;letter-spacing:-.02em}
.jjb-why-cards{display:flex;flex-direction:column;gap:10px;text-align:left;margin-top:20px}
.jjb-wc{padding:18px;background:var(--surface);border:1px solid var(--line);border-radius:14px;display:flex;align-items:flex-start;gap:14px;position:relative;overflow:hidden;border-left:3px solid #FFD700}
[class*="hon"] .jjb-wc{border-left-color:#ff4757}
.jjb-wi{font-size:26px;flex-shrink:0;width:42px;height:42px;display:flex;align-items:center;justify-content:center;background:var(--bg-2);border-radius:10px}
.jjb-wc > div:nth-child(n+2){flex:1;min-width:0}
.jjb-wn{font-size:10px;font-weight:900;color:#FFD700;letter-spacing:.06em;margin-bottom:5px}
[class*="hon"] .jjb-wn{color:#ff4757}
.jjb-wc h3{font-size:15px;font-weight:900;margin-bottom:6px;letter-spacing:-.01em}
.jjb-wc p{font-size:12px;color:var(--text-2);line-height:1.6}

/* 4중 증빙 미리보기 */
.jjb-evidence{padding:0 16px 36px}
.jjb-ev-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:8px;margin-top:14px}
.jjb-ev-card{padding:16px 12px;background:linear-gradient(180deg,var(--surface),var(--bg-2));border:1px solid var(--line);border-radius:12px;position:relative;overflow:hidden;display:flex;flex-direction:column;gap:6px;align-items:center;text-align:center}
.jjb-ev-card::before{content:"";position:absolute;top:0;left:0;right:0;height:3px;background:#FFD700}
[class*="hon"] .jjb-ev-card::before{background:#ff4757}
.jjb-ev-num{position:absolute;top:6px;right:8px;font-size:10px;font-weight:900;color:#FFD700;letter-spacing:.05em}
[class*="hon"] .jjb-ev-num{color:#ff4757}
.jjb-ev-icon{font-size:28px;margin-top:4px}
.jjb-ev-title{font-size:13px;font-weight:900}
.jjb-ev-sub{font-size:10px;color:var(--text-3);line-height:1.5}

/* 자가·지인 4중 차단 */
.jjb-block{padding:0 16px 36px}
.jjb-block-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:6px;margin-top:14px}
.jjb-bc{padding:12px 14px;background:var(--surface);border:1px solid var(--line);border-radius:8px;font-size:12px;color:var(--text-2);display:flex;align-items:center;gap:8px;border-left:3px solid var(--red)}
.jjb-bn{font-weight:900;color:var(--red);font-variant-numeric:tabular-nums}
.jjb-block-foot{margin-top:14px;padding:12px 14px;background:rgba(255,71,87,.06);border-left:3px solid var(--red);border-radius:6px;font-size:11px;color:var(--text-2);line-height:1.6}
.jjb-block-foot strong{color:var(--red)}

/* 혼쭐 → 갱생 거래소 연동 안내 */
.hon-rebirth-link{padding:14px 16px 0}
.hon-rb-link{display:flex;align-items:center;gap:14px;padding:14px 16px;background:linear-gradient(135deg,rgba(0,214,143,.08),var(--surface));border:1px solid rgba(0,214,143,.35);border-radius:12px}
.hon-rb-icon{font-size:24px;flex-shrink:0}
.hon-rb-body{flex:1;min-width:0}
.hon-rb-body strong{display:block;font-size:13px;font-weight:900;color:#00d68f;margin-bottom:3px}
.hon-rb-body span{font-size:11px;color:var(--text-2)}
.hon-rb-arrow{font-size:20px;color:#00d68f;font-weight:900}

/* 태블릿+ */
@media(min-width:768px){
  .jjb-why-big{font-size:84px}
  .jjb-why-claim{font-size:26px}
  .jjb-why-cards{display:grid;grid-template-columns:repeat(3,1fr)}
  .jjb-ev-grid{grid-template-columns:repeat(4,1fr)}
  .jjb-block-grid{grid-template-columns:repeat(4,1fr)}
}

/* ============================================================
   v18 — 거래소 페이지 미리보기 잠금 + 왜? 3카드 (v13 강점)
   ============================================================ */
.ex-preview-lock{padding:24px 16px 36px}
.epl-card{padding:24px 18px;background:radial-gradient(ellipse at top,rgba(255,215,0,.08),transparent 60%),var(--surface);border:1.5px solid rgba(255,215,0,.3);border-radius:18px;text-align:center;box-shadow:0 0 32px rgba(255,215,0,.06)}
.epl-tag{display:inline-block;padding:5px 12px;background:rgba(255,215,0,.12);color:var(--accent);border:1px solid rgba(255,215,0,.3);border-radius:14px;font-size:10px;font-weight:800;margin-bottom:16px}
.epl-h2{font-size:24px;font-weight:900;line-height:1.35;letter-spacing:-.025em;margin-bottom:8px}
.epl-h2 .v16-hl{text-decoration:underline;text-decoration-color:rgba(255,215,0,.4);text-underline-offset:3px}
.epl-sub{font-size:12px;color:var(--text-2);margin-bottom:18px;line-height:1.6}
.epl-preview{position:relative;background:#f0f0f0;border-radius:12px;padding:20px 18px 60px;margin-bottom:16px;min-height:180px;text-align:left;overflow:hidden}
.epl-pn{position:absolute;top:8px;right:10px;background:rgba(0,0,0,.7);color:#FFD700;font-size:10px;font-weight:800;padding:4px 10px;border-radius:10px}
.epl-content{display:flex;flex-direction:column;gap:10px;filter:blur(4px)}
.epl-line{height:10px;background:#999;border-radius:3px}
.epl-line.w90{width:90%}.epl-line.w80{width:80%}.epl-line.w75{width:75%}.epl-line.w60{width:60%}.epl-line.w55{width:55%}.epl-line.w40{width:40%}
.epl-fade{position:absolute;left:0;right:0;bottom:0;height:80px;background:linear-gradient(180deg,transparent,#f0f0f0)}
.epl-cta{display:inline-block;padding:14px 28px;background:linear-gradient(90deg,#FFD700,#FFB800);color:#000;font-weight:900;border-radius:12px;font-size:14px;box-shadow:0 6px 20px rgba(255,215,0,.3);margin-bottom:14px}
.epl-controls{display:flex;justify-content:space-between;align-items:center;padding:10px 4px;border-top:1px solid var(--line);margin-bottom:10px}
.epl-pause{padding:6px 12px;background:var(--bg-2);border-radius:8px;font-size:11px;color:var(--text-2);font-weight:700}
.epl-dots{display:flex;gap:4px;align-items:center}
.epl-d{width:8px;height:8px;border-radius:50%;background:var(--text-3)}
.epl-d.lock{background:transparent;color:var(--text-3);font-size:10px;width:auto;height:auto}
.epl-d.lock.red{color:#ff4757}
.epl-all{padding:6px 12px;background:rgba(255,215,0,.12);color:var(--accent);border-radius:8px;font-size:11px;font-weight:800}
.epl-foot{font-size:10px;color:var(--text-3);line-height:1.5}

/* 왜? 3카드 (거래소) */
.ex-why{padding:24px 16px 36px;text-align:center}
.ex-why-big{font-size:60px;font-weight:900;line-height:1;color:var(--accent);text-shadow:0 0 24px rgba(255,215,0,.4);margin-bottom:10px;letter-spacing:-.04em}
.ex-why-claim{font-size:20px;font-weight:900;line-height:1.4;margin-bottom:18px;letter-spacing:-.02em}
.ex-why-cards{display:flex;flex-direction:column;gap:10px;text-align:left;margin-top:20px}
.ex-wc{padding:18px;background:var(--surface);border:1px solid var(--line);border-radius:14px;display:flex;align-items:flex-start;gap:14px;position:relative;overflow:hidden}
.ex-wc::before{content:"";position:absolute;top:0;left:0;bottom:0;width:3px}
.ex-wc-cur::before{background:linear-gradient(180deg,#FFD700,#FFB800)}
.ex-wc-ans::before{background:linear-gradient(180deg,#4a7eff,#3366FF)}
.ex-wc-care::before{background:linear-gradient(180deg,#00d68f,#00B377)}
.ex-wi{font-size:26px;flex-shrink:0;width:42px;height:42px;display:flex;align-items:center;justify-content:center;background:var(--bg-2);border-radius:10px}
.ex-wc > div:nth-child(n+2){flex:1;min-width:0}
.ex-wn{font-size:10px;font-weight:900;color:var(--accent);letter-spacing:.06em;margin-bottom:5px}
.ex-wc-ans .ex-wn{color:#4a7eff}
.ex-wc-care .ex-wn{color:#00d68f}
.ex-wc h3{font-size:15px;font-weight:900;margin-bottom:6px}
.ex-wc p{font-size:12px;color:var(--text-2);line-height:1.6}

@media(min-width:768px){
  .ex-why-big{font-size:84px}
  .ex-why-claim{font-size:26px}
  .ex-why-cards{display:grid;grid-template-columns:repeat(3,1fr)}
  .epl-h2{font-size:30px}
}

/* ============================================================
   v19 — 메인 거대 카피 + 폰트 겹침 해결 + 모바일 폰트 통일 + 시즌권
   ============================================================ */

/* 폰트 겹침 해결 — 왜? 3카드 (ex-wc / jjb-wc) 라벨 absolute 제거 */
.ex-wc, .jjb-wc {
  display: grid !important;
  grid-template-columns: 42px 1fr !important;
  grid-template-rows: auto auto auto !important;
  gap: 6px 14px !important;
  align-items: start;
}
.ex-wi, .jjb-wi {
  grid-column: 1 / 2;
  grid-row: 1 / span 3;
  margin: 0 !important;
}
.ex-wn, .jjb-wn {
  grid-column: 2 / 3;
  grid-row: 1;
  margin: 0 0 2px 0 !important;
  font-size: clamp(10px, 2.6vw, 11px) !important;
}
.ex-wc h3, .jjb-wc h3 {
  grid-column: 2 / 3;
  grid-row: 2;
  margin: 0 !important;
  font-size: clamp(14px, 4vw, 16px) !important;
  line-height: 1.35 !important;
}
.ex-wc p, .jjb-wc p {
  grid-column: 2 / 3;
  grid-row: 3;
  margin: 4px 0 0 0 !important;
  font-size: clamp(12px, 3.4vw, 13px) !important;
  line-height: 1.55 !important;
}

/* === v19 메인 === */
.home-v19{padding:0 0 80px;max-width:540px;margin:0 auto;overflow-x:hidden}

/* HERO 거대 카피 */
.v19-hero{padding:40px 20px 32px;background:radial-gradient(ellipse at center top,rgba(255,215,0,.08),transparent 60%);text-align:center;min-height:75vh;display:flex;flex-direction:column;justify-content:center}
.v19-eyebrow{display:inline-block;padding:6px 14px;background:rgba(255,215,0,.12);color:var(--accent);border:1px solid rgba(255,215,0,.35);border-radius:16px;font-size:clamp(11px,3vw,13px);font-weight:800;margin:0 auto 22px;letter-spacing:.02em}
.v19-h1{font-size:clamp(40px,12vw,72px);font-weight:900;line-height:1.05;letter-spacing:-.04em;margin-bottom:24px}
.v19-hl{color:var(--accent);display:inline-block;text-shadow:0 0 32px rgba(255,215,0,.35)}
.v19-sub{font-size:clamp(15px,4.2vw,20px);color:var(--text-2);line-height:1.5;margin-bottom:32px;font-weight:600}
.v19-sub strong{color:var(--text);font-weight:900}
.v19-cta-row{display:flex;flex-direction:column;gap:10px;margin-bottom:24px}
.v19-cta-primary{display:block;padding:16px 28px;background:linear-gradient(90deg,#FFD700,#FFB800);color:#000;border-radius:12px;font-size:clamp(15px,4vw,17px);font-weight:900;box-shadow:0 10px 28px rgba(255,215,0,.3);text-align:center}
.v19-cta-ghost{display:block;padding:15px 28px;background:var(--surface);border:1px solid var(--line);color:var(--text);border-radius:12px;font-size:clamp(14px,3.8vw,16px);font-weight:800;text-align:center}
.v19-eyebrow-2{font-size:clamp(11px,3vw,13px);color:var(--text-3);font-weight:700}
.v19-eyebrow-2 strong{color:var(--accent)}

/* 공통 섹션 */
.v19-section-eb{display:inline-block;padding:4px 11px;background:rgba(74,126,255,.12);color:var(--primary);border-radius:13px;font-size:clamp(10px,2.8vw,12px);font-weight:800;margin-bottom:10px;letter-spacing:.02em}
.v19-section-h{font-size:clamp(20px,5.5vw,26px);font-weight:900;line-height:1.3;letter-spacing:-.025em;margin-bottom:20px}

/* 흐름 4단계 */
.v19-flow{padding:32px 20px}
.v19-flow-grid{display:flex;flex-direction:column;gap:10px;margin-top:14px}
.v19-flow-card{padding:18px 16px 18px 70px;background:var(--surface);border:1px solid var(--line);border-radius:14px;position:relative}
.v19-flow-card::before{content:"";position:absolute;left:0;top:0;bottom:0;width:4px}
.v19-flow-1::before{background:linear-gradient(180deg,#4a7eff,#3366FF)}
.v19-flow-2::before{background:linear-gradient(180deg,#FFD700,#FFB800)}
.v19-flow-3::before{background:linear-gradient(180deg,#00d68f,#00B377)}
.v19-flow-4::before{background:linear-gradient(180deg,#FF9933,#FF6B35)}
.v19-flow-num{position:absolute;left:14px;top:18px;font-size:clamp(14px,3.6vw,16px);font-weight:900;color:var(--accent);font-variant-numeric:tabular-nums;letter-spacing:-.02em}
.v19-flow-icon{position:absolute;left:14px;top:42px;font-size:clamp(20px,5vw,26px)}
.v19-flow-card h3{font-size:clamp(14px,4vw,16px);font-weight:900;margin-bottom:6px;line-height:1.35}
.v19-flow-card p{font-size:clamp(12px,3.4vw,13px);color:var(--text-2);line-height:1.6}
.v19-flow-arrow{display:none}

/* 모듈 8칸 */
.v19-modules{padding:32px 20px}
.v19-mod-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:8px;margin-top:14px}
.v19-mod{padding:18px 12px;background:linear-gradient(180deg,var(--surface),var(--bg-2));border:1px solid var(--line);border-radius:12px;display:flex;flex-direction:column;align-items:center;gap:6px;text-align:center;position:relative;overflow:hidden;transition:transform .15s}
.v19-mod:active{transform:scale(.97)}
.v19-mod::before{content:"";position:absolute;top:0;left:0;right:0;height:2px;background:var(--accent)}
.v19-mod-1::before{background:#FFD700}
.v19-mod-2::before{background:#00d68f}
.v19-mod-3::before{background:#FFD700}
.v19-mod-4::before{background:#ff4757}
.v19-mod-5::before{background:#4a7eff}
.v19-mod-6::before{background:#9966FF}
.v19-mod-7::before{background:#FFA500}
.v19-mod-8::before{background:#FFD700}
.v19-mod-em{font-size:clamp(24px,6.5vw,30px)}
.v19-mod-t{font-size:clamp(13px,3.6vw,15px);font-weight:900}
.v19-mod-s{font-size:clamp(10px,2.8vw,11px);color:var(--text-3);line-height:1.4}

/* 검색 */
.v19-search{padding:32px 20px}
.v19-search-bar{display:flex;align-items:stretch;background:var(--surface);border:1.5px solid rgba(255,215,0,.3);border-radius:12px;padding:5px;margin:14px 0 14px;box-shadow:0 0 18px rgba(255,215,0,.08)}
.v19-search-icon{display:flex;align-items:center;justify-content:center;width:40px;font-size:16px;opacity:.7}
.v19-search-bar input{flex:1;background:transparent;border:none;color:var(--text);font-size:clamp(14px,3.8vw,15px);font-weight:700;padding:12px 4px;outline:none;min-width:0}
.v19-search-btn{padding:0 18px;background:var(--accent);color:#000;border-radius:9px;font-size:clamp(13px,3.6vw,14px);font-weight:900}
.v19-search-tags{display:flex;gap:6px;overflow-x:auto;padding-bottom:6px;scrollbar-width:none}
.v19-search-tags::-webkit-scrollbar{display:none}
.v19-stag{flex-shrink:0;padding:8px 14px;background:var(--surface);border:1px solid var(--line);border-radius:18px;font-size:clamp(12px,3.4vw,13px);color:var(--text-2);font-weight:700}

/* 가격 + 시즌권 */
.v19-price{padding:32px 20px}
.v19-price-grid{display:flex;flex-direction:column;gap:12px;margin-top:14px}
.v19-pc{padding:24px 20px;background:var(--surface);border:1px solid var(--line);border-radius:16px;display:flex;flex-direction:column;gap:12px;position:relative}
.v19-pc-feature{border:2px solid var(--accent);box-shadow:0 0 32px rgba(255,215,0,.12);background:linear-gradient(180deg,rgba(255,215,0,.04),var(--surface))}
.v19-pc-tag{display:inline-block;padding:5px 12px;background:var(--surface-2);color:var(--text-2);border-radius:14px;font-size:clamp(11px,3vw,13px);font-weight:800;align-self:flex-start}
.v19-pc-tag-gold{background:linear-gradient(90deg,#FFD700,#FFB800);color:#000}
.v19-pc-price{font-size:clamp(20px,5.4vw,26px);font-weight:800;color:var(--text-2);letter-spacing:-.02em}
.v19-pc-price strong{font-size:clamp(32px,9vw,44px);font-weight:900;color:var(--text);font-variant-numeric:tabular-nums;margin-right:4px}
.v19-pc-price small{font-size:clamp(13px,3.6vw,15px);font-weight:700;color:var(--text-3)}
.v19-pc-list{list-style:none;padding:14px 0;border-top:1px solid var(--line);display:flex;flex-direction:column;gap:10px;margin:0}
.v19-pc-list li{font-size:clamp(12px,3.4vw,13px);color:var(--text-2);line-height:1.5}
.v19-pc-cta{display:block;padding:14px;background:var(--surface-2);color:var(--text);border:1px solid var(--line-2);border-radius:11px;font-size:clamp(13px,3.6vw,14px);font-weight:900;text-align:center;margin-top:auto}
.v19-pc-cta-gold{background:linear-gradient(90deg,#FFD700,#FFB800);color:#000;border:none;box-shadow:0 8px 22px rgba(255,215,0,.25)}

.v19-pc-season{margin-top:12px;padding-top:14px;border-top:1px dashed var(--line)}
.v19-ps-label{font-size:clamp(11px,3vw,12px);color:var(--text-3);font-weight:800;margin-bottom:8px}
.v19-ps-row{display:flex;justify-content:space-between;align-items:center;padding:9px 12px;background:var(--bg-2);border-radius:8px;margin-bottom:5px;font-size:clamp(12px,3.4vw,13px);font-weight:700;color:var(--text-2)}
.v19-ps-row strong{color:var(--accent);font-weight:900;font-variant-numeric:tabular-nums;margin-right:5px}
.v19-ps-row small{font-size:10px;color:var(--green);font-weight:800}
.v19-ps-best{border:1px solid rgba(255,215,0,.4);background:linear-gradient(135deg,rgba(255,215,0,.08),var(--bg-2))}

/* 헌법 4종 */
.v19-const{padding:32px 20px}
.v19-const-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:14px}
.v19-cc{padding:14px 12px;background:linear-gradient(135deg,var(--surface),var(--bg-2));border:1px solid var(--line);border-radius:10px;display:flex;flex-direction:column;gap:4px;position:relative;overflow:hidden}
.v19-cc::before{content:"";position:absolute;top:0;left:0;right:0;height:2px;background:var(--accent)}
.v19-cc strong{font-size:clamp(13px,3.6vw,14px);font-weight:900;color:var(--accent)}
.v19-cc span{font-size:clamp(10px,2.8vw,11px);color:var(--text-2)}
.v19-cc-new::before{background:linear-gradient(90deg,#00d68f,#3399FF)}
.v19-cc-new strong{color:#00d68f}

/* 태블릿+ */
@media(min-width:640px){
  .home-v19{max-width:760px}
  .v19-cta-row{flex-direction:row;justify-content:center}
  .v19-cta-row a{flex:1;max-width:240px}
  .v19-mod-grid{grid-template-columns:repeat(4,1fr)}
  .v19-const-grid{grid-template-columns:repeat(4,1fr)}
  .v19-flow-grid{display:grid;grid-template-columns:repeat(2,1fr)}
  .v19-price-grid{flex-direction:row}
  .v19-pc{flex:1}
}
@media(min-width:1024px){
  .home-v19{max-width:1100px}
  .v19-flow-grid{grid-template-columns:repeat(4,1fr)}
}

/* 사연기 게시판 폰트 겹침 — jjb-wc 추가 보강 */
.jjb-why-cards .jjb-wc{padding:18px 16px}
.jjb-why-cards .jjb-wc h3{margin-bottom:6px !important}

/* ============================================================
   v20 — 듀얼 가치 (사장님) + 세계 최초 한국 원타 거래소 + 정갈
   ============================================================ */

/* 사장님 HERO (위 고객 HERO 아래 박힘) */
.v20-merchant-hero{padding:48px 20px 36px;background:radial-gradient(ellipse at center,rgba(255,153,51,.06),transparent 70%);border-top:1px solid var(--line);text-align:center}
.v20-mh-eyebrow{display:inline-block;padding:6px 14px;background:rgba(255,153,51,.12);color:#FF9933;border:1px solid rgba(255,153,51,.4);border-radius:16px;font-size:clamp(11px,3vw,13px);font-weight:800;margin:0 auto 22px;letter-spacing:.02em}
.v20-mh-h1{font-size:clamp(32px,9.5vw,52px);font-weight:900;line-height:1.15;letter-spacing:-.035em;margin-bottom:20px}
.v20-mh-hl{color:#FF9933;display:inline-block;text-shadow:0 0 30px rgba(255,153,51,.3)}
.v20-mh-sub{font-size:clamp(14px,4vw,18px);color:var(--text-2);line-height:1.5;margin-bottom:28px;font-weight:600}
.v20-mh-sub strong{color:var(--text);font-weight:900}

/* 마케팅비 비교 막대 */
.v20-bench{background:var(--surface);border:1px solid var(--line);border-radius:16px;padding:20px 18px;margin-bottom:24px;text-align:left}
.v20-bench-title{font-size:clamp(12px,3.4vw,14px);font-weight:900;margin-bottom:14px;color:var(--text);text-align:center}
.v20-bench-row{display:grid;grid-template-columns:90px 1fr auto;gap:8px;align-items:center;margin-bottom:10px}
.v20-bench-label{font-size:clamp(10px,2.8vw,12px);color:var(--text-2);font-weight:700}
.v20-bench-bar{height:14px;background:var(--bg-2);border-radius:7px;overflow:hidden;position:relative}
.v20-bench-fill{height:100%;transition:width .6s ease}
.v20-bench-kr{background:linear-gradient(90deg,#ff4757,#c00000)}
.v20-bench-glob{background:linear-gradient(90deg,#FFD700,#FFB800)}
.v20-bench-jjin{background:linear-gradient(90deg,#00d68f,#00B377)}
.v20-bench-val{font-size:clamp(13px,3.6vw,15px);font-weight:900;font-variant-numeric:tabular-nums;text-align:right;min-width:90px}
.v20-bench-val small{font-size:9px;color:var(--text-3);font-weight:700;display:block;margin-top:1px}
.v20-bench-bad{color:var(--red)}
.v20-bench-good{color:var(--accent)}
.v20-bench-best{color:var(--green)}
.v20-bench-target{padding-top:10px;border-top:1px dashed var(--line);margin-top:8px}
.v20-bench-note{font-size:10px;color:var(--text-3);line-height:1.5;margin-top:14px;text-align:center}

.v20-mh-cta-row{display:flex;flex-direction:column;gap:10px;margin-bottom:18px}
.v20-mh-cta-primary{display:block;padding:16px 28px;background:linear-gradient(90deg,#FF9933,#FF6B35);color:#fff;border-radius:12px;font-size:clamp(15px,4vw,17px);font-weight:900;box-shadow:0 10px 28px rgba(255,153,51,.3);text-align:center}
.v20-mh-cta-ghost{display:block;padding:15px 28px;background:var(--surface);border:1px solid var(--line);color:var(--text);border-radius:12px;font-size:clamp(14px,3.8vw,16px);font-weight:800;text-align:center}
.v20-mh-eyebrow-2{font-size:clamp(11px,3vw,12px);color:var(--text-3);font-weight:700;line-height:1.5}

/* 세계 최초 한국 원타 거래소 */
.v20-korea-first{padding:36px 20px}
.v20-kf-card{padding:32px 22px;background:linear-gradient(135deg,rgba(255,71,87,.04),rgba(74,126,255,.04));border:1.5px solid rgba(74,126,255,.3);border-radius:18px;text-align:center;position:relative;overflow:hidden}
.v20-kf-card::before{content:"";position:absolute;top:0;left:0;right:0;height:4px;background:linear-gradient(90deg,#ff4757 0%,#ff4757 33%,#4a7eff 33%,#4a7eff 66%,#fff 66%,#fff 100%)}
.v20-kf-eyebrow{display:inline-block;padding:6px 14px;background:rgba(74,126,255,.12);color:var(--primary);border:1px solid rgba(74,126,255,.4);border-radius:16px;font-size:clamp(11px,3vw,13px);font-weight:800;margin:8px 0 18px;letter-spacing:.04em}
.v20-kf-h1{font-size:clamp(24px,7vw,38px);font-weight:900;line-height:1.25;letter-spacing:-.025em;margin-bottom:24px}
.v20-kf-hl{color:var(--accent)}

.v20-kf-vs{display:flex;flex-direction:column;gap:14px;text-align:left;margin-bottom:20px}
.v20-kf-col{flex:1;padding:16px 14px;background:var(--surface);border:1px solid var(--line);border-radius:12px}
.v20-kf-col.v20-kf-jjin{border:2px solid var(--accent);background:linear-gradient(180deg,rgba(255,215,0,.05),var(--surface))}
.v20-kf-label{font-size:clamp(11px,3vw,13px);font-weight:900;color:var(--text-3);margin-bottom:10px;letter-spacing:.02em}
.v20-kf-label-jjin{color:var(--accent)}
.v20-kf-col ul{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:7px}
.v20-kf-col li{font-size:clamp(12px,3.4vw,13px);color:var(--text-2);line-height:1.55}
.v20-kf-arrow{display:flex;align-items:center;justify-content:center;font-size:22px;color:var(--primary);font-weight:900;padding:6px 0}

.v20-kf-foot{font-size:clamp(11px,3vw,12px);color:var(--text-3);line-height:1.7;padding-top:18px;border-top:1px solid var(--line);margin-top:10px}

/* 태블릿+ */
@media(min-width:640px){
  .v20-mh-cta-row{flex-direction:row;justify-content:center}
  .v20-mh-cta-row a{flex:1;max-width:240px}
  .v20-kf-vs{flex-direction:row;align-items:stretch}
  .v20-kf-arrow{padding:0 8px}
}

/* === soopvault 정갈 이식 — 전체 사이트 통일 톤 === */
/* 카드 라운드·여백·라인 통일 */
.v16-cta-card,.v19-pc,.v19-mod,.v19-cc,.v16-cc,.v20-kf-col{transition:transform .15s,border-color .15s}
.v16-cta-card:hover,.v19-pc:hover,.v19-mod:hover,.v19-cc:hover,.v16-cc:hover{border-color:rgba(255,215,0,.3)}

/* 섹션 간격 정갈화 */
.v19-flow,.v19-modules,.v19-search,.v19-price,.v19-const{padding-top:36px;padding-bottom:36px}

/* 모든 sec-h 통일 정갈 */
.v19-section-h,.v16-sh,.sec-h{letter-spacing:-.025em;margin-bottom:14px}

/* 모든 sec-eb 통일 */
.v19-section-eb,.section-eyebrow{margin-bottom:12px}

/* ============================================================
   v21 — 역할 3카드 + 마스터 토글 + 갱생 탭 + 가격 등급별
   ============================================================ */

/* v21 — HERO 3탭 */
.v21-hero-tabs{display:flex;gap:6px;justify-content:center;flex-wrap:wrap;margin:24px 0 18px}
.v21-ht{padding:11px 16px;background:var(--surface);border:1.5px solid var(--line);border-radius:11px;font-size:clamp(13px,3.6vw,14px);font-weight:900;color:var(--text);transition:all .15s}
.v21-ht-active{background:linear-gradient(90deg,#FFD700,#FFB800);color:#000;border-color:transparent;box-shadow:0 6px 18px rgba(255,215,0,.3)}
.v21-ht-rb{border-color:rgba(0,214,143,.4);color:#00d68f}
.v21-ht-rb:hover{background:rgba(0,214,143,.1)}

/* 역할 3카드 */
.v21-roles{padding:36px 20px;background:linear-gradient(180deg,rgba(255,215,0,.03),transparent)}
.v21-r-eyebrow{display:inline-block;padding:6px 12px;background:rgba(74,126,255,.12);color:var(--primary);border-radius:14px;font-size:clamp(11px,3vw,12px);font-weight:800;margin-bottom:12px}
.v21-r-h{font-size:clamp(18px,5vw,24px);font-weight:900;letter-spacing:-.025em;margin-bottom:20px;line-height:1.3}

.v21-r-grid{display:flex;flex-direction:column;gap:12px;margin-bottom:16px}
.v21-r-card{padding:20px 18px;background:var(--surface);border:1.5px solid var(--line);border-radius:16px;position:relative;display:flex;flex-direction:column;gap:12px;transition:border-color .15s,transform .15s}
.v21-r-card:hover{transform:translateY(-2px)}
.v21-r-rev{border-color:rgba(74,126,255,.3)}
.v21-r-plus{border:2px solid var(--accent);background:linear-gradient(180deg,rgba(255,215,0,.06),var(--surface));box-shadow:0 0 28px rgba(255,215,0,.1)}
.v21-r-mer{border-color:rgba(255,153,51,.3)}

.v21-r-best{position:absolute;top:-9px;right:14px;padding:4px 10px;background:linear-gradient(90deg,#FF4500,#FF6B35);color:#fff;border-radius:8px;font-size:10px;font-weight:900;letter-spacing:.04em}

.v21-r-head{display:flex;align-items:center;gap:12px}
.v21-r-emoji{font-size:clamp(28px,7vw,34px);flex-shrink:0;width:48px;height:48px;display:flex;align-items:center;justify-content:center;background:var(--bg-2);border-radius:12px}
.v21-r-tag{display:inline-block;padding:3px 10px;background:rgba(74,126,255,.18);color:var(--primary);border-radius:10px;font-size:clamp(10px,2.8vw,12px);font-weight:800;margin-bottom:4px}
.v21-r-tag-gold{background:linear-gradient(90deg,#FFD700,#FFB800);color:#000}
.v21-r-tag-orange{background:linear-gradient(90deg,#FF9933,#FF6B35);color:#fff}
.v21-r-price{font-size:clamp(18px,5vw,22px);font-weight:900;color:var(--text);font-variant-numeric:tabular-nums;letter-spacing:-.02em}
.v21-r-price small{font-size:clamp(12px,3.4vw,13px);color:var(--text-3);font-weight:700;margin-left:2px}
.v21-r-desc{font-size:clamp(12px,3.4vw,13px);color:var(--text-2);line-height:1.55}

.v21-r-toggle{padding:10px 14px;background:var(--surface-2);color:var(--text-2);border:1px solid var(--line);border-radius:10px;font-size:clamp(12px,3.4vw,13px);font-weight:800;text-align:left;cursor:pointer}
.v21-r-preview{display:none;flex-direction:column;gap:8px;padding:14px;background:var(--bg-2);border-radius:10px;border-left:3px solid var(--accent)}
.v21-r-preview.open{display:flex}
.v21-r-step{display:flex;align-items:flex-start;gap:8px;font-size:clamp(11px,3vw,12px);color:var(--text-2);line-height:1.55}
.v21-r-step span{flex-shrink:0;width:20px;height:20px;background:var(--accent);color:#000;border-radius:50%;display:flex;align-items:center;justify-content:center;font-weight:900;font-size:10px}

.v21-r-cta{display:block;padding:14px;background:var(--surface-2);color:var(--text);border:1px solid var(--line-2);border-radius:11px;font-size:clamp(13px,3.6vw,14px);font-weight:900;text-align:center;margin-top:auto}
.v21-r-cta-gold{background:linear-gradient(90deg,#FFD700,#FFB800);color:#000;border:none;box-shadow:0 6px 18px rgba(255,215,0,.25)}
.v21-r-cta-orange{background:linear-gradient(90deg,#FF9933,#FF6B35);color:#fff;border:none;box-shadow:0 6px 18px rgba(255,153,51,.25)}

.v21-master-toggle{display:block;width:100%;padding:14px;background:linear-gradient(135deg,var(--surface),var(--bg-2));border:1.5px dashed var(--line-2);color:var(--accent);border-radius:12px;font-size:clamp(13px,3.6vw,14px);font-weight:900;cursor:pointer;transition:all .15s}
.v21-master-toggle:hover{border-color:var(--accent);background:rgba(255,215,0,.05)}

/* 가격 등급별 (리뷰어) */
.v21-grades{padding-top:0 !important}
.v21-gr{display:grid;grid-template-columns:auto 1fr;gap:10px;align-items:center;padding:9px 12px;background:var(--bg-2);border-radius:8px;margin-bottom:5px;font-size:clamp(11px,3.2vw,12px);border-left:3px solid var(--text-3)}
.v21-gr span{font-weight:800;color:var(--text-2);min-width:64px}
.v21-gr strong{font-weight:900;color:var(--accent);font-variant-numeric:tabular-nums;text-align:right;font-size:clamp(12px,3.4vw,13px)}
.v21-gr-new{border-left-color:var(--text-3)}
.v21-gr-reg{border-left-color:var(--green)}
.v21-gr-trust{border-left-color:var(--primary)}
.v21-gr-master{border-left-color:var(--accent)}
.v21-gr-master strong{color:var(--accent);font-weight:900}
.v21-gr-foot{font-size:clamp(11px,3vw,12px);color:var(--text-3);text-align:center;padding:10px 0 0;border-top:1px dashed var(--line);margin-top:6px;background:transparent;border-left:none}
.v21-gr-foot strong{color:var(--accent)}

/* 가격 등급별 (사장님) */
.v21-mr{display:grid;grid-template-columns:auto 1fr;grid-template-rows:auto auto;gap:3px 10px;padding:11px 13px;background:var(--bg-2);border-radius:8px;margin-bottom:5px;font-size:clamp(11px,3.2vw,12px)}
.v21-mr span{grid-column:1;font-weight:800;color:var(--text-2);font-size:clamp(11px,3vw,12px)}
.v21-mr strong{grid-column:2;font-weight:900;color:var(--accent);font-variant-numeric:tabular-nums;text-align:right;font-size:clamp(12px,3.4vw,13px)}
.v21-mr small{grid-column:1/3;font-size:clamp(10px,2.8vw,11px);color:var(--text-3);font-weight:700;margin-top:2px}
.v21-mr-light{border-left:3px solid #4a7eff}
.v21-mr-std{border-left:3px solid #00d68f}
.v21-mr-pro{border-left:3px solid var(--accent);background:linear-gradient(135deg,rgba(255,215,0,.08),var(--bg-2))}

/* 태블릿+ */
@media(min-width:640px){
  .v21-r-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}
  .v21-hero-tabs{justify-content:center}
}
@media(min-width:1024px){
  .v21-r-card{padding:24px 22px}
}

/* === 갱생 거래소 차별화 강화 (녹색 톤 압도) === */
.rb-v17 .v16-ticker .v16-t-cell{background:linear-gradient(180deg,rgba(0,214,143,.04),var(--bg-2))}
.rb-v17 .v16-ticker .v16-t-big{color:#00d68f}
.rb-v17 .v16-board .v16-bh{background:linear-gradient(90deg,rgba(0,214,143,.12),var(--surface-2))}
.rb-v17 .v16-ob-row:hover{background:rgba(0,214,143,.04)}


/* ============================================================
   v22 — 3탭 균등 + 4주춧돌 + 마스터토글 강화 + 마이페이지
        + 미리보기 자동 + 카피 변경 + 갱생 매장 3건
   ============================================================ */

/* v22 — 3탭 균등 1x3 그리드 */
.v22-hero-tabs{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin:24px 0 18px}
.v22-ht{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;padding:18px 8px;background:var(--surface);border:1.5px solid var(--line);border-radius:14px;font-weight:900;color:var(--text);transition:all .15s;min-height:80px}
.v22-ht-em{font-size:clamp(20px,5vw,26px)}
.v22-ht-t{font-size:clamp(13px,3.6vw,15px);letter-spacing:-.02em}
.v22-ht-active{background:linear-gradient(135deg,#FFD700,#FFB800);color:#000;border-color:transparent;box-shadow:0 8px 22px rgba(255,215,0,.3)}
.v22-ht-rb{border:1.5px solid rgba(0,214,143,.5);color:#00d68f;background:linear-gradient(135deg,rgba(0,214,143,.05),var(--surface))}
.v22-ht-rb:hover{background:rgba(0,214,143,.08)}

/* v22 — 마스터 토글 강화 (펄스 + 글로우) */
.v22-master-wrap{margin-top:18px}
.v22-master-toggle{display:flex;align-items:center;gap:14px;width:100%;padding:18px 20px;background:linear-gradient(135deg,rgba(255,215,0,.08),var(--surface));border:2px solid var(--accent);border-radius:16px;cursor:pointer;text-align:left;animation:v22-pulse 2.4s ease-in-out infinite;box-shadow:0 0 24px rgba(255,215,0,.15)}
@keyframes v22-pulse{
  0%,100%{box-shadow:0 0 24px rgba(255,215,0,.15)}
  50%{box-shadow:0 0 36px rgba(255,215,0,.35)}
}
.v22-mt-icon{font-size:32px;flex-shrink:0}
.v22-mt-body{flex:1;display:flex;flex-direction:column;gap:3px}
.v22-mt-body strong{font-size:clamp(14px,4vw,16px);font-weight:900;color:var(--accent)}
.v22-mt-body span{font-size:clamp(11px,3vw,12px);color:var(--text-2);line-height:1.5}
.v22-mt-arrow{font-size:18px;color:var(--accent);font-weight:900;flex-shrink:0}

/* v22 — \"왜?\" → \"직접 고르십시오\" 카피 변경 */
.ex-why-eb{display:inline-block;padding:6px 14px;background:rgba(255,71,87,.12);color:var(--red);border:1px solid rgba(255,71,87,.4);border-radius:16px;font-size:clamp(11px,3vw,13px);font-weight:800;margin-bottom:14px;letter-spacing:.02em;animation:v22-blink 3s ease-in-out infinite}
@keyframes v22-blink{0%,100%{opacity:1}50%{opacity:.7}}

/* v22 — 갱생 진입 박스에 매장 3건 펼침 */
.v16-rebirth .v16-rb-cta{flex-direction:column;align-items:stretch;padding:18px}
.v22-rb-list{margin-top:14px;display:flex;flex-direction:column;gap:8px}
.v22-rb-item{display:grid;grid-template-columns:auto 1fr auto;gap:10px;align-items:center;padding:10px 12px;background:var(--bg-2);border-radius:10px;font-size:clamp(11px,3vw,12px)}
.v22-rb-em{font-size:18px}
.v22-rb-name{font-weight:800;color:var(--text)}
.v22-rb-dd{font-size:11px;color:#00d68f;font-weight:900;padding:3px 8px;background:rgba(0,214,143,.15);border-radius:6px}

/* v22 — 돈쭐·혼쭐 진입 펄스 강조 */
.v16-jc{animation:none}
.v16-jc-don{animation:v22-jc-glow-don 3s ease-in-out infinite}
.v16-jc-hon{animation:v22-jc-glow-hon 3s ease-in-out infinite;animation-delay:1.5s}
@keyframes v22-jc-glow-don{0%,100%{box-shadow:0 0 0 rgba(255,215,0,0)}50%{box-shadow:0 0 22px rgba(255,215,0,.25)}}
@keyframes v22-jc-glow-hon{0%,100%{box-shadow:0 0 0 rgba(255,71,87,0)}50%{box-shadow:0 0 22px rgba(255,71,87,.25)}}

/* === 마이페이지 v22 === */
.me-v22{padding:0 0 80px;max-width:540px;margin:0 auto}

/* 프로필 헤더 */
.me-profile{display:flex;align-items:center;gap:14px;padding:24px 20px;background:linear-gradient(180deg,rgba(255,215,0,.04),transparent)}
.me-avatar{width:54px;height:54px;background:linear-gradient(135deg,var(--accent),var(--accent-2));color:#000;border-radius:50%;display:flex;align-items:center;justify-content:center;font-weight:900;font-size:14px;letter-spacing:-.02em;flex-shrink:0}
.me-info{flex:1;min-width:0}
.me-name{font-size:clamp(16px,4.4vw,18px);font-weight:900;display:flex;align-items:center;gap:8px}
.me-badge{font-size:9px;font-weight:900;padding:2px 7px;background:rgba(0,214,143,.18);color:var(--green);border-radius:5px}
.me-grade{font-size:clamp(11px,3vw,12px);color:var(--text-2);font-weight:700;margin-top:3px}
.me-settings{width:42px;height:42px;background:var(--surface);border:1px solid var(--line);border-radius:50%;font-size:18px}

/* 잔액·카드 4칸 */
.me-tickers{display:grid;grid-template-columns:1fr 1fr;gap:1px;background:var(--line);border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.me-tc{padding:16px 14px;background:var(--bg-2);display:flex;flex-direction:column;gap:4px}
.me-tc-label{font-size:10px;color:var(--text-3);font-weight:800;letter-spacing:.04em;text-transform:uppercase}
.me-tc-big{font-size:clamp(20px,5.4vw,26px);font-weight:900;color:var(--text);line-height:1.1;font-variant-numeric:tabular-nums}
.me-tc-big small{font-size:clamp(12px,3.2vw,13px);font-weight:700;color:var(--text-3);margin-left:2px}
.me-tc-gold{color:var(--accent)}
.me-tc-warn{color:#FF9933}
.me-tc-meta{font-size:10px;color:var(--text-3);font-weight:700}
.me-tc-link{font-size:11px;color:var(--accent);font-weight:900;text-decoration:underline}

/* 빠른 메뉴 8칸 */
.me-sh{font-size:clamp(15px,4vw,17px);font-weight:900;letter-spacing:-.02em;margin:24px 16px 12px}
.me-menu-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:8px;padding:0 16px}
.me-m{padding:18px 12px;background:var(--surface);border:1px solid var(--line);border-radius:12px;display:flex;flex-direction:column;align-items:center;gap:6px;text-align:center;position:relative;overflow:hidden;transition:transform .15s}
.me-m:active{transform:scale(.97)}
.me-m::before{content:"";position:absolute;top:0;left:0;right:0;height:2px;background:var(--accent)}
.me-m-em{font-size:clamp(22px,6vw,28px)}
.me-m-t{font-size:clamp(12px,3.4vw,13px);font-weight:900;color:var(--text)}

/* 활동 내역 */
.me-activity{padding:0 16px}
.me-act-list{display:flex;flex-direction:column;gap:6px}
.me-act{padding:11px 13px;background:var(--surface);border:1px solid var(--line);border-radius:10px;display:flex;justify-content:space-between;align-items:flex-start;gap:10px;font-size:clamp(11px,3vw,12px);line-height:1.5}
.me-act-time{font-size:10px;color:var(--text-3);font-weight:700;flex-shrink:0;min-width:64px}
.me-act-msg{color:var(--text-2);font-weight:600}

/* 설정 */
.me-settings-sec{padding:0 16px}
.me-s-row{display:flex;justify-content:space-between;align-items:center;padding:14px 16px;background:var(--surface);border:1px solid var(--line);border-radius:10px;margin-bottom:6px;font-size:clamp(13px,3.6vw,14px);color:var(--text);font-weight:700}
.me-s-row:active{background:var(--surface-2)}
.me-s-logout{color:var(--red)}

@media(min-width:640px){
  .me-tickers{grid-template-columns:repeat(4,1fr)}
  .me-menu-grid{grid-template-columns:repeat(4,1fr)}
}

/* ============================================================
   v23 — 페이지 전환 슬라이드 + 뒤로/앞으로 가기 트랜지션
   ============================================================ */

/* View Transitions API (Chrome 111+, Safari 18+) */
@supports (view-transition-name: root) {
  :root::view-transition-old(root),
  :root::view-transition-new(root){
    animation-duration: 220ms;
    animation-timing-function: cubic-bezier(.25,.46,.45,.94);
  }
  :root::view-transition-old(root){animation-name:v23-slide-out-left}
  :root::view-transition-new(root){animation-name:v23-slide-in-right}
  body.v23-back :root::view-transition-old(root){animation-name:v23-slide-out-right}
  body.v23-back :root::view-transition-new(root){animation-name:v23-slide-in-left}
}
@keyframes v23-slide-out-left{from{transform:translateX(0);opacity:1}to{transform:translateX(-20%);opacity:0}}
@keyframes v23-slide-in-right{from{transform:translateX(20%);opacity:0}to{transform:translateX(0);opacity:1}}
@keyframes v23-slide-out-right{from{transform:translateX(0);opacity:1}to{transform:translateX(20%);opacity:0}}
@keyframes v23-slide-in-left{from{transform:translateX(-20%);opacity:0}to{transform:translateX(0);opacity:1}}

/* Fallback — 일반 브라우저 페이지 전환 (HTML transition) */
body{animation:v23-page-fwd 220ms ease-out}
body.v23-back-anim{animation:v23-page-back 220ms ease-out}
@keyframes v23-page-fwd{from{opacity:0;transform:translateX(20px)}to{opacity:1;transform:translateX(0)}}
@keyframes v23-page-back{from{opacity:0;transform:translateX(-20px)}to{opacity:1;transform:translateX(0)}}


/* ============================================================
   v24 — 마스터 모드 (운영자 점검용 — 모든 잠금 해제)
   ============================================================ */

/* 마스터 토글 바 (상단 고정) */
.v24-master-bar{position:sticky;top:0;z-index:200;display:flex;align-items:center;justify-content:space-between;gap:12px;padding:8px 14px;background:linear-gradient(90deg,#FF4500,#FF6B35);color:#fff;font-size:12px;font-weight:800;letter-spacing:-.01em;border-bottom:1px solid rgba(0,0,0,.3)}
.v24-master-bar.is-on{background:linear-gradient(90deg,#00d68f,#00B377);color:#000}
.v24-mb-label{display:flex;align-items:center;gap:8px;flex:1;min-width:0}
.v24-mb-icon{font-size:16px;flex-shrink:0}
.v24-mb-text{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.v24-mb-text strong{font-weight:900}
.v24-mb-status{font-size:11px;font-weight:800;padding:2px 8px;background:rgba(0,0,0,.25);border-radius:6px;color:#fff}
.v24-master-bar.is-on .v24-mb-status{background:rgba(0,0,0,.18);color:#000}

/* 스위치 */
.v24-switch{position:relative;width:44px;height:24px;background:rgba(0,0,0,.3);border-radius:14px;cursor:pointer;flex-shrink:0;transition:background .2s}
.v24-master-bar.is-on .v24-switch{background:rgba(0,0,0,.25)}
.v24-switch::after{content:"";position:absolute;left:3px;top:3px;width:18px;height:18px;background:#fff;border-radius:50%;transition:left .25s cubic-bezier(.34,1.56,.64,1)}
.v24-master-bar.is-on .v24-switch::after{left:23px}

/* 마스터 모드 ON 시 — 모든 잠금 해제 */
body.master-on .epl-content{filter:none !important}
body.master-on .epl-fade{display:none !important}
body.master-on .epl-preview{background:var(--surface) !important}
body.master-on .epl-pn{background:rgba(0,214,143,.85) !important}
body.master-on .epl-pn::before{content:"🎛️ "}
body.master-on .epl-line{background:var(--text-2) !important}
body.master-on .lock-content{filter:none !important}
body.master-on .lock-fade{display:none !important}
body.master-on .epl-cta::before,
body.master-on .lock-cta::before{content:"✓ 마스터 — " !important}

/* 마스터 ON 시 \"PLUS 잠금\" 안내 모두 변경 */
body.master-on .epl-d.lock,
body.master-on .lc-dots .dot.lock{color:#00d68f !important}
body.master-on .preview-locked,
body.master-on .v19-pc-feature::after{display:none !important}

/* 마스터 ON 시 SEED 워터마크 표시 */
body.master-on .seed-tag,
body.master-on .kxc-seed{display:inline-block !important;background:rgba(0,214,143,.25) !important;color:#00d68f !important}

/* 마스터 ON 시 \"로그인 필요\" 안내를 \"마스터 진입\"으로 */
body.master-on a[href*="/login"]::before{content:"🎛️ " !important}

/* 마스터 ON 시 모든 카드에 녹색 점멸 마크 (눈에 잘 띄도록) */
body.master-on .v22-master-wrap{display:none !important}  /* 기존 메인 페이지 3카드 펼침 토글 폐기 */


/* ============================================================
   v25 — 등급 5단계 (한자) + 매도/매수 박스 + 글로시 효과
   ============================================================ */

/* 매도자·매수자 CTA 박스 (거래소 빈공간 박힘) */
.v25-cta-pair{display:grid;grid-template-columns:1fr 1fr;gap:10px;padding:18px 16px;margin:16px 0}
.v25-cta-box{padding:20px 16px;background:linear-gradient(135deg,var(--surface),var(--bg-2));border:1px solid var(--line);border-radius:14px;text-align:center;position:relative;overflow:hidden;transition:transform .15s}
.v25-cta-box:active{transform:scale(.97)}
.v25-cta-box::before{content:"";position:absolute;top:0;left:0;right:0;height:3px}
.v25-cta-sell::before{background:linear-gradient(90deg,#FFD700,#FFB800)}
.v25-cta-buy::before{background:linear-gradient(90deg,#4a7eff,#3366FF)}
.v25-cta-box h3{font-size:clamp(14px,3.8vw,16px);font-weight:900;margin-bottom:6px;letter-spacing:-.02em}
.v25-cta-box p{font-size:clamp(11px,3vw,12px);color:var(--text-3);margin-bottom:14px;line-height:1.5}
.v25-cta-btn{display:block;padding:13px;border-radius:10px;font-size:clamp(13px,3.6vw,14px);font-weight:900;text-align:center}
.v25-cta-btn-sell{background:linear-gradient(90deg,#FFD700,#FFB800);color:#000;box-shadow:0 6px 18px rgba(255,215,0,.25)}
.v25-cta-btn-buy{background:var(--surface-2);color:var(--text);border:1.5px solid var(--line-2)}

/* 글로시 효과 (soopvault 결) */
.v25-glow-card{position:relative;overflow:hidden}
.v25-glow-card::after{content:"";position:absolute;top:-50%;right:-50%;width:200%;height:200%;background:radial-gradient(circle,rgba(255,215,0,.08) 0%,transparent 40%);pointer-events:none;animation:v25-glow-rotate 8s linear infinite}
@keyframes v25-glow-rotate{from{transform:rotate(0deg)}to{transform:rotate(360deg)}}

/* 핫매물 카드 글로시 */
.v16-hot-card{position:relative;overflow:hidden}
.v16-hot-card::after{content:"";position:absolute;top:0;left:-100%;width:100%;height:100%;background:linear-gradient(90deg,transparent,rgba(255,215,0,.12),transparent);pointer-events:none;animation:v25-shine 4s ease-in-out infinite}
.v16-hot-1::after{animation-delay:0s}
.v16-hot-2::after{animation-delay:1.3s}
.v16-hot-3::after{animation-delay:2.6s}
@keyframes v25-shine{0%{left:-100%}50%,100%{left:100%}}

/* HERO 글로시 (메인) */
.v19-hero{position:relative;overflow:hidden}
.v19-hero::before{content:"";position:absolute;top:-30%;left:-30%;width:160%;height:160%;background:radial-gradient(circle at 50% 30%,rgba(255,215,0,.06) 0%,transparent 50%);pointer-events:none;z-index:0}
.v19-hero>*{position:relative;z-index:1}

/* 등급 5단계 (한자) — 등급별 가격대 박스 */
.v25-grade-rows{display:flex;flex-direction:column;gap:8px;margin-top:14px}
.v25-g-row{display:grid;grid-template-columns:auto 1fr auto auto;gap:10px 14px;padding:14px 16px;background:var(--surface);border:1px solid var(--line);border-radius:12px;align-items:center;position:relative;overflow:hidden}
.v25-g-row::before{content:"";position:absolute;left:0;top:0;bottom:0;width:4px}
.v25-g-zin::before{background:linear-gradient(180deg,#FFD700,#FFB800)}  /* 眞 */
.v25-g-sung::before{background:linear-gradient(180deg,#FF6B35,#FF4500)} /* 誠 */
.v25-g-shin::before{background:linear-gradient(180deg,#4a7eff,#3366FF)} /* 信 */
.v25-g-jung::before{background:linear-gradient(180deg,#00d68f,#00B377)} /* 正 */
.v25-g-shi::before{background:linear-gradient(180deg,#9966FF,#7744DD)}  /* 始 */
.v25-g-tier{display:flex;align-items:center;gap:8px;min-width:90px}
.v25-g-emoji{font-size:clamp(20px,5.4vw,24px)}
.v25-g-name{font-size:clamp(13px,3.6vw,14px);font-weight:900;color:var(--text)}
.v25-g-han{font-family:var(--font-cn);font-size:clamp(18px,4.8vw,22px);font-weight:900;color:var(--accent);line-height:1}
.v25-g-zin .v25-g-han{color:#FFD700}
.v25-g-sung .v25-g-han{color:#FF6B35}
.v25-g-shin .v25-g-han{color:#4a7eff}
.v25-g-jung .v25-g-han{color:#00d68f}
.v25-g-shi .v25-g-han{color:#9966FF}
.v25-g-price{font-size:clamp(13px,3.6vw,15px);font-weight:900;color:var(--accent);font-variant-numeric:tabular-nums;text-align:right}
.v25-g-meta{grid-column:1/-1;font-size:clamp(10px,2.8vw,11px);color:var(--text-3);padding-top:8px;border-top:1px solid var(--line);margin-top:6px}
.v25-g-meta strong{color:var(--text-2);font-weight:700}

/* 카테고리 디테일 — 음식점 하위 (치킨/족발/중국집/한식/일식/카페/디저트) */
.v25-cat-detail{padding:12px 16px;background:linear-gradient(180deg,var(--bg-2),transparent);border-top:1px solid var(--line);border-bottom:1px solid var(--line);margin:8px 0}
.v25-cat-detail-title{font-size:clamp(10px,2.8vw,11px);color:var(--text-3);font-weight:800;margin-bottom:8px;letter-spacing:.04em}
.v25-cat-sub{display:flex;gap:5px;overflow-x:auto;padding-bottom:4px;scrollbar-width:none}
.v25-cat-sub::-webkit-scrollbar{display:none}
.v25-sub-chip{flex-shrink:0;padding:5px 11px;background:var(--surface);border:1px solid var(--line);border-radius:14px;font-size:clamp(11px,3vw,12px);color:var(--text-2);font-weight:700;white-space:nowrap}
.v25-sub-chip.hot{background:linear-gradient(90deg,rgba(255,69,0,.15),rgba(255,107,53,.15));border-color:rgba(255,69,0,.4);color:#FF6B35}


/* ============================================================
   v27 — 기와집 4주춧돌 SVG 배경 (메인 HERO + 4주춧돌 섹션)
   ============================================================ */
.v27-hanok-bg{position:absolute;top:0;left:0;width:100%;height:100%;opacity:.16;pointer-events:none;z-index:0;mix-blend-mode:screen}
.v19-hero{position:relative}
.v19-hero>*{position:relative;z-index:1}

/* 주춧돌 회전 */
.v27-stone{transform-origin:center;transform-box:fill-box}
.v27-s1{animation:v27-stone-spin 9s linear infinite;animation-delay:0s}
.v27-s2{animation:v27-stone-spin 9s linear infinite;animation-delay:1.5s}
.v27-s3{animation:v27-stone-spin 9s linear infinite;animation-delay:3s}
.v27-s4{animation:v27-stone-spin 9s linear infinite;animation-delay:4.5s}
@keyframes v27-stone-spin{
  0%,100%{transform:rotate(0deg) scale(1)}
  25%{transform:rotate(8deg) scale(1.08)}
  50%{transform:rotate(0deg) scale(1)}
  75%{transform:rotate(-8deg) scale(1.08)}
}

/* 별점 부서져 흩어짐 (걷어차이는 느낌) */
.v27-star{transform-origin:center;transform-box:fill-box;opacity:.55}
.v27-st1{animation:v27-star-kick 4.5s ease-in infinite;animation-delay:0s}
.v27-st2{animation:v27-star-kick 4.5s ease-in infinite;animation-delay:1.5s}
.v27-st3{animation:v27-star-kick 4.5s ease-in infinite;animation-delay:3s}
@keyframes v27-star-kick{
  0%{transform:translate(0,0) rotate(0deg);opacity:.55}
  20%{transform:translate(10px,-5px) rotate(45deg);opacity:.6}
  80%{opacity:.05}
  100%{transform:translate(80px,160px) rotate(720deg);opacity:0}
}

/* 캐릭터 점프 (귀여움) */
.v27-yangban{animation:v27-jump 2.4s ease-in-out infinite}
.v27-seomin{animation:v27-jump 2.8s ease-in-out infinite;animation-delay:.4s}
@keyframes v27-jump{
  0%,100%{transform:translateY(0)}
  50%{transform:translateY(-6px)}
}

/* 말풍선 깜빡임 */
.v27-speech{animation:v27-speech-blink 5s ease-in-out infinite}
@keyframes v27-speech-blink{
  0%,25%{opacity:0}
  35%,65%{opacity:.85}
  75%,100%{opacity:0}
}

/* 4주춧돌 섹션 (헌법 4종) 배경에도 박힘 */
.v19-const{position:relative;overflow:hidden}
.v19-const>*{position:relative;z-index:1}


/* ============================================================
   v30 — 헌법 문서 가독성 강화
   ============================================================ */
.v30-legal{padding:0 0 80px;max-width:780px;margin:0 auto}
.v30-doc{padding:32px 22px}

/* 문서 헤더 */
.v30-doc-head{margin-bottom:36px;padding-bottom:24px;border-bottom:1px solid var(--line)}
.v30-tag{display:inline-block;padding:6px 14px;background:rgba(255,215,0,.12);color:var(--accent);border:1px solid rgba(255,215,0,.3);border-radius:14px;font-size:clamp(11px,3vw,12px);font-weight:800;margin-bottom:14px}
.v30-h1{font-size:clamp(26px,7vw,36px);font-weight:900;line-height:1.2;letter-spacing:-.03em;margin-bottom:10px}
.v30-meta{font-size:clamp(11px,3vw,12px);color:var(--text-3);font-weight:700;margin-bottom:18px}
.v30-intro{font-size:clamp(13px,3.6vw,15px);color:var(--text-2);line-height:1.7;padding:14px 16px;background:var(--surface);border-left:3px solid var(--accent);border-radius:0 8px 8px 0}

/* 목차 */
.v30-toc{padding:18px 20px;background:var(--surface);border:1px solid var(--line);border-radius:12px;margin-bottom:32px}
.v30-toc-title{font-size:12px;font-weight:900;color:var(--accent);margin-bottom:10px;letter-spacing:.04em}
.v30-toc ol{margin:0;padding:0 0 0 18px;display:flex;flex-direction:column;gap:6px}
.v30-toc li{font-size:clamp(12px,3.4vw,13px);color:var(--text-2)}
.v30-toc a{color:var(--text-2);font-weight:700;text-decoration:none}
.v30-toc a:hover{color:var(--accent);text-decoration:underline}

/* 섹션 */
.v30-sec{margin-bottom:40px;padding:24px 0;border-top:1px solid var(--line);position:relative}
.v30-sec:first-of-type{border-top:none;padding-top:0}
.v30-num{position:absolute;top:24px;left:-2px;width:40px;height:40px;background:var(--accent);color:#000;border-radius:50%;display:flex;align-items:center;justify-content:center;font-weight:900;font-size:18px;font-family:var(--font-cn)}
.v30-sec h2{font-size:clamp(20px,5.4vw,26px);font-weight:900;letter-spacing:-.025em;margin:0 0 12px 56px;line-height:1.3}
.v30-lead{font-size:clamp(14px,3.8vw,16px);color:var(--text-2);line-height:1.7;margin:0 0 18px 0;font-weight:600}

/* 카드 (규정 박스) */
.v30-card{padding:20px 22px;background:var(--surface);border:1px solid var(--line);border-radius:12px;margin-bottom:14px}
.v30-card h3{font-size:clamp(14px,3.8vw,15px);font-weight:900;color:var(--accent);margin:0 0 12px 0;letter-spacing:-.01em}
.v30-card ul,.v30-card ol{margin:0;padding:0 0 0 20px;display:flex;flex-direction:column;gap:8px}
.v30-card li{font-size:clamp(13px,3.6vw,14px);color:var(--text-2);line-height:1.7}
.v30-card li strong{color:var(--text);font-weight:800}
.v30-card-strong{border:1.5px solid rgba(255,215,0,.4);background:linear-gradient(180deg,rgba(255,215,0,.04),var(--surface))}
.v30-card-strong > p{font-size:clamp(13px,3.6vw,14px);color:var(--text-2);line-height:1.7;margin-bottom:12px}

/* 주석·강조 박스 */
.v30-note{font-size:clamp(12px,3.4vw,13px);color:var(--text-3);line-height:1.65;padding-top:10px;margin-top:12px;border-top:1px dashed var(--line)}
.v30-box{padding:14px 16px;background:var(--bg-2);border-left:3px solid var(--primary);border-radius:0 8px 8px 0;margin-top:14px}
.v30-box strong{display:block;font-size:clamp(12px,3.4vw,13px);font-weight:900;color:var(--primary);margin-bottom:6px}
.v30-box p{font-size:clamp(12px,3.4vw,13px);color:var(--text-2);line-height:1.7;margin:0}
.v30-box-warn{border-left-color:#FF9933}
.v30-box-warn strong{color:#FF9933}

/* 테이블 */
.v30-table{width:100%;border-collapse:collapse;margin:14px 0;font-size:clamp(12px,3.4vw,13px);background:var(--surface);border-radius:10px;overflow:hidden}
.v30-table th,.v30-table td{padding:12px 14px;border:1px solid var(--line);text-align:left}
.v30-table th{background:var(--bg-2);color:var(--accent);font-weight:800;font-size:clamp(11px,3vw,12px);letter-spacing:.02em}
.v30-table td{color:var(--text-2)}
.v30-table td strong{color:var(--text);font-weight:900}

/* 규정 리스트 */
.v30-rules{list-style:none;counter-reset:rule;padding:0;margin:0;display:flex;flex-direction:column;gap:12px}
.v30-rules li{counter-increment:rule;padding:16px 18px 16px 50px;background:var(--surface);border:1px solid var(--line);border-radius:10px;position:relative}
.v30-rules li::before{content:counter(rule);position:absolute;left:14px;top:16px;width:26px;height:26px;background:var(--accent);color:#000;border-radius:50%;display:flex;align-items:center;justify-content:center;font-weight:900;font-size:13px}
.v30-rules strong{display:block;font-size:clamp(13px,3.6vw,14px);font-weight:900;color:var(--text);margin-bottom:6px}
.v30-rules p{font-size:clamp(12px,3.4vw,13px);color:var(--text-2);line-height:1.7;margin:0}

/* 코드 */
.v30-doc code{font-family:'SF Mono','Menlo',monospace;background:var(--bg-2);padding:2px 6px;border-radius:4px;font-size:.9em;color:var(--accent)}

/* 푸터 */
.v30-doc-foot{margin-top:48px;padding-top:24px;border-top:1px solid var(--line);text-align:center}
.v30-doc-foot p{font-size:clamp(12px,3.4vw,13px);color:var(--text-3);line-height:1.7;margin-bottom:8px}
.v30-foot-meta{font-size:11px;color:var(--text-3);letter-spacing:.02em}


/* ============================================================
   v31 STEP 2 — 5등급 한자 색상 + 카테고리 14종 + 핫 9칸
   ============================================================ */

/* 5등급 색상 시스템 */
.v16-ob-grade.g-jin{background:linear-gradient(135deg,#FFD700,#FFA500);color:#1a1300;border:1px solid #FFD700;font-weight:900}
.v16-ob-grade.g-sung{background:linear-gradient(135deg,#C0C0C0,#A0A0A0);color:#0a0a0a;border:1px solid #C0C0C0;font-weight:900}
.v16-ob-grade.g-sin{background:linear-gradient(135deg,#CD7F32,#A0522D);color:#fff8f0;border:1px solid #CD7F32;font-weight:800}
.v16-ob-grade.g-jeong{background:linear-gradient(135deg,#2E8B57,#3CB371);color:#fff;border:1px solid #3CB371;font-weight:800}
.v16-ob-grade.g-si{background:linear-gradient(135deg,#808080,#A9A9A9);color:#fff;border:1px solid #A9A9A9;font-weight:700}
.v16-ob-grade{padding:3px 9px;border-radius:6px;font-size:11px;letter-spacing:.01em;white-space:nowrap}

/* 등급 chip 색상 (필터) */
.v16-chip.v16-g.g-jin{border-color:#FFD700;color:#FFD700}
.v16-chip.v16-g.g-sung{border-color:#C0C0C0;color:#C0C0C0}
.v16-chip.v16-g.g-sin{border-color:#CD7F32;color:#CD7F32}
.v16-chip.v16-g.g-jeong{border-color:#3CB371;color:#3CB371}
.v16-chip.v16-g.g-si{border-color:#A9A9A9;color:#A9A9A9}
.v16-chip.v16-g.g-jin.active{background:#FFD700;color:#000}
.v16-chip.v16-g.g-sung.active{background:#C0C0C0;color:#000}
.v16-chip.v16-g.g-sin.active{background:#CD7F32;color:#fff}
.v16-chip.v16-g.g-jeong.active{background:#3CB371;color:#fff}
.v16-chip.v16-g.g-si.active{background:#A9A9A9;color:#fff}

/* 체결 피드 등급 미니뱃지 */
.v16-trd-g{display:inline-block;margin-left:6px;padding:1px 6px;border-radius:4px;font-size:10px;font-weight:900;vertical-align:middle}
.v16-trd-g.g-jin{background:#FFD700;color:#1a1300}
.v16-trd-g.g-sung{background:#C0C0C0;color:#0a0a0a}
.v16-trd-g.g-sin{background:#CD7F32;color:#fff}
.v16-trd-g.g-jeong{background:#3CB371;color:#fff}
.v16-trd-g.g-si{background:#A9A9A9;color:#fff}

/* 카테고리 14종 chip 가로 스크롤 */
.v16-fr-scroll{display:flex;overflow-x:auto;gap:8px;padding-bottom:8px;-webkit-overflow-scrolling:touch;scrollbar-width:none}
.v16-fr-scroll::-webkit-scrollbar{display:none}
.v16-fr-scroll .v16-chip{flex-shrink:0;white-space:nowrap}

/* 핫매물 9칸 그리드 */
.v16-hot-grid-9{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}
@media (max-width:780px){.v16-hot-grid-9{grid-template-columns:repeat(2,1fr)}}
@media (max-width:480px){.v16-hot-grid-9{grid-template-columns:1fr}}
.v16-hot-grid-9 .v16-hot-card{position:relative;padding:14px 14px 14px 44px;background:linear-gradient(180deg,rgba(255,215,0,.04),var(--surface));border:1px solid var(--line);border-radius:12px;min-height:120px;display:flex;flex-direction:column;justify-content:space-between}
.v16-hot-grid-9 .v16-hot-card.v16-hot-1{border-color:#FFD700;background:linear-gradient(180deg,rgba(255,215,0,.08),var(--surface))}
.v16-hot-grid-9 .v16-hot-card.v16-hot-2{border-color:#C0C0C0;background:linear-gradient(180deg,rgba(192,192,192,.06),var(--surface))}
.v16-hot-grid-9 .v16-hot-card.v16-hot-3{border-color:#CD7F32;background:linear-gradient(180deg,rgba(205,127,50,.06),var(--surface))}
.v16-hot-grid-9 .v16-hot-rk{position:absolute;top:12px;left:12px;width:24px;height:24px;background:var(--accent);color:#000;border-radius:50%;display:flex;align-items:center;justify-content:center;font-weight:900;font-size:12px}
.v16-hot-grid-9 .v16-hot-card.v16-hot-1 .v16-hot-rk{background:#FFD700}
.v16-hot-grid-9 .v16-hot-card.v16-hot-2 .v16-hot-rk{background:#C0C0C0}
.v16-hot-grid-9 .v16-hot-card.v16-hot-3 .v16-hot-rk{background:#CD7F32;color:#fff}
.v16-hot-grid-9 .v16-hot-em{position:absolute;top:10px;right:12px;font-size:24px}
.v16-hot-grid-9 .v16-hot-title{font-size:13px;font-weight:800;color:var(--text);line-height:1.35;margin-bottom:6px;padding-right:32px}
.v16-hot-grid-9 .v16-hot-meta{display:flex;flex-wrap:wrap;gap:4px;align-items:center;margin-bottom:6px}
.v16-hot-grid-9 .v16-hot-meta .v16-ob-grade{font-size:10px;padding:2px 6px}
.v16-hot-grid-9 .v16-hot-score{font-size:11px;color:#FF6B35;font-weight:800}
.v16-hot-grid-9 .v16-hot-price{font-size:14px;font-weight:900;color:var(--accent)}


/* ============================================================
   v31 STEP 4 — V배지·온보딩 모달
   ============================================================ */

/* 떠다니는 도움 버튼 */
.v31-help-fab{position:fixed;right:14px;bottom:14px;z-index:9000;background:linear-gradient(135deg,#FFD700,#FFA500);color:#000;border:none;border-radius:24px;padding:10px 14px 10px 12px;font-size:13px;font-weight:900;display:flex;align-items:center;gap:6px;box-shadow:0 4px 16px rgba(255,165,0,.35);cursor:pointer;transition:transform .15s ease}
.v31-help-fab:hover{transform:translateY(-2px)}
.v31-help-fab span{font-size:12px}
@media (max-width:480px){
  .v31-help-fab{right:12px;bottom:12px;padding:9px 12px}
  .v31-help-fab span{display:none}
}

/* 모달 배경 */
.v31-modal-bg{position:fixed;inset:0;background:rgba(0,0,0,.85);z-index:9500;display:flex;align-items:center;justify-content:center;padding:16px;overflow-y:auto;animation:v31fadeIn .2s ease}
.v31-modal-bg[hidden]{display:none}
@keyframes v31fadeIn{from{opacity:0}to{opacity:1}}

/* 모달 본체 */
.v31-modal{background:#0d0d0d;border:1.5px solid #FFD700;border-radius:18px;max-width:560px;width:100%;max-height:92vh;overflow-y:auto;position:relative;padding:0;animation:v31slideUp .25s ease}
@keyframes v31slideUp{from{transform:translateY(20px);opacity:.5}to{transform:translateY(0);opacity:1}}

.v31-modal-close{position:absolute;top:12px;right:12px;background:rgba(255,255,255,.08);border:none;color:#fff;width:34px;height:34px;border-radius:50%;font-size:16px;cursor:pointer;z-index:2}
.v31-modal-close:hover{background:rgba(255,255,255,.15)}

.v31-modal-head{padding:28px 24px 18px;text-align:center;border-bottom:1px solid rgba(255,215,0,.15)}
.v31-modal-icon{font-size:42px;margin-bottom:6px;filter:drop-shadow(0 2px 8px rgba(255,215,0,.4))}
.v31-modal-head h2{font-size:24px;font-weight:900;color:#FFD700;margin:0 0 6px;letter-spacing:-.02em}
.v31-modal-sub{font-size:12px;color:#aaa;margin:0;line-height:1.5}

.v31-modal-body{padding:18px 22px 22px}
.v31-modal-h3{font-size:14px;font-weight:900;color:#FFD700;margin:22px 0 12px;letter-spacing:-.01em}

/* V배지 4단계 카드 */
.v31-vb-cards{display:grid;grid-template-columns:repeat(2,1fr);gap:8px}
.v31-vb-c{background:#161616;border:1px solid #2a2a2a;border-radius:10px;padding:12px;position:relative}
.v31-vb-c .v31-vb-n{position:absolute;top:8px;right:10px;font-size:14px;color:#FFD700;font-weight:900}
.v31-vb-c strong{display:block;font-size:13px;font-weight:900;color:#fff;margin-bottom:4px}
.v31-vb-c p{font-size:11px;color:#999;margin:0;line-height:1.5}

/* 등급 테이블 */
.v31-grade-table{display:flex;flex-direction:column;gap:6px}
.v31-gr{display:grid;grid-template-columns:60px 28px 1fr 1fr;gap:8px;align-items:center;padding:10px 12px;background:#161616;border:1px solid #2a2a2a;border-radius:8px;font-size:11.5px}
.v31-gr-l{font-weight:900;color:#fff;white-space:nowrap}
.v31-gr-cn{font-family:'Noto Serif KR',serif;font-size:20px;font-weight:900;text-align:center}
.v31-gr-p{color:#FFD700;font-weight:800;white-space:nowrap;font-size:11px}
.v31-gr-c{color:#888;font-size:10.5px;line-height:1.4}
.v31-gr.g-jin{border-left:3px solid #FFD700}
.v31-gr.g-jin .v31-gr-cn{color:#FFD700}
.v31-gr.g-sung{border-left:3px solid #C0C0C0}
.v31-gr.g-sung .v31-gr-cn{color:#C0C0C0}
.v31-gr.g-sin{border-left:3px solid #CD7F32}
.v31-gr.g-sin .v31-gr-cn{color:#CD7F32}
.v31-gr.g-jeong{border-left:3px solid #3CB371}
.v31-gr.g-jeong .v31-gr-cn{color:#3CB371}
.v31-gr.g-si{border-left:3px solid #A9A9A9}
.v31-gr.g-si .v31-gr-cn{color:#A9A9A9}

@media (max-width:430px){
  .v31-gr{grid-template-columns:48px 24px 1fr;gap:6px;font-size:10.5px}
  .v31-gr-c{grid-column:1/-1;padding-top:4px;border-top:1px dashed #2a2a2a;margin-top:2px}
}

/* 작동 흐름 */
.v31-flow{margin:0;padding:0 0 0 20px;display:flex;flex-direction:column;gap:8px}
.v31-flow li{font-size:13px;color:#ccc;line-height:1.6}
.v31-flow li strong{color:#FFD700;font-weight:900}

/* CTA 행 */
.v31-cta-row{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:22px}
.v31-cta-row a{padding:13px;border-radius:10px;text-align:center;text-decoration:none;font-weight:900;font-size:13px;transition:transform .12s ease}
.v31-cta-row a:hover{transform:translateY(-1px)}
.v31-cta-1{background:#FFD700;color:#000}
.v31-cta-2{background:#1a1a1a;color:#fff;border:1px solid #333}


/* ============================================================
   v31 STEP 5 — OAuth 에러 박스 + 스피너
   ============================================================ */
.v31-auth-err{background:linear-gradient(135deg,rgba(255,100,100,.12),rgba(255,165,0,.08));border:1.5px solid #FF6464;border-radius:12px;padding:14px 16px;margin-bottom:18px}
.v31-auth-err-head{display:flex;align-items:center;gap:8px;margin-bottom:8px}
.v31-auth-err-icon{font-size:18px}
.v31-auth-err-head strong{font-size:14px;font-weight:900;color:#FF9080}
.v31-auth-err-msg{font-size:13px;color:#ccc;line-height:1.55;margin:0 0 10px}
.v31-auth-err-help{font-size:12px;color:#aaa}
.v31-auth-err-help summary{cursor:pointer;font-weight:700;padding:6px 0;color:#FFD700}
.v31-auth-err-help ol{margin:8px 0 0;padding-left:18px;display:flex;flex-direction:column;gap:6px;line-height:1.55}
.v31-auth-err-help code{background:#1a1a1a;color:#FFD700;padding:1px 6px;border-radius:4px;font-family:'SF Mono','Menlo',monospace;font-size:11px}

/* OAuth 진행 스피너 */
.v31-spin{display:inline-block;width:14px;height:14px;border:2px solid rgba(0,0,0,.2);border-top-color:#3C1E1E;border-radius:50%;animation:v31spin 0.7s linear infinite;margin-right:6px;vertical-align:middle}
@keyframes v31spin{to{transform:rotate(360deg)}}


/* ============================================================
   v31 STEP 6 — 검색 매장 카드 + 로딩/에러 박스
   ============================================================ */
.v31-search-info{display:flex;align-items:center;gap:8px;padding:10px 14px;background:rgba(60,179,113,.1);border:1px solid rgba(60,179,113,.3);border-radius:10px;margin-bottom:14px;font-size:12.5px;color:#ccc}
.v31-search-info[hidden]{display:none}
.v31-si-icon{font-size:14px}
.v31-si-text strong{color:#FFD700;font-weight:900}
.v31-si-text code{background:#1a1a1a;padding:1px 5px;border-radius:3px;font-size:10.5px;color:#aaa}

.v31-place-grid{display:flex;flex-direction:column;gap:8px;margin-bottom:14px}
.v31-place{display:grid;grid-template-columns:32px 1fr auto;gap:10px;align-items:center;padding:12px 14px;background:var(--surface);border:1px solid var(--line);border-radius:10px;transition:border-color .15s ease}
.v31-place:hover{border-color:#FFD700}
.v31-place-rk{width:24px;height:24px;background:#FFD700;color:#000;border-radius:50%;display:flex;align-items:center;justify-content:center;font-weight:900;font-size:11px}
.v31-place-body{min-width:0}
.v31-place-name{font-size:13.5px;font-weight:900;color:var(--text);margin-bottom:3px;line-height:1.3;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.v31-place-addr{font-size:11.5px;color:#aaa;margin-bottom:2px;line-height:1.4}
.v31-place-cat{font-size:10.5px;color:#777;line-height:1.4}
.v31-place-actions{display:flex;flex-direction:column;gap:4px}
.v31-place-btn{padding:5px 10px;background:#FFD700;color:#000;border-radius:6px;text-decoration:none;font-size:10.5px;font-weight:900;text-align:center;white-space:nowrap}
.v31-place-btn-2{background:#1a1a1a;color:#ccc;border:1px solid #333}

.v31-place-loading{padding:30px;text-align:center;color:#888;font-size:13px;background:var(--surface);border:1px dashed var(--line);border-radius:10px}

.v31-place-err{padding:18px;background:rgba(255,100,100,.08);border:1px solid #FF6464;border-radius:10px;color:#FF9080}
.v31-place-err strong{display:block;font-size:14px;margin-bottom:6px;color:#FF6464}
.v31-place-err p{font-size:12px;color:#ccc;margin:0 0 6px;line-height:1.55}
.v31-place-err code{background:#1a1a1a;padding:1px 5px;border-radius:3px;font-size:11px;color:#FFD700}
.v31-place-err-meta{font-size:11px;color:#888}
.v31-place-err-link{display:inline-block;margin-top:8px;padding:6px 12px;background:#FFD700;color:#000;border-radius:6px;text-decoration:none;font-size:12px;font-weight:900}


/* ============================================================
   v32 — 페르소나 BEST 10 (1~5 오픈 · 6~10 잠금)
   ============================================================ */

.v32-best{margin-top:24px}
.v32-best-sub{font-size:12.5px;color:#aaa;line-height:1.55;margin:6px 0 14px}

/* 페르소나 chip — 6개, 가로 스크롤 가능 */
.v32-persona-wrap{display:grid;grid-template-columns:repeat(6,1fr);gap:8px;margin-bottom:16px}
@media (max-width:780px){
  .v32-persona-wrap{display:flex;overflow-x:auto;gap:8px;padding-bottom:8px;-webkit-overflow-scrolling:touch;scrollbar-width:none}
  .v32-persona-wrap::-webkit-scrollbar{display:none}
  .v32-persona{flex-shrink:0;min-width:128px}
}
.v32-persona{display:flex;flex-direction:column;align-items:center;gap:4px;padding:14px 10px;background:#161616;border:1.5px solid #2a2a2a;border-radius:12px;cursor:pointer;transition:all .15s ease}
.v32-persona:hover{border-color:#FFD700;transform:translateY(-2px)}
.v32-persona.active{background:linear-gradient(180deg,rgba(255,215,0,.12),#161616);border-color:#FFD700;box-shadow:0 0 0 1px rgba(255,215,0,.3)}
.v32-p-em{font-size:24px;line-height:1}
.v32-p-t{font-size:12.5px;font-weight:900;color:#fff;text-align:center;line-height:1.3}
.v32-p-meta{font-size:10px;color:#777;text-align:center}
.v32-persona.active .v32-p-meta{color:#FFD700}

/* BEST 10 헤더 */
.v32-best-head{display:flex;justify-content:space-between;align-items:center;padding:10px 14px;background:linear-gradient(135deg,rgba(255,215,0,.08),transparent);border-radius:10px 10px 0 0;margin-bottom:0;border:1px solid rgba(255,215,0,.15);border-bottom:none}
.v32-best-h-l{font-size:14px;font-weight:900;color:#FFD700}
.v32-best-h-r{font-size:11px;color:#888;font-weight:700}

.v32-best-list{display:flex;flex-direction:column}

/* BEST 카드 — 단일 컬럼 가로 풀 너비 */
.v32-bcard{display:grid;grid-template-columns:36px 36px 1fr auto;gap:10px;align-items:center;padding:14px 16px;background:var(--surface);border:1px solid var(--line);border-top:none;transition:background .12s ease}
.v32-bcard:first-of-type{border-top:1px solid var(--line)}
.v32-bcard:last-child{border-radius:0 0 10px 10px}
.v32-bcard:hover{background:#161616}

.v32-bcard-1{background:linear-gradient(135deg,rgba(255,215,0,.06),var(--surface));border-left:3px solid #FFD700}
.v32-bcard-2{background:linear-gradient(135deg,rgba(192,192,192,.05),var(--surface));border-left:3px solid #C0C0C0}
.v32-bcard-3{background:linear-gradient(135deg,rgba(205,127,50,.05),var(--surface));border-left:3px solid #CD7F32}

.v32-bc-rank{width:30px;height:30px;background:var(--accent);color:#000;border-radius:50%;display:flex;align-items:center;justify-content:center;font-weight:900;font-size:14px}
.v32-bcard-1 .v32-bc-rank{background:#FFD700}
.v32-bcard-2 .v32-bc-rank{background:#C0C0C0}
.v32-bcard-3 .v32-bc-rank{background:#CD7F32;color:#fff}
.v32-bc-rank.lock{background:#2a2a2a;color:#666}

.v32-bc-em{font-size:24px;line-height:1}

.v32-bc-body{min-width:0}
.v32-bc-title{font-size:14px;font-weight:900;color:var(--text);margin-bottom:3px;line-height:1.3;overflow:hidden;text-overflow:ellipsis}
.v32-bc-addr{font-size:11px;color:#888;margin-bottom:5px;line-height:1.4}
.v32-bc-meta{display:flex;flex-wrap:wrap;gap:5px;align-items:center}
.v32-bc-meta .v16-ob-grade{font-size:10px;padding:2px 6px}
.v32-bc-hot{font-size:11px;color:#FF6B35;font-weight:800}

.v32-bc-right{display:flex;flex-direction:column;align-items:flex-end;gap:6px}
.v32-bc-price{font-size:14px;font-weight:900;color:#FFD700;white-space:nowrap}
.v32-bc-buy{padding:6px 14px;background:#FFD700;color:#000;border:none;border-radius:6px;font-weight:900;font-size:12px;cursor:pointer}
.v32-bc-buy:hover{filter:brightness(1.1)}

/* 잠금 카드 (6~10위) */
.v32-bcard-lock{opacity:.85;background:linear-gradient(180deg,#0d0d0d,var(--surface))}
.v32-bc-lockmark{color:#FFD700;font-size:11px}
.v32-bc-lockmsg{font-size:10px;color:#888;font-weight:700}
.v32-bc-cta-lock{padding:8px 12px;background:linear-gradient(135deg,#FFD700,#FFA500);color:#000;border-radius:6px;text-decoration:none;font-weight:900;font-size:11px;white-space:nowrap}

@media (max-width:480px){
  .v32-bcard{grid-template-columns:28px 28px 1fr auto;gap:8px;padding:12px}
  .v32-bc-em{font-size:20px}
  .v32-bc-title{font-size:13px}
  .v32-bc-price{font-size:13px}
  .v32-bc-buy{padding:5px 10px;font-size:11px}
  .v32-bc-cta-lock{padding:6px 10px;font-size:10px}
}


/* ============================================================
   v33 — 한자+한글 병기 + 스크롤바 노출 + SECRET 도장
   ============================================================ */

/* 등급 한자 옆 작은 한글 (찐·성·신·정·시) */
.g-kr{font-size:.55em;color:#FFD700;margin-left:2px;font-weight:800;vertical-align:super;letter-spacing:-.02em;opacity:.92}
.v16-ob-grade.g-jin .g-kr,.v16-ob-grade.g-sung .g-kr{color:#000}
.v16-ob-grade.g-sin .g-kr,.v16-ob-grade.g-jeong .g-kr,.v16-ob-grade.g-si .g-kr{color:#fff}
.v16-chip.v16-g .g-kr{color:inherit;opacity:.7}

/* 카테고리 가로 스크롤 — 스크롤바 노출 + 우측 페이드 */
.v16-fr-scroll{scrollbar-width:thin;scrollbar-color:#FFD700 transparent;padding-bottom:10px;position:relative}
.v16-fr-scroll::-webkit-scrollbar{display:block;height:5px}
.v16-fr-scroll::-webkit-scrollbar-track{background:rgba(255,215,0,.08);border-radius:3px}
.v16-fr-scroll::-webkit-scrollbar-thumb{background:linear-gradient(90deg,#FFD700,#FFA500);border-radius:3px}
.v16-fr-scroll::-webkit-scrollbar-thumb:hover{background:#FFD700}

/* 카테고리 외부 컨테이너 — 우측 그라데이션 페이드 */
.v32-scroll-wrap{position:relative}
.v32-scroll-wrap::after{content:'';position:absolute;right:0;top:0;bottom:10px;width:40px;background:linear-gradient(90deg,transparent,#000 85%);pointer-events:none;z-index:2}
.v32-scroll-hint{position:absolute;right:6px;top:50%;transform:translateY(-50%);font-size:14px;color:#FFD700;pointer-events:none;z-index:3;animation:v32slideHint 1.8s ease-in-out infinite}
@keyframes v32slideHint{0%,100%{transform:translateY(-50%) translateX(0)}50%{transform:translateY(-50%) translateX(-4px)}}

/* SECRET 도장 (혼쭐 TOP3 비공개) */
.v33-secret-card{position:relative;overflow:hidden}
.v33-secret-overlay{position:absolute;inset:0;background:rgba(0,0,0,.78);backdrop-filter:blur(3px);display:flex;flex-direction:column;align-items:center;justify-content:center;z-index:5;cursor:pointer;transition:opacity .2s ease}
.v33-secret-stamp{padding:10px 28px;border:3px solid #00C853;color:#00C853;font-weight:900;font-size:18px;letter-spacing:.08em;border-radius:6px;transform:rotate(-8deg);background:rgba(0,200,83,.08);box-shadow:0 0 0 1px rgba(0,200,83,.4) inset;font-family:'Pretendard Variable',sans-serif;text-shadow:0 1px 2px rgba(0,200,83,.3)}
.v33-secret-sub{font-size:11px;color:#aaa;margin-top:10px;font-weight:700;letter-spacing:.04em}
.v33-secret-cta{margin-top:14px;padding:8px 16px;background:#FFD700;color:#000;border-radius:6px;font-size:11.5px;font-weight:900;border:none;cursor:pointer}
.v33-secret-card.revealed .v33-secret-overlay{opacity:0;pointer-events:none}

/* 사연기 읽기 버튼 */
.v33-read-btn{padding:6px 14px;background:linear-gradient(135deg,#FF4757,#FF6B35);color:#fff;border-radius:6px;text-decoration:none;font-size:12px;font-weight:900;display:inline-block;transition:filter .12s ease}
.v33-read-btn:hover{filter:brightness(1.1)}


/* ============================================================
   v33 — 사연 상세 페이지
   ============================================================ */
.v33-detail-main{max-width:760px;margin:0 auto;padding:20px 18px 60px}
.v33-detail-loading{text-align:center;color:#888;padding:40px;font-size:13px}
.v33-back{display:inline-block;padding:6px 14px;background:#1a1a1a;color:#aaa;border-radius:6px;text-decoration:none;font-size:12px;margin-bottom:16px}
.v33-back:hover{color:#FFD700;background:#222}

.v33-detail-head{margin-bottom:22px;padding-bottom:18px;border-bottom:1px solid var(--line)}
.v33-badge{display:inline-block;padding:5px 14px;border-radius:14px;font-size:11.5px;font-weight:900;margin-bottom:14px}
.v33-detail-head h1{font-size:clamp(20px,5vw,28px);font-weight:900;line-height:1.35;letter-spacing:-.02em;margin:0 0 14px;color:var(--text)}
.v33-meta{font-size:12px;color:#888;margin:0 0 12px;line-height:1.6}
.v33-stats{display:flex;gap:14px;font-size:12.5px;color:#FFD700;font-weight:800}

.v33-evidence{padding:14px 16px;background:rgba(60,179,113,.08);border:1px solid rgba(60,179,113,.3);border-radius:10px;margin-bottom:20px}
.v33-evidence strong{display:block;font-size:13px;color:#3CB371;margin-bottom:6px;font-weight:900}
.v33-evidence p{font-size:12px;color:#ccc;margin:0;line-height:1.6}

.v33-body{font-size:14.5px;color:#e0e0e0;line-height:1.85;letter-spacing:-.01em;margin-bottom:30px;white-space:pre-wrap}

.v33-cta-row{display:grid;grid-template-columns:1fr auto;gap:8px;margin-bottom:18px}
.v33-sympathy{padding:13px;background:#FFD700;color:#000;border:none;border-radius:10px;font-weight:900;font-size:13px;cursor:pointer}
.v33-share{padding:13px 20px;background:#1a1a1a;color:#ccc;border:1px solid #333;border-radius:10px;font-weight:800;font-size:13px;cursor:pointer}

.v33-foot-meta{font-size:11px;color:#666;text-align:center;line-height:1.6;padding:14px;background:#0a0a0a;border-radius:8px}

.v33-detail-404{text-align:center;padding:50px 20px}
.v33-detail-404 h2{font-size:20px;color:#FF6B35;margin-bottom:10px}
.v33-detail-404 p{font-size:13px;color:#888;margin-bottom:20px}


/* v33 — SECRET 인라인 마크 */
.v33-secret-inline{display:inline-block;margin-left:8px;padding:3px 10px;background:rgba(0,200,83,.12);border:1px solid #00C853;color:#00C853;font-size:10.5px;font-weight:900;border-radius:4px;letter-spacing:.04em}


/* ============================================================
   v35 — 사연 상세 강화 (등급 한자·방문 시간·검증 미리보기·공감·댓글)
   ============================================================ */

/* 헤더 뱃지 줄 */
.v35-badges{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:14px;align-items:center}
.v35-grade{display:inline-block;padding:5px 11px;border-radius:14px;font-size:11.5px;font-weight:900;background:#1a1a1a;color:#fff;border:1px solid #2a2a2a}
.v35-grade-jin{background:linear-gradient(135deg,#FFD700,#FFA500);color:#1a1300;border-color:#FFD700}
.v35-grade-sung{background:linear-gradient(135deg,#C0C0C0,#A0A0A0);color:#0a0a0a;border-color:#C0C0C0}
.v35-grade-sin{background:linear-gradient(135deg,#CD7F32,#A0522D);color:#fff;border-color:#CD7F32}
.v35-grade-jeong{background:linear-gradient(135deg,#2E8B57,#3CB371);color:#fff;border-color:#3CB371}
.v35-grade-si{background:#808080;color:#fff;border-color:#A9A9A9}
.v35-level-up{display:inline-block;padding:5px 11px;border-radius:14px;font-size:11.5px;font-weight:900;background:rgba(255,215,0,.18);color:#FFD700;border:1px solid #FFD700;animation:v35pulse 2s ease-in-out infinite}
@keyframes v35pulse{0%,100%{box-shadow:0 0 0 0 rgba(255,215,0,.4)}50%{box-shadow:0 0 0 6px rgba(255,215,0,0)}}

/* 메타 그리드 */
.v35-meta-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:8px;margin-top:14px}
.v35-mc{padding:10px 12px;background:#0d0d0d;border:1px solid #2a2a2a;border-radius:8px}
.v35-mc span{display:block;font-size:10.5px;color:#888;font-weight:700;margin-bottom:4px}
.v35-mc strong{display:block;font-size:12.5px;color:#fff;font-weight:800;line-height:1.4}
@media (max-width:430px){
  .v35-meta-grid{grid-template-columns:1fr}
}

/* 검증 자료 그리드 */
.v35-visuals{margin:22px 0}
.v35-visuals h3{font-size:14px;font-weight:900;color:#FFD700;margin:0 0 4px}
.v35-vis-meta{display:block;font-size:11px;color:#888;font-weight:700;margin-bottom:12px}
.v35-vis-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:10px}
.v35-vis-card{position:relative;padding:14px 10px;background:#1a1a1a;border:1px solid #2a2a2a;border-radius:10px;text-align:center;cursor:pointer;transition:border-color .15s ease}
.v35-vis-card:hover{border-color:#FFD700}
.v35-vis-icon{font-size:28px;margin-bottom:6px}
.v35-vis-label{font-size:11px;color:#ccc;line-height:1.4;margin-bottom:4px}
.v35-vis-tag{font-size:10px;color:#FFD700;font-weight:800}
.v35-vis-blur{position:relative}
.v35-vis-blur .v35-vis-icon,.v35-vis-blur .v35-vis-label{filter:blur(4px);opacity:.6}
.v35-vis-blur-mark{position:absolute;bottom:8px;left:50%;transform:translateX(-50%);font-size:9.5px;color:#FF9080;font-weight:900;background:rgba(0,0,0,.7);padding:3px 8px;border-radius:4px;white-space:nowrap}
.v35-vis-card.revealed.v35-vis-blur .v35-vis-icon,.v35-vis-card.revealed.v35-vis-blur .v35-vis-label{filter:none;opacity:1}
.v35-vis-card.revealed .v35-vis-blur-mark{display:none}

/* 반응 버튼 (공감·비공감·공유) */
.v35-reactions{display:flex;gap:8px;margin:22px 0}
.v35-react{flex:1;padding:13px;background:#1a1a1a;color:#ccc;border:1px solid #2a2a2a;border-radius:10px;font-weight:800;font-size:12.5px;cursor:pointer;transition:all .12s ease}
.v35-react:hover{transform:translateY(-1px)}
.v35-react strong{color:#FFD700;font-weight:900;margin-left:2px}
.v35-react-up:hover{border-color:#3CB371;color:#3CB371}
.v35-react-dn:hover{border-color:#FF6B35;color:#FF6B35}
.v35-react-dn strong{color:#FF6B35}
.v35-share{flex:0 0 auto;padding:13px 18px}

/* 댓글 */
.v35-comments{margin:22px 0}
.v35-comments h3{font-size:14px;font-weight:900;color:#FFD700;margin:0 0 12px}
.v35-c-count{font-size:11px;color:#888;font-weight:700;margin-left:6px}
.v35-c-list{display:flex;flex-direction:column;gap:8px}
.v35-comment{padding:12px 14px;background:#0d0d0d;border:1px solid #1f1f1f;border-radius:10px;position:relative}
.v35-comment-best{background:linear-gradient(135deg,rgba(255,215,0,.08),#0d0d0d);border-color:#FFD700}
.v35-best-tag{position:absolute;top:-8px;right:10px;padding:3px 9px;background:#FFD700;color:#000;font-size:9.5px;font-weight:900;border-radius:10px}
.v35-c-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:6px}
.v35-c-head strong{font-size:12px;color:#fff;font-weight:900}
.v35-c-likes{font-size:10.5px;color:#FFD700;font-weight:800}
.v35-comment p{font-size:13px;color:#ccc;line-height:1.6;margin:0}
.v35-c-write{display:flex;gap:6px;margin-top:14px}
.v35-c-write input{flex:1;padding:11px 13px;background:#0a0a0a;border:1px solid #2a2a2a;border-radius:8px;color:#fff;font-size:12.5px}
.v35-c-write button{padding:11px 18px;background:#FFD700;color:#000;border:none;border-radius:8px;font-weight:900;font-size:12.5px;cursor:pointer;opacity:.5}


/* ============================================================
   v36 — 사연 작성 폼 + 영상 모달
   ============================================================ */

/* 헤더 */
.v36-write-main{max-width:780px;margin:0 auto;padding:20px 18px 60px}
.v36-write-head{margin-bottom:16px}
.v36-write-eyebrow{font-size:11.5px;color:#FFD700;font-weight:900;letter-spacing:.04em;margin:0 0 10px}
.v36-write-h1{font-size:clamp(20px,5vw,28px);font-weight:900;line-height:1.35;letter-spacing:-.02em;margin:0 0 10px;color:#fff}
.v36-write-sub{font-size:12.5px;color:#aaa;line-height:1.65;margin:0}

/* 카드 잔여 */
.v36-card-status{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-bottom:18px;padding:14px;background:linear-gradient(135deg,rgba(255,215,0,.06),#0d0d0d);border:1px solid rgba(255,215,0,.2);border-radius:12px}
.v36-cs-cell{text-align:center}
.v36-cs-label{display:block;font-size:10.5px;color:#888;font-weight:700;margin-bottom:4px}
.v36-cs-big{display:block;font-size:18px;font-weight:900;color:#FFD700}
.v36-cs-big small{font-size:11px;color:#aaa;margin-left:2px}

/* 단계 표시 */
.v36-stepper{display:grid;grid-template-columns:repeat(4,1fr);gap:6px;margin-bottom:20px}
.v36-step{display:flex;flex-direction:column;align-items:center;gap:6px;padding:10px 6px;background:#0d0d0d;border:1px solid #1f1f1f;border-radius:10px;font-size:11px;color:#666;font-weight:700;text-align:center}
.v36-step-num{width:26px;height:26px;background:#1a1a1a;color:#666;border-radius:50%;display:flex;align-items:center;justify-content:center;font-weight:900;font-size:13px}
.v36-step-active{border-color:#FFD700;color:#FFD700;background:linear-gradient(180deg,rgba(255,215,0,.08),#0d0d0d)}
.v36-step-active .v36-step-num{background:#FFD700;color:#000}
.v36-step-done{color:#3CB371;border-color:rgba(60,179,113,.4)}
.v36-step-done .v36-step-num{background:#3CB371;color:#000}

/* 단계 박스 */
.v36-stage{padding:20px;background:#0a0a0a;border:1px solid #1f1f1f;border-radius:14px}
.v36-stage-h{font-size:18px;font-weight:900;color:#fff;margin:0 0 6px;letter-spacing:-.01em}
.v36-stage-sub{font-size:12.5px;color:#888;line-height:1.65;margin:0 0 18px}

.v36-field{margin-bottom:16px}
.v36-field > label{display:block;font-size:12.5px;font-weight:800;color:#ddd;margin-bottom:6px}
.v36-counter{float:right;font-size:11px;color:#888;font-weight:700}
.v36-field input[type="text"],.v36-field input[type="datetime-local"],.v36-field textarea{width:100%;padding:11px 13px;background:#161616;border:1px solid #2a2a2a;color:#fff;border-radius:8px;font-size:13px;font-family:inherit;box-sizing:border-box}
.v36-field input:focus,.v36-field textarea:focus{outline:none;border-color:#FFD700}
.v36-field textarea{resize:vertical;line-height:1.6}

/* 매장 검색 */
.v36-store-search{display:flex;gap:6px}
.v36-store-search input{flex:1}
.v36-store-search button{padding:11px 16px;background:#FFD700;color:#000;border:none;border-radius:8px;font-weight:900;font-size:12.5px;cursor:pointer;white-space:nowrap}
.v36-store-results{margin-top:8px;display:flex;flex-direction:column;gap:6px}
.v36-store-row{display:flex;align-items:center;gap:8px;padding:10px 12px;background:#0d0d0d;border:1px solid #1f1f1f;border-radius:8px;cursor:pointer}
.v36-store-row:hover{border-color:#FFD700}
.v36-store-row input[type="radio"]{accent-color:#FFD700}
.v36-store-info{display:flex;flex-direction:column;gap:1px;flex:1}
.v36-store-info strong{font-size:13px;color:#fff;font-weight:900}
.v36-store-info span{font-size:11.5px;color:#aaa}
.v36-store-info small{font-size:10.5px;color:#666}
.v36-store-loading,.v36-store-empty{font-size:12px;color:#888;padding:14px;text-align:center;background:#0d0d0d;border:1px dashed #1f1f1f;border-radius:8px}

/* 4중 증빙 업로드 그리드 */
.v36-upload-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:10px;margin-bottom:14px}
@media (max-width:520px){.v36-upload-grid{grid-template-columns:1fr}}
.v36-upload{padding:14px 12px;background:#0d0d0d;border:1.5px dashed #2a2a2a;border-radius:10px;text-align:center;transition:border-color .15s}
.v36-upload:hover{border-color:#FFD700}
.v36-up-icon{font-size:32px;margin-bottom:6px}
.v36-up-title{font-size:13px;font-weight:900;color:#fff;margin-bottom:3px}
.v36-up-meta{font-size:10.5px;color:#888;margin-bottom:10px}
.v36-up-btn{display:inline-block;padding:8px 14px;background:#FFD700;color:#000;border:none;border-radius:6px;font-size:11.5px;font-weight:900;cursor:pointer;position:relative}
.v36-up-btn input[type="file"]{position:absolute;inset:0;opacity:0;cursor:pointer}
.v36-up-status{margin-top:8px;font-size:11px;color:#888;font-weight:700}

.v36-info-box{padding:12px 14px;background:rgba(60,179,113,.06);border:1px solid rgba(60,179,113,.3);border-radius:8px;margin-bottom:14px}
.v36-info-box strong{display:block;font-size:12px;color:#3CB371;margin-bottom:4px;font-weight:900}
.v36-info-box p{font-size:11.5px;color:#ccc;margin:0;line-height:1.6}

.v36-filter-info{font-size:11px;color:#aaa;margin-top:4px}
.v36-confirm{display:flex;gap:8px;align-items:flex-start;cursor:pointer;font-size:12.5px;color:#ccc;line-height:1.55}
.v36-confirm input{accent-color:#FFD700;margin-top:2px}
.v36-confirm em{color:#888;font-style:normal}

/* 네비게이션 */
.v36-nav{display:flex;justify-content:space-between;gap:8px;margin-top:18px;padding-top:14px;border-top:1px solid #1f1f1f}
.v36-btn-ghost{padding:11px 16px;background:#1a1a1a;color:#ccc;border:1px solid #2a2a2a;border-radius:8px;font-weight:800;font-size:12.5px;cursor:pointer;text-decoration:none}
.v36-btn-primary{padding:11px 18px;background:#FFD700;color:#000;border:none;border-radius:8px;font-weight:900;font-size:13px;cursor:pointer;text-decoration:none}

/* 완료 */
.v36-success{text-align:center;padding:30px 18px}
.v36-success-icon{font-size:54px;margin-bottom:10px}
.v36-success h2{font-size:22px;color:#3CB371;margin:0 0 8px;font-weight:900}
.v36-success > p{font-size:13px;color:#ccc;line-height:1.65;margin:0 0 22px}
.v36-success-info{display:flex;flex-direction:column;gap:6px;background:#0d0d0d;border:1px solid #1f1f1f;border-radius:10px;padding:14px;margin:0 0 22px;text-align:left}
.v36-success-info > div{display:flex;justify-content:space-between;font-size:12px}
.v36-success-info span{color:#888;font-weight:700}
.v36-success-info strong{color:#FFD700;font-weight:900}
.v36-success-cta{display:flex;gap:8px;justify-content:center}
.v36-success-cta a{flex:1;max-width:200px;padding:12px;border-radius:8px;text-align:center;text-decoration:none;font-weight:900;font-size:13px}

/* ============================================================
   v36 — 영상 모달 (사연 상세 영상 카드 클릭 시)
   ============================================================ */
.v36-vid-bg{position:fixed;inset:0;background:rgba(0,0,0,.92);z-index:9600;display:flex;align-items:center;justify-content:center;padding:16px}
.v36-vid-bg[hidden]{display:none}
.v36-vid-box{max-width:600px;width:100%;background:#000;border:1.5px solid #FFD700;border-radius:14px;overflow:hidden;position:relative}
.v36-vid-close{position:absolute;top:10px;right:10px;width:34px;height:34px;background:rgba(0,0,0,.7);color:#fff;border:none;border-radius:50%;font-size:15px;cursor:pointer;z-index:3}
.v36-vid-video{width:100%;display:block;background:#000;max-height:70vh}
.v36-vid-info{padding:14px 16px;background:#0d0d0d;color:#ccc;border-top:1px solid #1f1f1f}
.v36-vid-title{font-size:13.5px;font-weight:900;color:#FFD700;margin-bottom:4px}
.v36-vid-meta{font-size:11.5px;color:#888;line-height:1.5}
.v36-vid-lock{padding:16px;background:linear-gradient(180deg,rgba(255,215,0,.08),#0d0d0d);border-top:1px solid #FFD700;text-align:center}
.v36-vid-lock-em{font-size:30px;margin-bottom:8px}
.v36-vid-lock h4{font-size:14px;font-weight:900;color:#FFD700;margin:0 0 4px}
.v36-vid-lock p{font-size:11.5px;color:#aaa;margin:0 0 12px;line-height:1.55}
.v36-vid-lock a{display:inline-block;padding:9px 18px;background:#FFD700;color:#000;text-decoration:none;border-radius:8px;font-weight:900;font-size:12px}

/* ============================================================
   v38 — C2C 결제 모달
   ============================================================ */
.v38-pay-bg{position:fixed;inset:0;background:rgba(0,0,0,.88);z-index:9700;display:flex;align-items:center;justify-content:center;padding:16px;overflow-y:auto}
.v38-pay-bg[hidden]{display:none}
.v38-pay-box{background:#0d0d0d;border:1.5px solid #FFD700;border-radius:16px;max-width:480px;width:100%;padding:0;position:relative;max-height:92vh;overflow-y:auto}
.v38-pay-close{position:absolute;top:12px;right:12px;background:rgba(255,255,255,.08);color:#fff;border:none;width:34px;height:34px;border-radius:50%;font-size:15px;cursor:pointer;z-index:2}

.v38-pay-head{padding:26px 22px 18px;text-align:center;border-bottom:1px solid rgba(255,215,0,.15)}
.v38-pay-em{font-size:40px;margin-bottom:6px}
.v38-pay-head h2{font-size:22px;font-weight:900;color:#FFD700;margin:0 0 4px}
.v38-pay-head p{font-size:11.5px;color:#aaa;margin:0}

.v38-pay-item{display:grid;grid-template-columns:48px 1fr auto;gap:10px;align-items:center;padding:14px 22px;background:#161616;border-bottom:1px solid #1f1f1f}
.v38-pay-thumb{width:48px;height:48px;background:#FFD700;color:#000;border-radius:8px;display:flex;align-items:center;justify-content:center;font-size:24px}
.v38-pay-info{min-width:0}
.v38-pay-title{font-size:14px;font-weight:900;color:#fff;margin-bottom:2px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.v38-pay-meta{font-size:11px;color:#888}
.v38-pay-price{font-size:18px;font-weight:900;color:#FFD700;white-space:nowrap}

.v38-pay-method{padding:18px 22px;border-bottom:1px solid #1f1f1f}
.v38-pay-method h3{font-size:12.5px;font-weight:900;color:#FFD700;margin:0 0 12px}
.v38-pm-row{display:grid;grid-template-columns:auto 28px 1fr auto;gap:8px;align-items:center;padding:11px 13px;background:#161616;border:1.5px solid #2a2a2a;border-radius:10px;cursor:pointer;margin-bottom:6px;transition:border-color .12s}
.v38-pm-row:has(input:checked){border-color:#FFD700;background:linear-gradient(180deg,rgba(255,215,0,.06),#161616)}
.v38-pm-row input{accent-color:#FFD700}
.v38-pm-em{font-size:22px;text-align:center}
.v38-pm-row strong{font-size:13px;font-weight:900;color:#fff}
.v38-pm-fast{font-size:10.5px;color:#888;padding:2px 8px;background:#1a1a1a;border-radius:4px;font-weight:700}

.v38-pay-info-box{padding:14px 22px;background:rgba(60,179,113,.04);border-bottom:1px solid #1f1f1f}
.v38-pay-info-box strong{display:block;font-size:11.5px;color:#3CB371;font-weight:900;margin-bottom:6px}
.v38-pay-info-box ul{margin:0;padding:0 0 0 16px;display:flex;flex-direction:column;gap:4px}
.v38-pay-info-box li{font-size:11px;color:#aaa;line-height:1.55}

.v38-pay-nav{display:flex;gap:6px;padding:14px 22px 22px}
.v38-pay-cancel{flex:0 0 auto;padding:12px 18px;background:#1a1a1a;color:#ccc;border:1px solid #2a2a2a;border-radius:8px;font-weight:800;font-size:13px;cursor:pointer}
.v38-pay-confirm{flex:1;padding:12px;background:linear-gradient(135deg,#FFD700,#FFA500);color:#000;border:none;border-radius:8px;font-weight:900;font-size:14px;cursor:pointer}
.v38-pay-confirm:disabled{opacity:.7;cursor:wait}

.v38-pay-success{position:fixed;inset:0;background:rgba(0,0,0,.88);z-index:9800;display:flex;align-items:center;justify-content:center;padding:16px}
.v38-pay-success[hidden]{display:none}
.v38-pay-success-box{background:#0d0d0d;border:1.5px solid #3CB371;border-radius:16px;padding:30px 24px;text-align:center;max-width:380px;width:100%}
.v38-pay-success-em{font-size:54px;margin-bottom:8px}
.v38-pay-success-box h2{font-size:22px;font-weight:900;color:#3CB371;margin:0 0 6px}
.v38-pay-success-box p{font-size:13px;color:#ccc;margin:0 0 18px}
.v38-pay-success-box button{padding:11px 28px;background:#3CB371;color:#fff;border:none;border-radius:8px;font-weight:900;font-size:13px;cursor:pointer}


/* ============================================================
   v38 — 본문 잠금 + 매수 CTA
   ============================================================ */
.v33-body{position:relative;overflow:hidden}
.v38-body-fade{display:block;width:100%;height:80px;position:relative;background:linear-gradient(180deg,transparent,#000);margin-top:-80px;pointer-events:none}

.v38-buy-cta{display:grid;grid-template-columns:1fr auto;gap:14px;align-items:center;padding:18px 20px;background:linear-gradient(135deg,rgba(255,215,0,.1),#0d0d0d);border:1.5px solid #FFD700;border-radius:14px;margin:18px 0 22px}
.v38-buy-info{display:flex;align-items:center;gap:12px}
.v38-buy-em{font-size:32px}
.v38-buy-title{font-size:14px;font-weight:900;color:#fff;margin-bottom:3px}
.v38-buy-meta{font-size:11.5px;color:#aaa;line-height:1.5}
.v38-buy-btn{padding:13px 20px;background:linear-gradient(135deg,#FFD700,#FFA500);color:#000;border:none;border-radius:10px;font-weight:900;font-size:14px;cursor:pointer;white-space:nowrap;box-shadow:0 4px 14px rgba(255,165,0,.3)}
.v38-buy-btn:hover{filter:brightness(1.08);transform:translateY(-1px)}

@media (max-width:480px){
  .v38-buy-cta{grid-template-columns:1fr;text-align:center}
  .v38-buy-info{justify-content:center}
  .v38-buy-btn{width:100%}
}


/* ============================================================
   v39 — 마이페이지 정산 통계 + 매수 내역
   ============================================================ */

/* 정산 통계 */
.v39-stats{margin:18px 0}
.v39-stats-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:8px;margin-bottom:14px}
.v39-stat{padding:14px 16px;background:#0d0d0d;border:1px solid #1f1f1f;border-radius:12px;display:flex;flex-direction:column;gap:3px}
.v39-stat-label{font-size:10.5px;color:#888;font-weight:800}
.v39-stat-big{font-size:22px;font-weight:900;color:#FFD700;line-height:1.2}
.v39-stat-meta{font-size:11px;color:#aaa}
.v39-stat-meta strong{color:#fff;font-weight:900}
.v39-stat-buy{border-left:3px solid #3CB371}
.v39-stat-buy .v39-stat-big{color:#3CB371}
.v39-stat-earn{border-left:3px solid #FFD700}
.v39-stat-tax{border-left:3px solid #FF6B35}
.v39-stat-tax .v39-stat-big{color:#FF6B35;font-size:18px}
.v39-stat-grade{border-left:3px solid #CD7F32}
.v39-stat-grade .v39-stat-big{font-size:18px;color:#CD7F32}

.v39-withdraw-cta{display:block;padding:14px;background:linear-gradient(135deg,#FFD700,#FFA500);color:#000;border-radius:10px;text-align:center;font-weight:900;font-size:13.5px;text-decoration:none;box-shadow:0 4px 12px rgba(255,165,0,.3)}

/* 매수 내역 */
.v39-purchase{margin:18px 0}
.v39-pur-list{display:flex;flex-direction:column;gap:6px}
.v39-pur-row{display:grid;grid-template-columns:auto 1fr auto;gap:10px;align-items:center;padding:12px 14px;background:#0d0d0d;border:1px solid #1f1f1f;border-radius:10px;text-decoration:none;color:inherit;transition:border-color .12s}
.v39-pur-row:hover{border-color:#FFD700}
.v39-pur-type{font-size:11px;font-weight:900;color:#FFD700;padding:3px 8px;background:#1a1a1a;border-radius:4px;white-space:nowrap}
.v39-pur-body strong{display:block;font-size:13px;color:#fff;font-weight:900;margin-bottom:2px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.v39-pur-body span{font-size:11px;color:#888}
.v39-pur-price{font-size:13px;font-weight:900;color:#3CB371;white-space:nowrap}
.v39-pur-empty{padding:24px;text-align:center;color:#888;font-size:12.5px;background:#0d0d0d;border:1px dashed #1f1f1f;border-radius:10px;line-height:1.7}
.v39-pur-empty a{color:#FFD700;text-decoration:none;font-weight:900}

/* ============================================================
   v40 — 출금 페이지 + 사장님 대시보드
   ============================================================ */

/* 출금 */
.v40-withdraw-main{max-width:680px;margin:0 auto;padding:20px 18px 60px}
.v40-w-head{margin-bottom:18px}
.v40-w-eyebrow{font-size:11.5px;color:#FFD700;font-weight:900;letter-spacing:.04em;margin:14px 0 10px}
.v40-w-h1{font-size:clamp(22px,5.4vw,28px);font-weight:900;line-height:1.3;color:#fff;margin:0 0 10px}
.v40-w-sub{font-size:12.5px;color:#aaa;line-height:1.65;margin:0}

.v40-w-balance{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-bottom:22px;padding:16px;background:linear-gradient(135deg,rgba(255,215,0,.06),#0d0d0d);border:1px solid rgba(255,215,0,.2);border-radius:12px}
.v40-wb-cell{text-align:center}
.v40-wb-label{display:block;font-size:10.5px;color:#888;font-weight:800;margin-bottom:4px}
.v40-wb-big{display:block;font-size:18px;font-weight:900;color:#FFD700}
.v40-wb-tax{color:#FF6B35}

.v40-w-form{display:flex;flex-direction:column;gap:14px}
.v40-w-field{display:flex;flex-direction:column;gap:6px}
.v40-w-field > label{font-size:12.5px;font-weight:800;color:#ddd}
.v40-w-field > label small{color:#888;font-weight:700;margin-left:6px}
.v40-w-field input,.v40-w-field select{padding:11px 13px;background:#161616;border:1px solid #2a2a2a;color:#fff;border-radius:8px;font-size:13px;font-family:inherit}
.v40-w-field input:focus,.v40-w-field select:focus{outline:none;border-color:#FFD700}
.v40-w-field input[readonly]{background:#0a0a0a;color:#888}
.v40-w-amt-meta{display:flex;justify-content:space-between;align-items:center;font-size:11px;color:#888}
.v40-w-amt-meta button{padding:4px 10px;background:#FFD700;color:#000;border:none;border-radius:5px;font-weight:900;font-size:11px;cursor:pointer}
.v40-info-box{padding:14px 16px;background:rgba(60,179,113,.06);border:1px solid rgba(60,179,113,.3);border-radius:8px}
.v40-info-box strong{display:block;font-size:12px;color:#3CB371;font-weight:900;margin-bottom:8px}
.v40-info-box ul{margin:0;padding:0 0 0 16px;display:flex;flex-direction:column;gap:5px}
.v40-info-box li{font-size:11.5px;color:#ccc;line-height:1.6}
.v40-w-submit{padding:15px;background:linear-gradient(135deg,#FFD700,#FFA500);color:#000;border:none;border-radius:10px;font-weight:900;font-size:14px;cursor:pointer;box-shadow:0 4px 14px rgba(255,165,0,.3)}

/* 사장님 대시보드 */
.v40-mer-main{max-width:880px;margin:0 auto;padding:20px 18px 60px}
.v40-mer-head{margin-bottom:16px}
.v40-mer-eyebrow{font-size:11.5px;color:#FFD700;font-weight:900;letter-spacing:.04em;margin:0 0 8px}
.v40-mer-h1{font-size:clamp(20px,5vw,26px);font-weight:900;line-height:1.35;color:#fff;margin:0 0 6px}
.v40-mer-plan{display:inline-block;padding:3px 10px;background:rgba(255,215,0,.15);color:#FFD700;font-size:11.5px;font-weight:900;border-radius:6px;border:1px solid rgba(255,215,0,.3);margin-left:4px}
.v40-mer-sub{font-size:12px;color:#aaa;line-height:1.6;margin:0}

.v40-mer-tickers{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;margin:16px 0 22px}
@media (max-width:600px){.v40-mer-tickers{grid-template-columns:repeat(2,1fr)}}
.v40-mt{padding:14px;background:#0d0d0d;border:1px solid #1f1f1f;border-radius:10px}
.v40-mt-label{display:block;font-size:10.5px;color:#888;font-weight:800;margin-bottom:3px}
.v40-mt-big{display:block;font-size:22px;font-weight:900;color:#FFD700;line-height:1.2}
.v40-mt-big small{font-size:11px;color:#aaa;margin-left:2px}
.v40-mt-meta{display:block;font-size:11px;color:#888;margin-top:3px}

.v40-mer-sec{margin:22px 0}
.v40-mer-sh{font-size:15px;font-weight:900;color:#fff;margin:0 0 12px;display:flex;align-items:center;gap:8px}

/* 후기 리스트 */
.v40-mer-list{display:flex;flex-direction:column;gap:6px}
.v40-mer-row{display:grid;grid-template-columns:auto 1fr auto;gap:10px;align-items:center;padding:12px 14px;background:#0d0d0d;border:1px solid #1f1f1f;border-radius:10px}
.v40-mer-r-grade{padding:4px 9px;border-radius:6px;font-size:11px;font-weight:900;white-space:nowrap}
.v40-mer-r-grade.g-sung{background:#C0C0C0;color:#000}
.v40-mer-r-grade.g-sin{background:#CD7F32;color:#fff}
.v40-mer-r-grade.g-jeong{background:#3CB371;color:#fff}
.v40-mer-r-grade.g-si{background:#A9A9A9;color:#fff}
.v40-mer-r-body strong{display:block;font-size:13px;font-weight:900;color:#fff;margin-bottom:2px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.v40-mer-r-body span{font-size:11px;color:#888}
.v40-mer-r-link{padding:6px 12px;background:#FFD700;color:#000;text-decoration:none;border-radius:6px;font-weight:900;font-size:11.5px;white-space:nowrap}

/* AI 답글 */
.v40-mer-ai{padding:16px;background:#0d0d0d;border:1px solid #1f1f1f;border-radius:12px;display:flex;flex-direction:column;gap:12px}
.v40-mer-ai-input label{display:block;font-size:11.5px;color:#888;font-weight:800;margin-bottom:5px}
.v40-mer-ai-input select{width:100%;padding:9px 11px;background:#161616;border:1px solid #2a2a2a;color:#fff;border-radius:8px;font-size:13px}
.v40-mer-ai-tones{display:grid;grid-template-columns:repeat(3,1fr);gap:6px}
.v40-tone-btn{padding:10px;background:#161616;border:1.5px solid #2a2a2a;color:#fff;border-radius:8px;font-weight:800;font-size:12px;cursor:pointer}
.v40-tone-btn:hover{border-color:#FFD700}
.v40-tone-warm:hover{border-color:#FF9080}
.v40-tone-formal:hover{border-color:#3CB371}
.v40-tone-casual:hover{border-color:#FFD700}
.v40-mer-ai-out{padding:14px 16px;background:linear-gradient(135deg,rgba(255,215,0,.04),#0a0a0a);border:1.5px dashed rgba(255,215,0,.3);border-radius:10px}
.v40-mer-ai-out strong{display:block;font-size:11.5px;color:#FFD700;font-weight:900;margin-bottom:8px}
.v40-mer-ai-out p{font-size:13px;color:#ccc;line-height:1.7;margin:0 0 12px}
.v40-mer-ai-cta{display:flex;gap:6px}
.v40-mer-ai-edit,.v40-mer-ai-post{flex:1;padding:9px;border:none;border-radius:8px;font-weight:900;font-size:12px;cursor:pointer}
.v40-mer-ai-edit{background:#1a1a1a;color:#ccc;border:1px solid #2a2a2a}
.v40-mer-ai-post{background:#FFD700;color:#000}

/* 비교 리포트 */
.v40-mer-compare{display:flex;flex-direction:column;gap:10px;padding:14px;background:#0d0d0d;border:1px solid #1f1f1f;border-radius:12px}
.v40-mc-row{display:grid;grid-template-columns:120px 1fr 100px;gap:10px;align-items:center}
@media (max-width:600px){.v40-mc-row{grid-template-columns:1fr;text-align:center}}
.v40-mc-label{font-size:12px;color:#fff;font-weight:800}
.v40-mc-bar{position:relative;height:24px;background:#1a1a1a;border-radius:6px;overflow:hidden}
.v40-mc-fill{height:100%;background:#FFD700;color:#000;font-size:11px;font-weight:900;display:flex;align-items:center;justify-content:flex-end;padding-right:8px;border-radius:6px}
.v40-mc-meta{font-size:10.5px;color:#888;text-align:right}

/* SaaS 플랜 */
.v40-mer-plans{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}
@media (max-width:600px){.v40-mer-plans{grid-template-columns:1fr}}
.v40-plan{padding:16px;background:#0d0d0d;border:1.5px solid #1f1f1f;border-radius:12px;position:relative}
.v40-plan-active{border-color:#FFD700;background:linear-gradient(180deg,rgba(255,215,0,.06),#0d0d0d)}
.v40-plan-badge{position:absolute;top:-8px;left:12px;padding:3px 10px;background:#FFD700;color:#000;border-radius:6px;font-size:10px;font-weight:900}
.v40-plan h3{font-size:18px;font-weight:900;color:#fff;margin:6px 0 6px}
.v40-plan p{font-size:11.5px;color:#aaa;line-height:1.6;margin:0 0 10px}
.v40-plan strong{display:block;font-size:18px;font-weight:900;color:#FFD700;margin-bottom:10px}
.v40-plan strong small{font-size:12px;color:#aaa;margin-left:2px}
.v40-plan-up{width:100%;padding:9px;background:#1a1a1a;color:#fff;border:1px solid #2a2a2a;border-radius:7px;font-weight:900;font-size:12px;cursor:pointer}
.v40-plan-up:hover{background:#FFD700;color:#000;border-color:#FFD700}


/* ============================================================
   v41 — 거래소 검색 강화 (통합 검색바 + 필터 + 자동완성 + 신뢰 지표)
   ============================================================ */

.v41-search-wrap{margin:14px 0;padding:14px;background:linear-gradient(135deg,rgba(255,215,0,.04),#0a0a0a);border:1px solid rgba(255,215,0,.2);border-radius:14px}

.v41-search-bar{display:flex;align-items:center;gap:8px;padding:10px 14px;background:#0d0d0d;border:1.5px solid #2a2a2a;border-radius:10px;transition:border-color .15s}
.v41-search-bar:focus-within{border-color:#FFD700;box-shadow:0 0 0 3px rgba(255,215,0,.1)}
.v41-sb-icon{font-size:16px;color:#FFD700}
.v41-search-bar input{flex:1;background:transparent;border:none;color:#fff;font-size:14px;font-family:inherit;outline:none}
.v41-search-bar input::placeholder{color:#666}
.v41-sb-clear,.v41-sb-filter{background:#1a1a1a;border:1px solid #2a2a2a;color:#aaa;width:30px;height:30px;border-radius:6px;cursor:pointer;font-size:13px}
.v41-sb-filter:hover{background:#FFD700;color:#000;border-color:#FFD700}

/* 자동완성 */
.v41-suggest{margin-top:6px;background:#0d0d0d;border:1px solid #2a2a2a;border-radius:10px;overflow:hidden;max-height:340px;overflow-y:auto}
.v41-sg-head{padding:10px 14px 6px;font-size:10.5px;font-weight:900;color:#FFD700;letter-spacing:.04em;background:#0a0a0a}
.v41-sg-item{padding:10px 14px;cursor:pointer;font-size:13px;color:#ccc;border-bottom:1px solid #161616;display:flex;align-items:center;gap:10px;transition:background .12s}
.v41-sg-item:hover{background:#1a1a1a;color:#fff}
.v41-sg-item strong{color:#FFD700;font-weight:900;min-width:14px}
.v41-sg-item span{font-size:11px;color:#888;margin-left:auto}
.v41-sg-popular strong{background:#FFD700;color:#000;border-radius:50%;width:18px;height:18px;display:flex;align-items:center;justify-content:center;font-size:11px}
.v41-sg-match{background:linear-gradient(90deg,rgba(255,215,0,.03),transparent)}
.v41-sg-direct{background:#1a1a1a;font-weight:700;color:#FFD700}

/* 빠른 chip */
.v41-quick-chips{display:flex;flex-wrap:wrap;gap:6px;margin-top:10px}
.v41-qc{padding:7px 12px;background:#1a1a1a;border:1px solid #2a2a2a;color:#ccc;border-radius:14px;font-size:11.5px;font-weight:800;cursor:pointer;transition:all .12s}
.v41-qc:hover{border-color:#FFD700;color:#FFD700}
.v41-qc.active{background:#FFD700;color:#000;border-color:#FFD700}

/* 필터 패널 */
.v41-filter-panel{margin-top:10px;padding:14px;background:#0d0d0d;border:1px solid #2a2a2a;border-radius:10px;display:flex;flex-direction:column;gap:12px}
.v41-fp-row{display:flex;flex-direction:column;gap:6px}
.v41-fp-row > label{font-size:12px;font-weight:800;color:#FFD700}
.v41-fp-row input[type="range"]{width:100%;accent-color:#FFD700}
.v41-fp-meta{font-size:11px;color:#aaa}
.v41-fp-meta strong{color:#FFD700;font-weight:900}
.v41-fp-grades{display:flex;flex-wrap:wrap;gap:6px}
.v41-fp-grades label{display:flex;align-items:center;gap:5px;padding:6px 10px;background:#1a1a1a;border:1px solid #2a2a2a;border-radius:6px;font-size:11.5px;color:#ccc;cursor:pointer}
.v41-fp-grades label:hover{border-color:#FFD700}
.v41-fp-grades input{accent-color:#FFD700}
.v41-fp-row select{padding:8px 11px;background:#161616;border:1px solid #2a2a2a;color:#fff;border-radius:6px;font-size:12.5px}

/* 컨텍스트 표시 */
.v41-context{margin-top:10px;padding:10px 14px;background:rgba(60,179,113,.08);border:1px solid rgba(60,179,113,.3);border-radius:8px;font-size:12px;color:#3CB371}
.v41-context strong{color:#FFD700;font-weight:900}

/* 신뢰 지표 (호가창 카드) */
.v41-trust{display:inline-flex;align-items:center;gap:5px;margin-left:6px;padding:2px 7px;background:rgba(255,107,53,.1);border:1px solid rgba(255,107,53,.3);border-radius:5px;font-size:10.5px;color:#FF6B35;font-weight:700}
.v41-trust strong{color:#FFD700}
.v41-fav-btn{cursor:pointer;font-size:11px;opacity:.4;transition:all .15s}
.v41-fav-btn:hover{opacity:1;transform:scale(1.15)}
.v41-fav-btn.on{opacity:1;color:#FFD700;filter:drop-shadow(0 0 4px rgba(255,215,0,.5))}


/* ============================================================
   v42 — AI 추천 띠 + OCR 카메라
   ============================================================ */

/* 추천 섹션 */
.v42-reco{margin:22px 0;padding:18px;background:linear-gradient(135deg,rgba(60,179,113,.06),#0a0a0a);border:1px solid rgba(60,179,113,.25);border-radius:14px}
.v42-reco-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:14px;flex-wrap:wrap;gap:6px}
.v42-reco-head h3{font-size:15px;font-weight:900;color:#3CB371;margin:0}
.v42-reco-head span{font-size:11px;color:#888;font-weight:700}
.v42-reco-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:10px}
.v42-reco-card{display:flex;flex-direction:column;gap:6px;padding:14px;background:#0d0d0d;border:1px solid #1f1f1f;border-radius:10px;text-decoration:none;color:inherit;transition:all .15s}
.v42-reco-card:hover{border-color:#3CB371;transform:translateY(-2px)}
.v42-rc-head{display:flex;justify-content:space-between;align-items:center}
.v42-rc-type{font-size:10.5px;color:#FFD700;font-weight:900;padding:2px 7px;background:#1a1a1a;border-radius:4px}
.v42-rc-persona{font-size:10px;color:#aaa;font-weight:700}
.v42-rc-title{font-size:13px;font-weight:900;color:#fff;line-height:1.4;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.v42-rc-meta{display:flex;justify-content:space-between;align-items:center;gap:5px;flex-wrap:wrap}
.v42-rc-grade{font-size:10px;padding:2px 7px;border-radius:5px;font-weight:900}
.v42-rc-grade.g-jin{background:#FFD700;color:#000}
.v42-rc-grade.g-sung{background:#C0C0C0;color:#000}
.v42-rc-grade.g-sin{background:#CD7F32;color:#fff}
.v42-rc-grade.g-jeong{background:#3CB371;color:#fff}
.v42-rc-grade.g-si{background:#A9A9A9;color:#fff}
.v42-rc-price{font-size:13px;font-weight:900;color:#FFD700}
.v42-rc-stats{display:flex;gap:10px;font-size:10.5px;color:#888;padding-top:6px;border-top:1px solid #161616}

/* OCR 모달 */
.v42-ocr-bg{position:fixed;inset:0;background:rgba(0,0,0,.92);z-index:9900;display:flex;align-items:center;justify-content:center;padding:16px}
.v42-ocr-box{background:#0d0d0d;border:1.5px solid #FFD700;border-radius:14px;padding:18px;max-width:480px;width:100%;position:relative;display:flex;flex-direction:column;gap:10px}
.v42-ocr-close{position:absolute;top:10px;right:10px;background:rgba(255,255,255,.08);color:#fff;border:none;width:30px;height:30px;border-radius:50%;font-size:14px;cursor:pointer;z-index:2}
.v42-ocr-box h3{font-size:16px;font-weight:900;color:#FFD700;margin:0;text-align:center}
.v42-ocr-box > p{font-size:11.5px;color:#aaa;text-align:center;margin:0;line-height:1.5}
.v42-ocr-box video{width:100%;height:240px;background:#000;border-radius:10px;object-fit:cover}
.v42-ocr-frame{position:absolute;top:96px;left:30px;right:30px;height:220px;border:2px dashed rgba(255,215,0,.5);border-radius:10px;pointer-events:none}
.v42-ocr-status{font-size:11.5px;color:#FFD700;font-weight:800;text-align:center;padding:8px;background:rgba(255,215,0,.06);border-radius:6px}
.v42-ocr-result{padding:14px;background:rgba(60,179,113,.06);border:1px solid rgba(60,179,113,.3);border-radius:10px;display:flex;flex-direction:column;gap:6px}
.v42-ocr-result strong{color:#3CB371;font-size:13px}
.v42-or-row{display:flex;justify-content:space-between;font-size:12px}
.v42-or-row span{color:#888}
.v42-or-row strong{color:#fff;font-size:12px}
.v42-or-apply{margin-top:8px;padding:10px;background:#FFD700;color:#000;border:none;border-radius:8px;font-weight:900;font-size:12.5px;cursor:pointer}
.v42-ocr-nav{display:flex;gap:6px}
.v42-ocr-shot{flex:1;padding:11px;background:#FFD700;color:#000;border:none;border-radius:8px;font-weight:900;font-size:13px;cursor:pointer}
.v42-ocr-shot:disabled{opacity:.6;cursor:wait}

/* OCR 버튼 (사연 작성 매장 검색 옆) */
.v42-ocr-btn{padding:11px 14px;background:linear-gradient(135deg,#FFD700,#FFA500);color:#000;border:none;border-radius:8px;font-weight:900;font-size:12px;cursor:pointer;white-space:nowrap}
.v42-ocr-btn:hover{filter:brightness(1.08)}


/* ============================================================
   v43 — 메인 워터마크 배경 (DALL-E 일러스트)
   ============================================================ */

/* 메인 HERO 배경 (강 워터마크) */
.v43-hero-bg{position:relative;isolation:isolate;overflow:hidden}
.v43-hero-bg::before{
  content:'';
  position:absolute;inset:-20px -10px;
  background-image:url('/img/hero-bg.png');
  background-size:cover;
  background-position:center;
  opacity:.22;
  mix-blend-mode:luminosity;
  z-index:-2;
  filter:blur(.5px) saturate(.9);
}
.v43-hero-bg::after{
  content:'';
  position:absolute;inset:0;
  background:linear-gradient(180deg, rgba(0,0,0,.55) 0%, rgba(0,0,0,.78) 50%, rgba(0,0,0,.95) 100%);
  z-index:-1;
  pointer-events:none;
}

/* 헌법 4종 상단 (약 워터마크) */
.v43-legal-bg{position:relative;isolation:isolate}
.v43-legal-bg::before{
  content:'';
  position:fixed;
  top:0;left:0;right:0;height:60vh;
  background-image:url('/img/hero-bg.png');
  background-size:cover;
  background-position:center top;
  opacity:.08;
  mix-blend-mode:screen;
  z-index:-2;
  pointer-events:none;
  -webkit-mask-image:linear-gradient(180deg, #000 0%, transparent 100%);
  mask-image:linear-gradient(180deg, #000 0%, transparent 100%);
}

/* 모바일 — 더 약하게 + scroll attachment */
@media (max-width:780px){
  .v43-hero-bg::before{opacity:.14;background-attachment:scroll}
  .v43-legal-bg::before{opacity:.06;height:40vh;background-attachment:scroll}
}

/* 이미지 파일 미박음 시 폴백 (그라데이션) */
@supports (background-image: url('/img/hero-bg.png')){
  .v43-hero-bg::before{background-color:#000}
}


/* ============================================================
   v46 — 알림센터 (벨 + 드롭다운 + 풀 리스트)
   ============================================================ */
.v46-bell-wrap { position:relative; margin-right:8px; }
.v46-bell {
  background:transparent; border:1px solid rgba(255,255,255,.15);
  color:#fff; font-size:18px; width:38px; height:38px;
  border-radius:50%; cursor:pointer; position:relative;
  display:inline-flex; align-items:center; justify-content:center;
  transition:background .15s ease;
}
.v46-bell:hover { background:rgba(255,255,255,.06); }
.v46-bell-badge {
  position:absolute; top:-4px; right:-4px;
  background:#FF4757; color:#fff;
  font-size:10px; font-weight:800;
  min-width:18px; height:18px; padding:0 5px;
  border-radius:9px; line-height:18px;
  display:inline-flex; align-items:center; justify-content:center;
}
.v46-bell-dd {
  position:absolute; top:calc(100% + 8px); right:0;
  width:min(360px, calc(100vw - 32px));
  background:#0F0F0F; border:1px solid rgba(255,255,255,.12);
  border-radius:12px; box-shadow:0 12px 40px rgba(0,0,0,.6);
  z-index:1000; max-height:70vh; overflow-y:auto;
}
.v46-bell-head {
  display:flex; align-items:center; justify-content:space-between;
  padding:14px 16px; border-bottom:1px solid rgba(255,255,255,.08);
  position:sticky; top:0; background:#0F0F0F; z-index:2;
}
.v46-bell-head strong { color:#fff; font-size:15px; }
.v46-bell-acts { display:flex; gap:8px; align-items:center; }
.v46-bell-mark {
  background:transparent; border:1px solid rgba(255,255,255,.15);
  color:#bbb; font-size:11px; padding:5px 10px; border-radius:6px;
  cursor:pointer;
}
.v46-bell-mark:hover { color:#fff; border-color:rgba(255,255,255,.3); }
.v46-bell-set {
  color:#888; text-decoration:none; font-size:14px;
}
.v46-bell-row {
  display:flex; gap:12px; padding:12px 16px;
  border-bottom:1px solid rgba(255,255,255,.05);
  cursor:pointer; position:relative;
  transition:background .12s ease;
}
.v46-bell-row:hover { background:rgba(255,255,255,.03); }
.v46-bell-unread { background:rgba(255,215,0,.04); }
.v46-bell-unread::before {
  content:''; position:absolute; left:6px; top:50%;
  width:4px; height:4px; background:#FFD700; border-radius:50%;
  transform:translateY(-50%);
}
.v46-bell-em {
  width:36px; height:36px; border-radius:50%;
  display:flex; align-items:center; justify-content:center;
  font-size:18px; flex-shrink:0;
}
.v46-bell-body { flex:1; min-width:0; }
.v46-bell-body strong {
  display:block; color:#fff; font-size:13px; font-weight:700;
  margin-bottom:3px; white-space:nowrap; overflow:hidden; text-overflow:ellipsis;
}
.v46-bell-body p {
  color:#bbb; font-size:12px; margin:0; line-height:1.5;
  display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical;
  overflow:hidden;
}
.v46-bell-time { color:#666; font-size:11px; margin-top:4px; display:block; }
.v46-bell-del {
  background:transparent; border:none; color:#555;
  font-size:14px; cursor:pointer; padding:4px;
  align-self:flex-start;
}
.v46-bell-del:hover { color:#FF6B35; }
.v46-bell-empty {
  padding:32px 16px; text-align:center; color:#888; font-size:13px;
}
.v46-bell-foot {
  display:block; padding:14px 16px; text-align:center;
  color:#FFD700; text-decoration:none; font-size:13px; font-weight:700;
  border-top:1px solid rgba(255,255,255,.08);
  position:sticky; bottom:0; background:#0F0F0F;
}
.v46-bell-foot:hover { color:#fff; }

/* ===== 풀 리스트 페이지 ===== */
.v46-notif-main { max-width:760px; margin:0 auto; padding:24px 16px 80px; }
.v46-notif-head { margin-bottom:24px; }
.v46-notif-eyebrow { color:#FFD700; font-size:12px; font-weight:800; letter-spacing:1px; margin-bottom:6px; }
.v46-notif-h1 { color:#fff; font-size:28px; font-weight:800; margin:0 0 8px; }
.v46-notif-sub { color:#999; font-size:14px; line-height:1.6; margin:0 0 16px; }
.v46-notif-acts { display:flex; gap:8px; flex-wrap:wrap; }
.v46-notif-btn {
  background:rgba(255,255,255,.06); border:1px solid rgba(255,255,255,.12);
  color:#fff; font-size:13px; padding:8px 14px; border-radius:8px;
  cursor:pointer; text-decoration:none; transition:background .12s;
}
.v46-notif-btn:hover { background:rgba(255,255,255,.1); }
.v46-notif-btn-warn { border-color:rgba(255,107,53,.3); color:#FF6B35; }
.v46-notif-btn-warn:hover { background:rgba(255,107,53,.1); }

.v46-notif-filter {
  display:flex; gap:6px; overflow-x:auto; padding-bottom:8px;
  margin-bottom:16px; scrollbar-width:none;
}
.v46-notif-filter::-webkit-scrollbar { display:none; }
.v46-nf-chip {
  background:rgba(255,255,255,.04); border:1px solid rgba(255,255,255,.08);
  color:#bbb; font-size:12px; padding:8px 14px; border-radius:18px;
  cursor:pointer; white-space:nowrap; transition:all .12s;
}
.v46-nf-chip:hover { color:#fff; border-color:rgba(255,255,255,.2); }
.v46-nf-active {
  background:#FFD700; border-color:#FFD700; color:#000; font-weight:700;
}

.v46-notif-list { display:flex; flex-direction:column; gap:8px; }
.v46-notif-loading { color:#888; text-align:center; padding:40px; }
.v46-notif-row {
  display:flex; gap:14px; padding:16px;
  background:rgba(255,255,255,.03); border:1px solid rgba(255,255,255,.06);
  border-radius:12px; text-decoration:none; align-items:center;
  position:relative; transition:background .12s;
}
.v46-notif-row:hover { background:rgba(255,255,255,.06); }
.v46-notif-unread { background:rgba(255,215,0,.05); border-color:rgba(255,215,0,.15); }
.v46-notif-unread::before {
  content:''; position:absolute; left:6px; top:50%;
  width:6px; height:6px; background:#FFD700; border-radius:50%;
  transform:translateY(-50%);
}
.v46-notif-em {
  width:44px; height:44px; border-radius:50%;
  display:flex; align-items:center; justify-content:center;
  font-size:20px; flex-shrink:0;
}
.v46-notif-body { flex:1; min-width:0; }
.v46-notif-meta { display:flex; gap:8px; align-items:center; margin-bottom:6px; }
.v46-notif-tag {
  font-size:10px; font-weight:800; padding:2px 8px; border-radius:6px;
  letter-spacing:.3px;
}
.v46-notif-time { color:#666; font-size:11px; }
.v46-notif-body strong {
  display:block; color:#fff; font-size:14px; font-weight:700; margin-bottom:4px;
}
.v46-notif-body p {
  color:#bbb; font-size:13px; margin:0; line-height:1.6;
}
.v46-notif-amt {
  display:inline-block; margin-top:6px;
  background:rgba(255,215,0,.15); color:#FFD700;
  font-size:12px; font-weight:800; padding:3px 10px; border-radius:6px;
}
.v46-notif-arrow { color:#555; font-size:20px; }
.v46-notif-empty {
  padding:60px 20px; text-align:center;
  background:rgba(255,255,255,.02); border:1px dashed rgba(255,255,255,.08);
  border-radius:12px;
}
.v46-notif-empty-em { font-size:48px; margin-bottom:12px; }
.v46-notif-empty h3 { color:#fff; font-size:18px; margin:0 0 8px; }
.v46-notif-empty p { color:#888; font-size:13px; margin:0; }

/* ===== settings-notify 페이지 ===== */
.v46-set-main { max-width:680px; margin:0 auto; padding:24px 16px 80px; }
.v46-set-head { margin-bottom:24px; }
.v46-set-h1 { color:#fff; font-size:26px; font-weight:800; margin:8px 0; }
.v46-set-sub { color:#999; font-size:14px; line-height:1.6; }
.v46-set-section {
  background:rgba(255,255,255,.03); border:1px solid rgba(255,255,255,.06);
  border-radius:12px; padding:18px; margin-bottom:14px;
}
.v46-set-sh { color:#fff; font-size:16px; font-weight:700; margin:0 0 4px; }
.v46-set-shd { color:#999; font-size:12px; margin:0 0 14px; }
.v46-set-row {
  display:flex; justify-content:space-between; align-items:center;
  padding:14px 0; border-top:1px solid rgba(255,255,255,.05);
}
.v46-set-row:first-child { border-top:none; padding-top:0; }
.v46-set-rl strong { display:block; color:#fff; font-size:14px; font-weight:600; }
.v46-set-rl span { display:block; color:#888; font-size:12px; margin-top:3px; }
.v46-set-toggle {
  width:44px; height:24px; border-radius:12px;
  background:rgba(255,255,255,.1); position:relative; cursor:pointer;
  transition:background .15s;
}
.v46-set-toggle::after {
  content:''; position:absolute; top:2px; left:2px;
  width:20px; height:20px; background:#fff; border-radius:50%;
  transition:transform .15s;
}
.v46-set-toggle.on { background:#FFD700; }
.v46-set-toggle.on::after { transform:translateX(20px); }

.v46-set-select {
  background:rgba(255,255,255,.06); border:1px solid rgba(255,255,255,.12);
  color:#fff; padding:8px 12px; border-radius:8px; font-size:13px;
  cursor:pointer; min-width:120px;
}
.v46-set-time {
  display:flex; gap:8px; align-items:center;
}
.v46-set-time input {
  background:rgba(255,255,255,.06); border:1px solid rgba(255,255,255,.12);
  color:#fff; padding:6px 10px; border-radius:6px; font-size:13px;
  width:60px; text-align:center;
}
.v46-set-save {
  width:100%; padding:14px; background:#FFD700; color:#000;
  font-size:15px; font-weight:800; border:none; border-radius:10px;
  cursor:pointer; margin-top:8px;
}
.v46-set-save:hover { background:#FFE85E; }

/* ============================================================
   v47 — 완성도 박음 (98% 목표)
   ============================================================ */

/* 디자인 토큰 (CSS 변수 통일) */
:root {
  --v47-touch: 44px;          /* 모바일 터치 최소 영역 */
  --v47-radius-sm: 6px;
  --v47-radius: 10px;
  --v47-radius-lg: 16px;
  --v47-gap-xs: 6px;
  --v47-gap-sm: 10px;
  --v47-gap: 16px;
  --v47-gap-lg: 24px;
  --v47-gap-xl: 40px;
  --v47-shadow: 0 4px 20px rgba(0,0,0,.4);
  --v47-shadow-lg: 0 12px 40px rgba(0,0,0,.6);
}

/* 터치 영역 44×44px 보장 (모바일 a11y) */
@media (max-width: 768px) {
  button, .btn-role, .btn-primary, .btn-ghost, .btn-outline,
  .v16-chip, .v32-persona, .v47-err-btn, .v46-notif-btn {
    min-height: var(--v47-touch);
  }
}

/* focus-visible (키보드 네비게이션) */
*:focus-visible {
  outline: 2px solid #FFD700;
  outline-offset: 2px;
  border-radius: 4px;
}

/* ===== 404·500 에러 페이지 ===== */
.v47-err-main {
  min-height: calc(100vh - 200px);
  display: flex; align-items: center; justify-content: center;
  padding: 40px 16px;
}
.v47-err-box {
  text-align: center; max-width: 480px; width: 100%;
}
.v47-err-code {
  font-size: clamp(80px, 18vw, 140px); font-weight: 900;
  color: #FFD700; line-height: 1; margin-bottom: 16px;
  text-shadow: 0 0 40px rgba(255,215,0,.3);
}
.v47-err-code-warn { color: #FF6B35; text-shadow: 0 0 40px rgba(255,107,53,.3); }
.v47-err-h1 { color: #fff; font-size: 24px; font-weight: 800; margin: 0 0 12px; }
.v47-err-sub { color: #bbb; font-size: 14px; line-height: 1.6; margin-bottom: 32px; }
.v47-err-nav {
  display: flex; flex-wrap: wrap; gap: 10px;
  justify-content: center; margin-bottom: 28px;
}
.v47-err-btn {
  background: rgba(255,255,255,.06); border: 1px solid rgba(255,255,255,.12);
  color: #fff; padding: 12px 18px; border-radius: var(--v47-radius);
  text-decoration: none; font-size: 13px; cursor: pointer;
  transition: background .12s;
}
.v47-err-btn:hover { background: rgba(255,255,255,.1); }
.v47-err-btn-primary {
  background: #FFD700; color: #000; border-color: #FFD700; font-weight: 700;
}
.v47-err-btn-primary:hover { background: #FFE85E; }
.v47-err-meta { color: #666; font-size: 12px; }
.v47-err-meta a { color: #FFD700; text-decoration: none; }
.v47-err-meta code {
  background: rgba(255,255,255,.06); padding: 2px 8px; border-radius: 4px;
  font-family: 'SF Mono', Consolas, monospace; font-size: 11px;
}

/* ===== footer 사업자 자리 ===== */
.v47-footer-biz {
  margin-top: 16px; padding-top: 16px;
  border-top: 1px solid rgba(255,255,255,.08);
  text-align: center;
}
.v47-biz-line {
  color: #888; font-size: 11px; line-height: 1.7; margin: 4px 0;
  word-break: keep-all;
}
.v47-biz-line strong { color: #aaa; font-weight: 600; }
.v47-biz-line a { color: #FFD700; text-decoration: none; }
.v47-biz-line span[data-fill] { color: #777; font-style: italic; }
.v47-biz-links {
  margin-top: 10px; font-size: 12px;
}
.v47-biz-links a { color: #aaa; text-decoration: none; margin: 0 4px; }
.v47-biz-links a:hover { color: #fff; }

/* ===== 토스트 ===== */
.v47-toast-stack {
  position: fixed; top: 16px; left: 50%; transform: translateX(-50%);
  z-index: 10000; display: flex; flex-direction: column; gap: 10px;
  pointer-events: none; max-width: calc(100vw - 32px);
}
.v47-toast {
  background: rgba(15,15,15,.95); border: 1px solid rgba(255,255,255,.12);
  color: #fff; padding: 12px 18px; border-radius: var(--v47-radius);
  font-size: 13px; box-shadow: var(--v47-shadow);
  display: flex; align-items: center; gap: 10px;
  opacity: 0; transform: translateY(-12px);
  transition: opacity .2s, transform .2s;
  pointer-events: auto; backdrop-filter: blur(8px);
}
.v47-toast-in { opacity: 1; transform: translateY(0); }
.v47-toast-out { opacity: 0; transform: translateY(-12px); }
.v47-toast-em { font-size: 16px; }
.v47-toast-msg { flex: 1; }
.v47-toast-success { border-color: rgba(60,179,113,.4); }
.v47-toast-error { border-color: rgba(255,71,87,.4); }
.v47-toast-warn { border-color: rgba(255,165,0,.4); }
.v47-toast-copy { border-color: rgba(255,215,0,.4); }

/* ===== 영수증 ===== */
.v47-rc-main { max-width: 760px; margin: 0 auto; padding: 24px 16px 80px; }
.v47-rc-head { margin-bottom: 24px; }
.v47-rc-acts { display: flex; gap: 8px; flex-wrap: wrap; margin-top: 16px; }
.v47-rc-doc {
  background: #fff; color: #1a1a1a;
  border-radius: var(--v47-radius-lg);
  padding: 32px; box-shadow: var(--v47-shadow-lg);
}
.v47-rc-doc-head {
  display: flex; justify-content: space-between; align-items: flex-start;
  padding-bottom: 20px; margin-bottom: 24px;
  border-bottom: 2px solid #FFD700;
}
.v47-rc-logo { font-size: 28px; font-weight: 900; color: #000; }
.v47-rc-logo .logo-cn { color: #000; }
.v47-rc-logo .logo-ko { color: #FFD700; }
.v47-rc-doc-meta { text-align: right; }
.v47-rc-doc-title { font-size: 22px; font-weight: 800; margin: 0 0 6px; }
.v47-rc-doc-no { font-size: 13px; color: #555; margin: 0; }
.v47-rc-doc-no strong { color: #000; font-family: 'SF Mono', Consolas, monospace; }
.v47-rc-doc-dt { font-size: 12px; color: #777; margin: 4px 0 0; }
.v47-rc-sec { margin-bottom: 24px; }
.v47-rc-sh {
  font-size: 14px; font-weight: 800; margin: 0 0 12px;
  padding-bottom: 6px; border-bottom: 1px solid #ddd; color: #000;
}
.v47-rc-table { width: 100%; font-size: 13px; }
.v47-rc-table th, .v47-rc-table td {
  text-align: left; padding: 8px 0; border-bottom: 1px solid #eee;
  vertical-align: top;
}
.v47-rc-table th { color: #777; font-weight: 600; width: 30%; }
.v47-rc-table td { color: #000; }
.v47-rc-table-pay td strong {
  font-size: 16px; color: #000;
}
.v47-rc-list { font-size: 13px; color: #444; padding-left: 20px; }
.v47-rc-list li { margin-bottom: 6px; line-height: 1.6; }
.v47-rc-list strong { color: #000; }
.v47-rc-doc-foot {
  margin-top: 28px; padding-top: 20px; border-top: 1px dashed #ccc;
  text-align: center; font-size: 11px; color: #777;
}
.v47-rc-biz { margin: 4px 0; }
.v47-rc-biz strong { color: #555; }

/* 인쇄 시 */
@media print {
  .v47-noprint { display: none !important; }
  body { background: #fff; }
  .v47-rc-doc { box-shadow: none; padding: 0; }
}

/* ===== 사용자 사이트맵 ===== */
.v47-sm-main { max-width: 1100px; margin: 0 auto; padding: 24px 16px 80px; }
.v47-sm-head { text-align: center; margin-bottom: 32px; }
.v47-sm-grid {
  display: grid; grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));
  gap: var(--v47-gap);
}
.v47-sm-col {
  background: rgba(255,255,255,.03); border: 1px solid rgba(255,255,255,.06);
  border-radius: var(--v47-radius); padding: 18px;
}
.v47-sm-h2 {
  font-size: 14px; color: #FFD700; font-weight: 800;
  margin: 0 0 14px; padding-bottom: 8px;
  border-bottom: 1px solid rgba(255,215,0,.2);
}
.v47-sm-col ul { list-style: none; padding: 0; margin: 0; }
.v47-sm-col li { padding: 8px 0; border-bottom: 1px solid rgba(255,255,255,.04); }
.v47-sm-col li:last-child { border-bottom: none; }
.v47-sm-col a { color: #fff; text-decoration: none; font-size: 13px; font-weight: 600; }
.v47-sm-col a:hover { color: #FFD700; }
.v47-sm-col li { color: #888; font-size: 12px; }
.v47-sm-foot {
  text-align: center; margin-top: 32px; padding: 20px;
  background: rgba(255,255,255,.02); border-radius: var(--v47-radius);
  color: #888; font-size: 12px;
}
.v47-sm-foot a { color: #FFD700; text-decoration: none; }

/* ============================================================
   v48 — 모바일 인터뷰 11건 박음 (390px 기준)
   ============================================================ */

/* ⑪ 마스터 배너 — 한 번이라도 토글한 사용자만 노출 (기본 숨김) */
.v24-master-bar { display: none; }
body[data-show-master="1"] .v24-master-bar { display: flex; }

/* ⑩ V배지 플로팅 — 좌하단 박음, quickbar 박힌 페이지엔 위로 박음 */
.v31-help-fab {
  left: 14px !important; right: auto !important;
  bottom: 84px !important; /* quickbar 위 박음 */
  transition: opacity .25s, transform .25s;
}
body[data-scrolling="1"] .v31-help-fab {
  opacity: 0; transform: translateY(20px); pointer-events: none;
}
@media (min-width: 769px) {
  .v31-help-fab { bottom: 24px !important; }
}

/* === 모바일 일괄 박음 (480px 이하) === */
@media (max-width: 480px) {

  /* ② 통계 카드 4분할 → 2×2 */
  .v40-mer-tickers,
  .me-tickers,
  .v39-stats-grid {
    grid-template-columns: repeat(2, 1fr) !important;
    gap: 8px !important;
  }
  .v40-mt, .me-tc, .v39-stat {
    min-height: 88px;
  }
  .v40-mt-big, .me-tc-big, .v39-stat-big {
    font-size: clamp(18px, 5vw, 22px) !important;
  }

  /* ⑤ 매수 버튼·기타 CTA 44px 박음 */
  .v16-buy, .v16-sell, .v16-quick,
  .v38-buy-btn, .v36-btn-primary, .v40-w-submit,
  .btn-primary, .btn-role, .btn-outline {
    min-height: 44px !important;
    font-size: 14px !important;
  }

  /* ⑥ 카드 메타 빽빽 — 모바일에서 일부 hide */
  .v16-card .v16-meta-extra,
  .v16-card .v16-50d,
  .v16-card .v16-elapsed {
    display: none;
  }
  .v16-card-meta {
    flex-wrap: wrap;
    gap: 4px;
    font-size: 11px;
  }

  /* ⑦ 매도+체결 가로 2열 → 세로 적층 */
  .v16-left-right, .v16-twin, .v16-split {
    grid-template-columns: 1fr !important;
    display: flex !important;
    flex-direction: column !important;
  }

  /* ⑧ 비슷한 후기 4열 → 가로 스크롤 2.5개 */
  .v42-similar-row, .v33-recommend-row {
    display: flex !important;
    flex-direction: row !important;
    overflow-x: auto;
    scroll-snap-type: x mandatory;
    gap: 10px;
    padding-bottom: 8px;
    -webkit-overflow-scrolling: touch;
  }
  .v42-similar-row::-webkit-scrollbar,
  .v33-recommend-row::-webkit-scrollbar { display: none; }
  .v42-similar-card, .v33-recommend-card {
    flex: 0 0 calc(40% - 5px);
    scroll-snap-align: start;
  }

  /* ⑨ 페르소나 BEST 10 카테고리 6+2 → 4×2 */
  .v32-persona-wrap {
    display: grid !important;
    grid-template-columns: repeat(4, 1fr) !important;
    gap: 6px !important;
    overflow: visible !important;
  }
  .v32-persona {
    min-width: auto !important;
    font-size: 11px !important;
    padding: 8px 4px !important;
    flex: none !important;
  }

  /* ④ 카테고리·등급 탭 사이 시각 라벨 박음 */
  .v16-chip-group { position: relative; }
  .v16-chip-group::before {
    content: attr(data-label);
    display: block;
    font-size: 10px;
    color: #888;
    font-weight: 700;
    letter-spacing: 1px;
    margin-bottom: 6px;
    text-transform: uppercase;
  }

  /* ① nav — quickbar 박힘으로 햄버거 보조 */
  .v48-quickbar {
    position: fixed;
    bottom: 0; left: 0; right: 0;
    height: 64px;
    background: rgba(10,10,10,.96);
    backdrop-filter: blur(10px);
    border-top: 1px solid rgba(255,255,255,.08);
    display: flex !important;
    justify-content: space-around;
    align-items: center;
    z-index: 100;
    padding: 6px 0 calc(env(safe-area-inset-bottom) + 6px);
  }
  body { padding-bottom: 64px; }
  .v48-qb-item {
    flex: 1;
    display: flex; flex-direction: column;
    align-items: center; justify-content: center;
    gap: 2px;
    color: #888;
    text-decoration: none;
    font-size: 10px;
    padding: 4px 0;
    min-height: 44px;
    transition: color .12s;
  }
  .v48-qb-em { font-size: 20px; line-height: 1; }
  .v48-qb-item.active { color: #FFD700; }
  .v48-qb-item:active { background: rgba(255,255,255,.04); }

  /* 검색 필터 bottom sheet (③) */
  .v48-filter-toggle {
    display: flex !important;
    align-items: center;
    gap: 6px;
    background: rgba(255,255,255,.06);
    border: 1px solid rgba(255,255,255,.12);
    color: #fff;
    padding: 10px 14px;
    border-radius: 22px;
    font-size: 13px;
    cursor: pointer;
    min-height: 44px;
  }
  .v48-filter-sheet {
    position: fixed;
    bottom: 64px;
    left: 0; right: 0;
    background: #0F0F0F;
    border-top: 1px solid rgba(255,255,255,.12);
    border-radius: 16px 16px 0 0;
    max-height: 60vh;
    overflow-y: auto;
    transform: translateY(100%);
    transition: transform .25s ease;
    z-index: 90;
    padding: 16px;
    padding-bottom: calc(env(safe-area-inset-bottom) + 16px);
  }
  .v48-filter-sheet.open { transform: translateY(0); }
  .v48-filter-bg {
    position: fixed; inset: 0;
    background: rgba(0,0,0,.5);
    z-index: 89;
    opacity: 0; pointer-events: none;
    transition: opacity .25s;
  }
  .v48-filter-bg.open { opacity: 1; pointer-events: auto; }
  .v48-filter-close {
    position: sticky; top: 0;
    background: #0F0F0F;
    padding-bottom: 10px;
    display: flex; justify-content: space-between; align-items: center;
    border-bottom: 1px solid rgba(255,255,255,.06);
    margin: -16px -16px 12px;
    padding: 14px 16px;
  }

  /* 폰트 자동 축소 */
  h1 { font-size: clamp(20px, 5.5vw, 28px) !important; }
  h2 { font-size: clamp(16px, 4.5vw, 22px) !important; }
  .v40-mer-h1, .v47-set-h1, .v46-set-h1 { font-size: clamp(20px, 5.5vw, 26px) !important; }

}

/* quickbar는 데스크탑에서 숨김 */
@media (min-width: 481px) {
  .v48-quickbar { display: none !important; }
  .v48-filter-toggle { display: none !important; }
}

/* ============================================================
   v48-rev — Opus 4.8 인터뷰 5건 박음
   ============================================================ */

/* 결제 모달 모바일 박음 (치명 — 카카오페이·토스·카드 세로 깨짐 박음) */
@media (max-width: 480px) {
  .v38-pay-bg {
    align-items: flex-end !important;
    padding: 0 !important;
  }
  .v38-pay-box {
    max-width: 100% !important;
    width: 100% !important;
    max-height: 92vh !important;
    border-radius: 16px 16px 0 0 !important;
    border-bottom: none !important;
    overflow-y: auto !important;
  }
  .v38-pay-head { padding: 18px 16px 12px !important; }
  .v38-pay-head h2 { font-size: 18px !important; }
  .v38-pay-head p { font-size: 12px !important; }
  .v38-pay-item {
    margin: 0 16px 12px !important;
    padding: 12px !important;
    display: flex !important;
    gap: 10px !important;
    align-items: center !important;
  }
  .v38-pay-info { flex: 1; min-width: 0; }
  .v38-pay-title {
    font-size: 13px !important;
    white-space: nowrap !important;
    overflow: hidden !important;
    text-overflow: ellipsis !important;
  }
  .v38-pay-meta {
    font-size: 11px !important;
    white-space: nowrap !important;
    overflow: hidden !important;
    text-overflow: ellipsis !important;
  }
  .v38-pay-price {
    font-size: 16px !important;
    white-space: nowrap !important;
    flex-shrink: 0 !important;
  }
  .v38-pay-method { padding: 0 16px !important; }
  .v38-pay-method h3 { font-size: 13px !important; margin: 8px 0 !important; }

  /* 결제수단 행 — grid 깨짐 박음 */
  .v38-pm-row {
    display: flex !important;
    grid-template-columns: none !important;
    align-items: center !important;
    gap: 10px !important;
    padding: 14px !important;
    min-height: 56px !important;
    flex-wrap: nowrap !important;
  }
  .v38-pm-row input { flex-shrink: 0; }
  .v38-pm-row .v38-pm-em { flex-shrink: 0; font-size: 18px; }
  .v38-pm-row strong {
    flex: 1 !important;
    min-width: 0 !important;
    font-size: 14px !important;
    white-space: nowrap !important;
    overflow: hidden !important;
    text-overflow: ellipsis !important;
  }
  .v38-pm-row .v38-pm-fast {
    flex-shrink: 0 !important;
    font-size: 10px !important;
    white-space: nowrap !important;
  }

  .v38-pay-info-box { margin: 12px 16px !important; padding: 12px !important; font-size: 11px !important; }
  .v38-pay-info-box li { font-size: 11px !important; }

  /* 결제 nav — 버튼 가로 박음 */
  .v38-pay-nav {
    display: flex !important;
    flex-direction: row !important;
    flex-wrap: nowrap !important;
    gap: 8px !important;
    padding: 12px 16px calc(env(safe-area-inset-bottom) + 16px) !important;
    position: sticky;
    bottom: 0;
    background: #0d0d0d;
    border-top: 1px solid rgba(255,255,255,.06);
  }
  .v38-pay-cancel {
    flex: 0 0 80px !important;
    min-height: 48px !important;
    font-size: 13px !important;
    white-space: nowrap !important;
  }
  .v38-pay-confirm {
    flex: 1 !important;
    min-height: 48px !important;
    font-size: 15px !important;
    font-weight: 900 !important;
    white-space: nowrap !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    gap: 6px !important;
  }
  .v38-pay-confirm #v38-pay-amount {
    font-size: 15px !important;
    font-weight: 900 !important;
  }
}

/* 매물 카드 지역명 세로 깨짐 박음 */
@media (max-width: 480px) {
  .v16-card *, .v32-best-card *, .v33-card * {
    word-break: keep-all !important;
    overflow-wrap: break-word !important;
  }
  .v16-card .region, .v16-card .v16-region,
  .v32-best-card .region, .v33-card .region {
    white-space: nowrap !important;
    overflow: hidden !important;
    text-overflow: ellipsis !important;
    min-width: 0 !important;
    flex: 1 1 auto !important;
  }
  .v16-card {
    display: flex !important;
    flex-direction: column !important;
    min-width: 0 !important;
  }
  .v16-card > * { min-width: 0 !important; }
  .v16-meta, .v16-card-meta {
    display: flex !important;
    flex-wrap: wrap !important;
    gap: 4px 8px !important;
    align-items: center !important;
  }
}

/* 사업자 정보 자리 — 박힘 전 더 절제된 표기 */
.v47-biz-line span[data-fill="biz_no"]::before,
.v47-biz-line span[data-fill="ecom_no"]::before {
  content: "준비 중";
  color: #555;
  font-style: normal;
  font-size: 10px;
}
.v47-biz-line span[data-fill="biz_no"],
.v47-biz-line span[data-fill="ecom_no"],
.v47-biz-line span[data-fill="rep"],
.v47-biz-line span[data-fill="addr"] {
  font-size: 0 !important;
}
.v47-biz-line span[data-fill="biz_no"]::before,
.v47-biz-line span[data-fill="ecom_no"]::before {
  font-size: 11px !important;
}
.v47-biz-line span[data-fill="rep"]::before,
.v47-biz-line span[data-fill="addr"]::before {
  content: "—";
  color: #555;
  font-size: 11px !important;
}
body[data-biz-filled="1"] .v47-biz-line span[data-fill]::before { content: none; }
body[data-biz-filled="1"] .v47-biz-line span[data-fill] { font-size: inherit !important; }

/* v48-rev — 페이월 잠금 위 핵심 메타 박음 */
.v48-prebuy-meta {
  background: rgba(255,215,0,.04);
  border: 1px solid rgba(255,215,0,.18);
  border-radius: 12px;
  padding: 14px 16px;
  margin: 16px 0;
  display: flex;
  flex-direction: column;
  gap: 10px;
}
.v48-prebuy-row {
  display: flex;
  align-items: baseline;
  gap: 10px;
  flex-wrap: wrap;
}
.v48-pb-label {
  font-size: 12px;
  color: #aaa;
  font-weight: 700;
  flex-shrink: 0;
}
.v48-prebuy-row strong {
  font-size: 15px;
  color: #FFD700;
  font-weight: 900;
}
.v48-pb-small {
  font-size: 11px;
  color: #777;
  flex: 1;
  min-width: 0;
}
@media (max-width: 480px) {
  .v48-pb-small {
    width: 100%;
    flex-basis: 100%;
  }
}

/* ============================================================
   v48-r2 — Opus 4.8 재검증 4건 박음
   ============================================================ */

/* 1. 매물 카드 안 텍스트 박힘 (호가 + 체결) 박음 */
@media (max-width: 480px) {
  .v16-board {
    flex-direction: column !important;
    padding: 0 12px !important;
    gap: 14px !important;
  }
  .v16-col {
    width: 100% !important;
    min-width: 0 !important;
    max-width: 100% !important;
  }
  .v16-ob-row {
    padding: 12px !important;
    gap: 8px !important;
    min-width: 0 !important;
  }
  .v16-ob-left {
    flex: 1 1 auto !important;
    min-width: 0 !important;
    max-width: calc(100% - 80px) !important;
  }
  .v16-ob-info {
    min-width: 0 !important;
    max-width: 100% !important;
  }
  .v16-ob-title {
    white-space: nowrap !important;
    overflow: hidden !important;
    text-overflow: ellipsis !important;
    max-width: 100% !important;
    font-size: 13px !important;
  }
  .v16-ob-meta {
    flex-wrap: wrap !important;
    gap: 3px 6px !important;
    max-width: 100% !important;
  }
  .v16-ob-meta > * {
    white-space: nowrap !important;
    flex-shrink: 0 !important;
  }
  .v16-ob-emoji {
    width: 32px !important;
    height: 32px !important;
    font-size: 18px !important;
  }
  .v16-trd, .v16-ob {
    max-height: 360px !important;
  }
}

/* 2. 결제수단 라벨 잘림 박음 — strong 박힘 강제 가시화 */
@media (max-width: 480px) {
  .v38-pm-row {
    grid-template-columns: 20px 24px 1fr auto !important;
    padding: 12px !important;
    gap: 8px !important;
  }
  .v38-pm-row strong {
    font-size: 14px !important;
    overflow: visible !important;
    text-overflow: clip !important;
    white-space: nowrap !important;
    min-width: 0 !important;
  }
  .v38-pm-row .v38-pm-fast {
    font-size: 10px !important;
    padding: 2px 6px !important;
    white-space: nowrap !important;
    flex-shrink: 0 !important;
  }
}

/* 3. 마스터 배너 — 모든 일반 페이지에서 완전 박지 않음 (강제) */
.v24-master-bar { display: none !important; }
body[data-operator-page="1"] .v24-master-bar { display: flex !important; }

/* 4. 사업자 정보 — \"[박힘 예정]\" 완전 박지 않음 + 한 줄 간결 박음 */
.v47-biz-line span[data-fill]:not([data-filled="1"]) {
  display: none !important;
}
.v47-biz-line span[data-fill="biz_no"]:not([data-filled="1"])::before {
  content: "사업자 등록 진행 중 (2026-06-07 박힘 예정)";
  display: inline;
  color: #999;
  font-style: normal;
  font-size: 11px;
}
.v47-biz-line:has(span[data-fill="biz_no"]:not([data-filled])) strong {
  display: none;
}
.v47-biz-line:has(span[data-fill="biz_no"]:not([data-filled])) {
  font-size: 11px;
}
.v47-biz-line span[data-fill="biz_no"]:not([data-filled="1"]) {
  display: inline !important;
  color: transparent;
  font-size: 0;
}
.v47-biz-line:has(span[data-fill="rep"]:not([data-filled])) {
  display: none !important;
}

/* 박힘 후 정상 박힘 */
body[data-biz-filled="1"] .v47-biz-line { display: block !important; font-size: inherit !important; }
body[data-biz-filled="1"] .v47-biz-line strong { display: inline !important; }
body[data-biz-filled="1"] .v47-biz-line span[data-fill] { display: inline !important; color: inherit !important; font-size: inherit !important; }
body[data-biz-filled="1"] .v47-biz-line span[data-fill]::before { content: none !important; }

/* v48-r2 — 사업자 정보 박힘 전 깔끔 표기 */
.v47-biz-prep {
  color: #888;
  font-size: 11px;
  font-style: normal;
}
body[data-biz-filled="1"] .v47-biz-prep { display: none; }
body[data-biz-filled="1"] .v47-biz-after { display: block !important; }
body[data-biz-filled="1"] .v47-biz-after[hidden] { display: block !important; }

/* ============================================================
   v48-r3 — 매물 카드 강제 박음 + 마스터 배너 즉시 박음 박음
   ============================================================ */

/* 마스터 배너 — HTML 진입 시점 즉시 hidden (defer 박힘 박지 않기 위해) */
.v24-master-bar { display: none !important; visibility: hidden !important; }
body[data-operator-page="1"] .v24-master-bar {
  display: flex !important;
  visibility: visible !important;
}

/* 매물 카드 — 모바일에서 매도+체결 강제 column 박음 (모든 미디어쿼리 박힘 박음) */
@media (max-width: 768px) {
  .v16-board {
    display: flex !important;
    flex-direction: column !important;
    gap: 16px !important;
    padding: 0 12px !important;
  }
  .v16-board .v16-col,
  .v16-board .v16-sell,
  .v16-board .v16-trades {
    flex: 1 1 100% !important;
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
  }
}

/* 매물 카드 안 모든 텍스트 박힘 강제 박음 (어떤 부모 박힘이라도) */
@media (max-width: 768px) {
  .v16-ob-row, .v16-trd-row, .v16-card {
    display: flex !important;
    flex-wrap: wrap !important;
    align-items: flex-start !important;
    gap: 8px !important;
    min-width: 0 !important;
    width: 100% !important;
    box-sizing: border-box !important;
  }
  .v16-ob-left, .v16-ob-info, .v16-trd-info {
    flex: 1 1 auto !important;
    min-width: 0 !important;
  }
  .v16-ob-title, .v16-trd-title, .v16-card-title {
    display: block !important;
    white-space: nowrap !important;
    overflow: hidden !important;
    text-overflow: ellipsis !important;
    width: 100% !important;
    word-break: keep-all !important;
  }
  .v16-ob-meta, .v16-trd-meta, .v16-card-meta {
    display: flex !important;
    flex-wrap: wrap !important;
    gap: 4px 6px !important;
    width: 100% !important;
  }
  .v16-ob-meta > *, .v16-trd-meta > * {
    white-space: nowrap !important;
    flex-shrink: 0 !important;
    word-break: keep-all !important;
  }
  /* 지역명 박힘 강제 — \"정자동\" 한 박힘 박음 */
  [class*="region"], [class*="-loc"], [data-region] {
    white-space: nowrap !important;
    word-break: keep-all !important;
    overflow: hidden !important;
    text-overflow: ellipsis !important;
  }
}

/* 결제수단 — 모든 모바일 박음에서 라벨 박힘 박음 (max-width 768px) */
@media (max-width: 768px) {
  .v38-pm-row {
    display: flex !important;
    grid-template-columns: none !important;
    align-items: center !important;
    gap: 10px !important;
    padding: 14px !important;
    min-height: 56px !important;
  }
  .v38-pm-row input { flex-shrink: 0 !important; }
  .v38-pm-row .v38-pm-em { flex-shrink: 0 !important; font-size: 18px !important; }
  .v38-pm-row strong {
    flex: 1 1 auto !important;
    min-width: 0 !important;
    font-size: 14px !important;
    white-space: nowrap !important;
    overflow: visible !important;
    text-overflow: clip !important;
  }
  .v38-pm-row .v38-pm-fast {
    flex-shrink: 0 !important;
    font-size: 10px !important;
    padding: 3px 8px !important;
    white-space: nowrap !important;
  }
}

/* ============================================================
   v49 — Opus 4.8 출시 차단 5건 완전 박음
   ============================================================ */

/* 1. 통계 대시보드 4분할 모바일 절단 박음 — 2x2 강제 */
@media (max-width: 600px) {
  .v16-ticker {
    display: grid !important;
    grid-template-columns: repeat(2, 1fr) !important;
    gap: 8px !important;
    padding: 0 12px !important;
  }
  .v16-t-cell {
    min-height: 76px !important;
    padding: 12px !important;
  }
  .v16-t-big {
    font-size: clamp(16px, 5vw, 22px) !important;
    line-height: 1.2 !important;
    white-space: nowrap !important;
    overflow: hidden !important;
    text-overflow: ellipsis !important;
  }
  .v16-t-label {
    font-size: 11px !important;
    white-space: nowrap !important;
    overflow: hidden !important;
    text-overflow: ellipsis !important;
  }
}

/* 2. 매물 카드 — 부모 폭 강제 박음 (어떤 상위 박힘이라도 깨지지 않음) */
@media (max-width: 768px) {
  .v16-board, .v16-hot, .v32-best, .v16-listings, .v16-trade-board {
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
    overflow-x: hidden !important;
  }
  .v16-board > *, .v16-col, .v16-sell, .v16-trades {
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
    box-sizing: border-box !important;
  }
  /* 카드 내부 — 어떤 자식도 부모 폭 넘지 않음 */
  .v16-ob-row, .v16-trd-row {
    width: 100% !important;
    max-width: 100% !important;
    box-sizing: border-box !important;
  }
}

/* 3. 결제수단 라벨 — grid 박힘 박지 않고 flex만 박음 */
.v38-pm-row {
  display: flex !important;
  flex-direction: row !important;
  flex-wrap: nowrap !important;
  align-items: center !important;
  gap: 10px !important;
}
@media (max-width: 480px) {
  .v38-pm-row {
    padding: 14px !important;
    min-height: 56px !important;
  }
  .v38-pm-row strong {
    flex: 1 1 auto !important;
    font-size: 14px !important;
    overflow: visible !important;
    text-overflow: clip !important;
    white-space: nowrap !important;
    min-width: 70px !important;
  }
  .v38-pm-row .v38-pm-fast {
    flex: 0 0 auto !important;
    font-size: 10px !important;
    white-space: nowrap !important;
  }
}

/* ============================================================
   v50 — Opus 4.8 출시 차단 박음
   ============================================================ */

/* 1. /me 이름 박힘 — 김O윤 세로 분해 박지 않음 */
.me-avatar, .me-name, .me-info {
  white-space: nowrap !important;
  word-break: keep-all !important;
  overflow: hidden !important;
  text-overflow: ellipsis !important;
}
@media (max-width: 480px) {
  .me-profile {
    flex-wrap: nowrap !important;
    overflow: hidden !important;
  }
  .me-avatar {
    flex-shrink: 0 !important;
    width: 48px !important;
    height: 48px !important;
    font-size: 14px !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
  }
  .me-info {
    flex: 1 1 auto !important;
    min-width: 0 !important;
  }
  .me-name, .me-grade {
    font-size: 13px !important;
    line-height: 1.4 !important;
  }
}

/* 2. 매물 카드 199px 박음 — 제목·지역명·가격 모두 박힘 */
@media (max-width: 480px) {
  .v16-ob-row {
    display: grid !important;
    grid-template-columns: 32px 1fr auto !important;
    grid-template-rows: auto auto !important;
    gap: 6px 8px !important;
    padding: 10px !important;
    align-items: center !important;
  }
  .v16-ob-emoji {
    grid-row: 1 / 3 !important;
    width: 32px !important;
    height: 32px !important;
    font-size: 16px !important;
  }
  .v16-ob-left {
    display: contents !important;
  }
  .v16-ob-info {
    grid-column: 2 / 3 !important;
    grid-row: 1 / 2 !important;
    min-width: 0 !important;
    overflow: hidden !important;
  }
  .v16-ob-title {
    font-size: 12px !important;
    line-height: 1.3 !important;
    white-space: nowrap !important;
    overflow: hidden !important;
    text-overflow: ellipsis !important;
    margin: 0 !important;
  }
  .v16-ob-meta {
    font-size: 10px !important;
    gap: 3px !important;
    flex-wrap: wrap !important;
  }
  .v16-ob-meta > * { font-size: 10px !important; }
  /* 매수 버튼 박힘 — 우측 박힘 박음 */
  .v16-ob-buy, .v16-buy {
    grid-column: 3 / 4 !important;
    grid-row: 1 / 3 !important;
    position: static !important;
    transform: none !important;
    padding: 6px 10px !important;
    font-size: 11px !important;
    min-width: 56px !important;
    white-space: nowrap !important;
  }
  /* 지표·가격 박힘 */
  .v16-ob-price, .v16-ob-jjin {
    grid-column: 2 / 3 !important;
    grid-row: 2 / 3 !important;
    font-size: 11px !important;
    display: flex !important;
    gap: 6px !important;
    flex-wrap: wrap !important;
  }
}

/* 3. 통계 4분할 199px overflow 박음 */
@media (max-width: 480px) {
  .v16-ticker {
    display: grid !important;
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    gap: 6px !important;
    padding: 0 12px !important;
    max-width: 100vw !important;
    overflow-x: hidden !important;
    box-sizing: border-box !important;
  }
  .v16-t-cell {
    min-width: 0 !important;
    max-width: 100% !important;
    padding: 10px 8px !important;
    box-sizing: border-box !important;
    overflow: hidden !important;
  }
  .v16-t-label {
    font-size: 10px !important;
    white-space: nowrap !important;
    overflow: hidden !important;
    text-overflow: ellipsis !important;
  }
  .v16-t-big {
    font-size: clamp(14px, 4vw, 18px) !important;
    line-height: 1.1 !important;
    white-space: nowrap !important;
    overflow: hidden !important;
    text-overflow: ellipsis !important;
  }
  .v16-t-meta, .v16-t-delta {
    font-size: 9px !important;
    white-space: nowrap !important;
    overflow: hidden !important;
    text-overflow: ellipsis !important;
  }
}

/* 4. 결제수단 보조 라벨 박힘 박음 (≤220px) */
@media (max-width: 220px) {
  .v38-pm-row .v38-pm-fast { display: none !important; }
}

/* 5. footer 빈 라벨 스텁 박지 않음 (data-biz-filled 박힘 박지 않을 때) */
body:not([data-biz-filled="1"]) .v47-biz-after { display: none !important; }
body:not([data-biz-filled="1"]) .v47-biz-after[hidden] { display: none !important; }

/* 6. 알림 드롭다운 제목 절단 박음 */
@media (max-width: 480px) {
  .v46-bell-dd {
    width: calc(100vw - 16px) !important;
    max-width: calc(100vw - 16px) !important;
    right: -8px !important;
  }
  .v46-bell-body strong {
    font-size: 12px !important;
    line-height: 1.3 !important;
  }
  .v46-bell-body p {
    font-size: 11px !important;
    -webkit-line-clamp: 2 !important;
  }
  .v46-bell-del {
    flex-shrink: 0 !important;
    width: 24px !important;
    padding: 2px !important;
  }
}

/* ============================================================
   v52 — Opus 4.8 박힘 박은 박힘 (출시 차단 2건 + 박힘 5건)
   ============================================================ */

/* 1. 매물 카드 제목·지역 199px 박힘 — 1자 절단 박지 않음 */
@media (max-width: 480px) {
  .v16-ob-row {
    grid-template-columns: 28px 1fr 64px !important;
    gap: 8px !important;
    padding: 10px 8px !important;
  }
  .v16-ob-emoji {
    width: 28px !important;
    height: 28px !important;
    font-size: 14px !important;
  }
  .v16-ob-info {
    grid-column: 2 / 3 !important;
    min-width: 0 !important;
    overflow: hidden !important;
    width: 100% !important;
  }
  .v16-ob-title {
    font-size: 12px !important;
    line-height: 1.3 !important;
    white-space: nowrap !important;
    overflow: hidden !important;
    text-overflow: ellipsis !important;
    width: 100% !important;
    max-width: 100% !important;
    display: block !important;
  }
  .v16-ob-meta {
    font-size: 10px !important;
    gap: 4px !important;
    flex-wrap: wrap !important;
    width: 100% !important;
  }
  .v16-ob-buy, .v16-buy {
    grid-column: 3 / 4 !important;
    width: 64px !important;
    max-width: 64px !important;
    font-size: 11px !important;
    padding: 6px 0 !important;
    white-space: nowrap !important;
  }
}

/* 2. honjjul-board hero 세로분해 박지 않음 */
@media (max-width: 480px) {
  .v16-hero, .v16-hero-text, .v16-hero h1, .v16-hero p,
  [class*="hero"] h1, [class*="hero"] p {
    word-break: keep-all !important;
    overflow-wrap: break-word !important;
    white-space: normal !important;
    line-height: 1.4 !important;
  }
  .v16-hero h1 {
    font-size: clamp(18px, 5vw, 26px) !important;
  }
}

/* 3. 알림 드롭다운 패널 폭 100vw 박힘 */
@media (max-width: 480px) {
  .v46-bell-dd {
    position: fixed !important;
    top: 56px !important;
    left: 8px !important;
    right: 8px !important;
    width: calc(100vw - 16px) !important;
    max-width: calc(100vw - 16px) !important;
  }
  .v46-bell-body {
    flex: 1 !important;
    min-width: 0 !important;
  }
  .v46-bell-body strong {
    font-size: 12px !important;
    white-space: nowrap !important;
    overflow: hidden !important;
    text-overflow: ellipsis !important;
    max-width: calc(100vw - 100px) !important;
  }
}

/* 4. footer 중복 링크 박힘 박지 않음 (만약 박힌 페이지 있을 시) */
.v47-footer-biz .v47-biz-links ~ .v47-biz-links { display: none !important; }
.v47-footer-biz .v47-biz-line ~ .v47-biz-line.duplicate { display: none !important; }

/* ============================================================
   v53 — Opus 4.8 v52 평가 미해결 4건 강제 수정
   ============================================================ */

/* 1. 매물 카드 grid 1fr 강제 (specificity 높임, 199px에서 제목·지역 표시) */
@media (max-width: 480px) {
  .v16-board .v16-col .v16-ob .v16-ob-row,
  section.v16-board .v16-ob-row,
  .v16-ob .v16-ob-row {
    display: grid !important;
    grid-template-columns: 28px minmax(0, 1fr) 64px !important;
    grid-template-rows: auto auto !important;
    column-gap: 8px !important;
    row-gap: 4px !important;
    padding: 10px 8px !important;
    width: 100% !important;
    box-sizing: border-box !important;
    align-items: center !important;
  }
  .v16-board .v16-ob-row > .v16-ob-emoji,
  .v16-ob-row > .v16-ob-emoji {
    grid-column: 1 !important;
    grid-row: 1 / 3 !important;
    width: 28px !important;
    height: 28px !important;
    min-width: 28px !important;
    max-width: 28px !important;
    font-size: 14px !important;
    flex: none !important;
  }
  .v16-board .v16-ob-row > .v16-ob-left,
  .v16-ob-row > .v16-ob-left {
    display: contents !important;
  }
  .v16-board .v16-ob-row .v16-ob-info,
  .v16-ob-row .v16-ob-info {
    grid-column: 2 !important;
    grid-row: 1 !important;
    min-width: 0 !important;
    max-width: 100% !important;
    width: 100% !important;
    overflow: hidden !important;
    flex: none !important;
  }
  .v16-board .v16-ob-row .v16-ob-title,
  .v16-ob-row .v16-ob-title {
    display: block !important;
    width: 100% !important;
    min-width: 0 !important;
    max-width: 100% !important;
    font-size: 12px !important;
    line-height: 1.3 !important;
    white-space: nowrap !important;
    overflow: hidden !important;
    text-overflow: ellipsis !important;
    margin: 0 !important;
  }
  .v16-board .v16-ob-row .v16-ob-meta,
  .v16-ob-row .v16-ob-meta {
    grid-column: 2 !important;
    grid-row: 2 !important;
    display: flex !important;
    flex-wrap: wrap !important;
    gap: 3px 6px !important;
    font-size: 10px !important;
    min-width: 0 !important;
    max-width: 100% !important;
  }
  .v16-board .v16-ob-row .v16-ob-buy,
  .v16-board .v16-ob-row .v16-buy,
  .v16-ob-row .v16-ob-buy,
  .v16-ob-row .v16-buy {
    grid-column: 3 !important;
    grid-row: 1 / 3 !important;
    width: 64px !important;
    max-width: 64px !important;
    min-width: 64px !important;
    font-size: 11px !important;
    padding: 6px 0 !important;
    white-space: nowrap !important;
    align-self: center !important;
    justify-self: center !important;
  }
}

/* 2. honjjul-board hero 직접 selector (jjb-hero-hon · v16-hero에 도달) */
.v16-hero.jjb-hero-hon,
.v16-hero.jjb-hero-hon h1,
.v16-hero.jjb-hero-hon p,
.v16-hero.jjb-hero-hon span,
.jjb-hero-hon h1,
.jjb-hero-hon p,
section.v16-hero h1,
section.v16-hero p {
  word-break: keep-all !important;
  overflow-wrap: break-word !important;
  white-space: normal !important;
  hyphens: none !important;
  line-height: 1.4 !important;
}
@media (max-width: 480px) {
  .v16-hero.jjb-hero-hon,
  .jjb-hero-hon {
    padding: 16px 12px !important;
    box-sizing: border-box !important;
  }
  .v16-hero.jjb-hero-hon h1,
  .jjb-hero-hon h1 {
    font-size: clamp(16px, 4.5vw, 22px) !important;
    word-break: keep-all !important;
    overflow-wrap: break-word !important;
    white-space: normal !important;
  }
  .v16-hero.jjb-hero-hon p,
  .jjb-hero-hon p {
    font-size: clamp(11px, 3vw, 14px) !important;
    word-break: keep-all !important;
    white-space: normal !important;
  }
}

/* 3. 알림 드롭다운 제목 절단 추가 처리 (× 버튼·아이콘 공간 확보) */
@media (max-width: 480px) {
  .v46-bell-dd .v46-bell-row {
    grid-template-columns: 32px 1fr 20px !important;
    display: grid !important;
    gap: 8px !important;
    padding: 10px 12px !important;
    align-items: center !important;
  }
  .v46-bell-dd .v46-bell-em {
    grid-column: 1 !important;
    grid-row: 1 / 3 !important;
    width: 32px !important;
    height: 32px !important;
  }
  .v46-bell-dd .v46-bell-body {
    grid-column: 2 !important;
    grid-row: 1 / 3 !important;
    min-width: 0 !important;
    width: 100% !important;
  }
  .v46-bell-dd .v46-bell-body strong {
    display: block !important;
    width: 100% !important;
    min-width: 0 !important;
    font-size: 12px !important;
    white-space: normal !important;
    overflow: hidden !important;
    text-overflow: ellipsis !important;
    display: -webkit-box !important;
    -webkit-line-clamp: 1 !important;
    -webkit-box-orient: vertical !important;
  }
  .v46-bell-dd .v46-bell-del {
    grid-column: 3 !important;
    grid-row: 1 / 3 !important;
    width: 20px !important;
    flex-shrink: 0 !important;
  }
}

/* 4. footer 중복 링크 행 보호 (한 페이지에 v47-biz-links 1개만 표시) */
.v47-footer-biz .v47-biz-links + .v47-biz-links,
.v47-footer-biz .v47-biz-links ~ .v47-biz-links {
  display: none !important;
}

/* ============================================================
   v54 캐스케이드 강화 — 199px 실측 결함 4건 최종 차단
   2026-06-02 외부 LLM v53 평가 P0~P2 반영
   ============================================================ */

/* v54-1. 거래소 매물 카드 제목·지역 클립 차단 (199px → 19px 붕괴 3연속 미수정 종결)
   적용 범위: /exchange, /rebirth-exchange, /honjjul-board, /donjjul-board
   원인: .v16-ob-row flex 기본값 + .v16-ob-title white-space:nowrap 으로 본문 트랙 19px 수축
   해법: grid 강제 + 본문 컬럼 minmax(0,1fr) + 제목 word-break:keep-all + min-width:0 */
.v16-board .v16-ob-row,
section .v16-ob-row,
.v16-ob .v16-ob-row,
.rb-v17 .v16-ob-row,
.v16-ob-row {
  display: grid !important;
  grid-template-columns: 28px minmax(0, 1fr) auto !important;
  grid-template-rows: auto auto !important;
  column-gap: 10px !important;
  align-items: center !important;
}
.v16-ob-row > .v16-ob-emoji {
  grid-column: 1 !important;
  grid-row: 1 / 3 !important;
  min-width: 0;
}
.v16-ob-row > .v16-ob-info,
.v16-ob-row > .v16-ob-left {
  grid-column: 2 !important;
  grid-row: 1 / 3 !important;
  min-width: 0 !important;
  overflow: hidden;
}
.v16-ob-row .v16-ob-title {
  white-space: normal !important;
  word-break: keep-all !important;
  overflow-wrap: anywhere !important;
  text-overflow: clip !important;
  min-width: 0 !important;
  max-width: 100% !important;
  line-height: 1.32;
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
}
.v16-ob-row .v16-ob-meta {
  white-space: normal !important;
  word-break: keep-all !important;
  overflow-wrap: anywhere !important;
  min-width: 0 !important;
  max-width: 100% !important;
  font-size: 11px;
  color: var(--text-3, #9aa1ad);
  margin-top: 2px;
}
.v16-ob-row .v16-ob-buy,
.v16-ob-row .v16-buy {
  grid-column: 3 !important;
  grid-row: 1 / 3 !important;
  white-space: nowrap !important;
  flex-shrink: 0 !important;
}

/* v54-2. 알림 드롭다운 본문 컬럼 minmax(0,1fr) 강제 (74px 고정 종결)
   원인: .v46-bell-dd 내부 행 grid 트랙 1fr 인접 셀이 폭을 먹어 본문 트랙 74px 고정 */
.v46-bell-dd .v46-bell-row,
.v46-bell-row {
  display: grid !important;
  grid-template-columns: 32px minmax(0, 1fr) 20px !important;
  grid-template-rows: auto auto !important;
  column-gap: 10px !important;
  align-items: start !important;
}
.v46-bell-dd .v46-bell-row > .v46-bell-icon,
.v46-bell-row > .v46-bell-icon {
  grid-column: 1 !important;
  grid-row: 1 / 3 !important;
}
.v46-bell-dd .v46-bell-row > .v46-bell-body,
.v46-bell-row > .v46-bell-body {
  grid-column: 2 !important;
  grid-row: 1 / 3 !important;
  min-width: 0 !important;
  max-width: 100% !important;
  overflow: hidden;
}
.v46-bell-row .v46-bell-title {
  white-space: normal !important;
  word-break: keep-all !important;
  overflow-wrap: anywhere !important;
  text-overflow: clip !important;
  min-width: 0 !important;
  max-width: 100% !important;
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
  line-height: 1.32;
}
.v46-bell-row .v46-bell-desc,
.v46-bell-row .v46-bell-time {
  white-space: normal !important;
  word-break: keep-all !important;
  overflow-wrap: anywhere !important;
  min-width: 0 !important;
  max-width: 100% !important;
}
.v46-bell-dd .v46-bell-del,
.v46-bell-row > .v46-bell-del {
  grid-column: 3 !important;
  grid-row: 1 / 3 !important;
  flex-shrink: 0 !important;
}

/* v54-3. 신규 .hon-rebirth-link 음절 세로분해 차단 (혼쭐→14일→갱생 진입 박스) */
.hon-rebirth-link,
.hon-rebirth-link * {
  word-break: keep-all !important;
  overflow-wrap: anywhere !important;
}
.hon-rebirth-link {
  white-space: normal;
  line-height: 1.42;
}

/* v54-4. 거래소·드롭다운 외 일반 카드 제목 199px 안전벨트 (잠재 회귀 차단) */
@media (max-width: 240px) {
  .v16-card-title,
  .v16-trd-title,
  .jjb-card-title {
    white-space: normal !important;
    word-break: keep-all !important;
    overflow-wrap: anywhere !important;
    min-width: 0 !important;
    max-width: 100% !important;
  }
}

/* ============================================================
   v56 캐스케이드 재공격 — v55 외부 평가 실측 결함 반영
   2026-06-02 P0~P3 처리
   ============================================================ */

/* v56-1. 거래소 카드 grid 캐스케이드 재공격 — v54 패치가 졌던 원인 차단
   v55 평가: .v16-ob-row 컴퓨티드 = "28px 100px 64px" (1fr이 100px 고정)
   원인: .rb-prog-row 등 추가 클래스나 인라인 스타일이 이김 + nowrap 잔존
   해법: max-specificity + .rb-prog-row 추가 + 본문 트랙 100% min-width 0 */
html body .v16-ob-row,
html body .rb-prog-row,
html body .v16-board .v16-ob-row,
html body section .v16-ob-row,
html body .v16-ob .v16-ob-row,
html body .rb-v17 .v16-ob-row {
  display: grid !important;
  grid-template-columns: 28px minmax(0, 1fr) auto !important;
  grid-template-rows: auto auto !important;
  column-gap: 10px !important;
  align-items: center !important;
  flex-wrap: nowrap;
}
html body .v16-ob-row > *,
html body .rb-prog-row > * {
  min-width: 0;
}
html body .v16-ob-row > .v16-ob-left {
  display: contents !important;
}
html body .v16-ob-row .v16-ob-emoji {
  grid-column: 1 !important;
  grid-row: 1 / 3 !important;
  width: 28px !important;
  min-width: 28px !important;
}
html body .v16-ob-row .v16-ob-info {
  grid-column: 2 !important;
  grid-row: 1 / 3 !important;
  min-width: 0 !important;
  max-width: 100% !important;
  overflow: hidden !important;
  display: flex !important;
  flex-direction: column !important;
  gap: 2px !important;
}
html body .v16-ob-row .v16-ob-title {
  white-space: normal !important;
  word-break: keep-all !important;
  overflow-wrap: anywhere !important;
  text-overflow: clip !important;
  min-width: 0 !important;
  max-width: 100% !important;
  display: -webkit-box !important;
  -webkit-line-clamp: 2 !important;
  -webkit-box-orient: vertical !important;
  overflow: hidden !important;
  line-height: 1.32 !important;
  font-size: 13px;
}
html body .v16-ob-row .v16-ob-meta,
html body .v16-ob-row .v16-ob-time {
  white-space: normal !important;
  word-break: keep-all !important;
  overflow-wrap: anywhere !important;
  min-width: 0 !important;
  max-width: 100% !important;
  font-size: 11px !important;
}
html body .v16-ob-row .v16-ob-right,
html body .v16-ob-row .v16-ob-buy,
html body .v16-ob-row .v16-buy {
  grid-column: 3 !important;
  grid-row: 1 / 3 !important;
  white-space: nowrap !important;
  flex-shrink: 0 !important;
}

/* v56-2. 알림 드롭다운 — 실제 자식 클래스 .v46-bell-em / .v46-bell-body / .v46-bell-del
   v55 평가: v54 패치가 .v46-bell-icon을 잘못 가정해 적용 0건 */
html body .v46-bell-dd .v46-bell-row,
html body .v46-bell-row {
  display: grid !important;
  grid-template-columns: 32px minmax(0, 1fr) 20px !important;
  grid-template-rows: auto !important;
  column-gap: 10px !important;
  align-items: start !important;
}
html body .v46-bell-row > .v46-bell-em {
  grid-column: 1 !important;
  width: 32px !important;
  min-width: 32px !important;
  height: 32px;
  display: inline-flex !important;
  align-items: center;
  justify-content: center;
  border-radius: 8px;
  font-size: 14px;
}
html body .v46-bell-row > .v46-bell-body {
  grid-column: 2 !important;
  min-width: 0 !important;
  max-width: 100% !important;
  overflow: hidden !important;
}
html body .v46-bell-row > .v46-bell-body > * {
  white-space: normal !important;
  word-break: keep-all !important;
  overflow-wrap: anywhere !important;
  min-width: 0 !important;
  max-width: 100% !important;
}
html body .v46-bell-row > .v46-bell-del {
  grid-column: 3 !important;
  width: 20px !important;
  min-width: 20px !important;
  flex-shrink: 0 !important;
}

/* v56-3. .hon-rebirth-link keep-all — v54 패치 specificity 부족, max로 재공격 */
html body .hon-rebirth-link,
html body .hon-rebirth-link *,
html body section .hon-rebirth-link,
html body section .hon-rebirth-link * {
  word-break: keep-all !important;
  overflow-wrap: anywhere !important;
  white-space: normal !important;
}

/* v56-4. 한자 등급 한글 병기 가독성 (F5 마찰 7점 완화)
   .jjb-grade-cn 또는 .v-grade-cn 한자 옆 .jjb-grade-ko 한글이 같이 보이도록 */
.jjb-grade-ko,
.v-grade-ko,
.grade-ko-aux {
  font-size: 0.85em;
  color: var(--text-3, #9aa1ad);
  margin-left: 4px;
  font-weight: 500;
}
.jjb-grade-cn::after,
.v-grade-cn::after {
  /* 한자 단독 노출 시 한글 자동 병기는 마크업 측에서 처리, CSS는 간격만 */
  margin-left: 2px;
}

/* v56-5. /rebirth-exchange 호가창 .rb-prog-row 명시 (v55: grid:none 검출) */
html body .rb-prog-row {
  border-bottom: 1px solid var(--line, rgba(255,255,255,.08));
  padding: 12px 14px;
}
html body .rb-prog-row .v16-ob-right {
  text-align: right;
  font-size: 11px;
}

/* v56-6. /jjul-write·/verify·/level-guide 라우팅은 _redirects에서 해결.
   CSS 측은 페이지 자체 레이아웃 호환성만 점검 (기존 룰로 충분). */
