:root{
  --brand:#0D9488; --brand-d:#0B5C55; --brand-bg:#F0FDFA;
  --ink:#0F172A; --muted:#64748B; --line:#E2E8F0; --bg:#F8FAFC;
  --amber:#F89828; --amber-bg:#FFF6E9; --amber-ink:#9A5B00; --danger:#DC2626;
}
*{box-sizing:border-box}
body{margin:0; font-family:-apple-system,"PingFang SC","Microsoft YaHei",system-ui,sans-serif;
  color:var(--ink); background:var(--bg); line-height:1.65;}
a{color:var(--brand-d); text-decoration:none}
a:hover{text-decoration:underline}
.wrap{max-width:1000px; margin:0 auto; padding:0 20px}

/* header */
.topbar{background:#fff; border-bottom:1px solid var(--line); position:sticky; top:0; z-index:10}
.bar-inner{display:flex; align-items:center; gap:20px; height:58px}
.logo{display:flex; align-items:center}
.logo img{height:52px; width:auto; display:block}
.nav{display:flex; gap:16px; font-size:14px}
.nav a{color:var(--muted)}
.nav a:hover{color:var(--brand-d)}
.bar-right{margin-left:auto}
.env-tag{font-size:12px; color:#fff; background:var(--amber);
  border:1px solid #FDE68A; padding:3px 9px; border-radius:99px}

main{padding-top:26px; padding-bottom:50px; min-height:60vh}

/* typography */
h1{font-size:24px; line-height:1.4; margin:8px 0 14px}
.page-h1{font-size:21px}
.page-lead{color:var(--muted); font-size:14px; margin:0 0 20px}
h2{font-size:16px; margin:22px 0 10px; padding-left:10px; border-left:3px solid var(--brand)}
.answer{font-size:15px; background:var(--brand-bg); border:1px solid #CCFBF1;
  border-radius:8px; padding:12px 14px; margin:0 0 16px; color:#134E4A}

/* cards */
.card{background:#fff; border:1px solid var(--line); border-radius:10px; padding:16px 18px; margin-bottom:16px}
.grid2{display:grid; grid-template-columns:1fr 1fr; gap:16px}
@media(max-width:760px){.grid2{grid-template-columns:1fr}}

/* price */
.price-card{background:linear-gradient(180deg,#fff,#F0FDFA)}
.price-main{display:flex; align-items:baseline; gap:8px}
.price-main .cur{font-size:18px; color:var(--danger)}
.price-main .num{font-size:38px; font-weight:800; color:var(--danger); line-height:1}
.price-main .off{margin-left:8px; background:var(--danger); color:#fff; font-size:12px;
  padding:2px 8px; border-radius:4px}
.price-sub{font-size:13px; color:var(--muted); margin-top:8px}
.price-sub .save{color:var(--danger)}
.warn{color:var(--danger)}

/* tables */
table.facts{width:100%; border-collapse:collapse; font-size:14px}
table.facts th{width:110px; text-align:left; font-weight:600; color:var(--muted);
  padding:7px 10px; border-bottom:1px solid var(--line); background:#F8FAFC; white-space:nowrap}
table.facts td{padding:7px 10px; border-bottom:1px solid var(--line)}

/* lists */
ul.clean, ul.ticks, ul.cross{margin:0; padding-left:20px; font-size:14px}
ul.ticks li, ul.cross li{margin-bottom:6px}
ul.cross{color:var(--muted)}

/* qa */
.qa{padding:10px 0; border-bottom:1px dashed var(--line)}
.qa:last-child{border-bottom:none}
.qa .q{margin:0 0 4px; font-weight:700; font-size:14px}
.qa .a{margin:0; font-size:14px; color:#334155}

/* crumb & fresh */
.crumb{font-size:13px; color:var(--muted); margin-bottom:10px}
.fresh{font-size:12px; color:var(--muted); margin-top:6px}

/* list cards */
.cards{display:grid; grid-template-columns:repeat(auto-fill,minmax(280px,1fr)); gap:14px}
.icard{display:block; background:#fff; border:1px solid var(--line); border-radius:10px;
  padding:14px; transition:.15s}
.icard:hover{border-color:var(--brand); box-shadow:0 2px 10px rgba(13,148,136,.08); text-decoration:none}
.ic-cat{font-size:11px; color:var(--brand-d); background:var(--brand-bg); display:inline-block;
  padding:2px 8px; border-radius:4px; margin-bottom:8px}
.ic-title{font-size:14px; font-weight:600; line-height:1.5; height:42px; overflow:hidden; color:var(--ink)}
.ic-price{margin-top:8px; display:flex; align-items:baseline; gap:8px}
.ic-price .p{font-size:22px; font-weight:800; color:var(--danger)}
.ic-price s{font-size:12px; color:var(--muted)}
.ic-price .off{font-size:11px; background:var(--danger); color:#fff; padding:2px 6px; border-radius:3px}
.ic-meta{font-size:12px; color:var(--muted); margin-top:6px}
.empty{color:var(--muted); padding:40px 0; text-align:center}

/* gone */
.gone{text-align:center; padding:60px 20px}
.gone h1{font-size:20px; color:var(--muted)}
.btn{display:inline-flex; align-items:center; justify-content:center; box-sizing:border-box;
  background:var(--brand); color:#fff; border:1px solid transparent; min-height:38px;
  padding:8px 18px; line-height:20px; font-size:14px; border-radius:6px; margin-top:10px}
.btn:hover{background:var(--brand-d); text-decoration:none}

/* footer */
.footer{border-top:1px solid var(--line); background:#fff; padding:22px 0; margin-top:20px}
.footer p{margin:4px 0; font-size:12px; color:var(--muted)}
.footer .links a{font-size:12px; margin:0 2px}

/* ===== 后台只读控制台 ===== */
.console-shell{display:flex; gap:0; align-items:stretch; min-height:calc(100vh - 58px - 120px)}
.cside{width:200px; flex:0 0 200px; background:#0F2E2A; color:#CFE9E4; padding:18px 0; border-radius:0 0 0 0}
.cside-h{font-weight:800; font-size:15px; padding:0 18px 14px; color:#fff; border-bottom:1px solid #1d4a44}
.cside a{display:block; padding:10px 18px; color:#BFE0DA; font-size:14px}
.cside a:hover{background:#16403a; text-decoration:none; color:#fff}
.cside a.on{background:#0D9488; color:#fff; font-weight:700}
.cside-foot{margin-top:18px; padding:14px 18px 0; border-top:1px solid #1d4a44}
.ro-badge{display:inline-block; background:#FBBF24; color:#3a2a00; font-size:11px; font-weight:700; padding:2px 8px; border-radius:10px}
.cside .logout{color:#FFB4A8; font-size:12px; padding:6px 0}
.cmain{flex:1; padding:22px 26px; overflow:auto}
.ro-bar{background:var(--amber-bg); border:1px solid #F6D9A8; color:var(--amber-ink);
  padding:9px 14px; border-radius:6px; font-size:13px; margin-bottom:16px}
.ch1{font-size:20px; margin:0 0 6px}
.ch2{font-size:15px; margin:22px 0 10px; color:var(--brand-d)}
.clead{font-size:13px; color:var(--muted); margin:0 0 16px}

.stat-grid{display:grid; grid-template-columns:repeat(3,1fr); gap:12px; margin:16px 0}
.stat{background:#fff; border:1px solid var(--line); border-radius:8px; padding:16px}
.stat.ok{border-color:var(--brand); background:var(--brand-bg)}
.stat .num{font-size:26px; font-weight:800; color:var(--brand-d)}
.stat .lab{font-size:12px; color:var(--muted); margin-top:4px}

.bars{margin:8px 0}
.bar-row{display:flex; align-items:center; gap:10px; margin:6px 0; font-size:13px}
.bar-lab{width:90px; color:var(--muted)}
.bar-track{flex:1; background:#EEF2F5; border-radius:4px; height:14px; overflow:hidden}
.bar-fill{display:block; height:100%; background:var(--brand)}
.bar-num{width:30px; text-align:right; font-weight:700}

.ctable{width:100%; border-collapse:collapse; background:#fff; font-size:13px; margin:8px 0; border:1px solid var(--line)}
.ctable th{background:#F1F5F9; text-align:left; padding:9px 10px; font-weight:700; color:#334155; border-bottom:1px solid var(--line)}
.ctable td{padding:8px 10px; border-bottom:1px solid #EEF2F5; vertical-align:top}
.ctable tr:hover td{background:#FAFDFC}
.num{text-align:right; font-variant-numeric:tabular-nums}
.mono{font-family:ui-monospace,Menlo,Consolas,monospace; font-size:12px}
.cnt{font-size:12px; color:var(--muted); margin-top:8px}

.pill{display:inline-block; font-size:11px; padding:2px 8px; border-radius:10px; background:#E2E8F0; color:#334}
.pill.onsale,.pill.verified,.pill.preferred,.pill.ok{background:var(--brand-bg); color:var(--brand-d)}
.pill.sold,.pill.settled,.pill.normal{background:#EFF6FF; color:#1D4ED8}
.pill.expired,.pill.draft,.pill.created{background:#F1F5F9; color:#64748B}
.pill.restricted{background:#FEF3C7; color:#92400E}
.pill.banned,.pill.arbitrating{background:#FEE2E2; color:#B91C1C}

.filter{display:flex; gap:10px; align-items:center; margin-bottom:14px; flex-wrap:wrap}
.filter select{padding:7px 10px; border:1px solid var(--line); border-radius:6px; font-size:13px}
.filter button,.login-form button{background:var(--brand); color:#fff; border:0; padding:8px 18px; border-radius:6px; cursor:pointer; font-size:13px}
.filter .link{font-size:13px; color:var(--brand-d)}

.flow{list-style:none; counter-reset:step; padding:0; margin:10px 0}
.flow li{position:relative; padding:12px 16px 12px 52px; margin-bottom:10px; background:#fff; border:1px solid var(--line); border-radius:8px}
.flow li::before{counter-increment:step; content:counter(step); position:absolute; left:14px; top:12px;
  width:24px; height:24px; background:var(--brand); color:#fff; border-radius:50%; text-align:center; line-height:24px; font-weight:800; font-size:13px}
.flow li b{display:block; font-size:14px}
.flow li span{font-size:13px; color:var(--muted)}

.sample{background:#fff; border:1px solid var(--line); border-radius:8px; padding:14px 18px; margin:8px 0}
.sample .row{display:flex; gap:12px; padding:5px 0; font-size:13px; border-bottom:1px dashed #EEF2F5}
.sample .row:last-child{border-bottom:0}
.sample .row span{width:110px; color:var(--muted)}
.sample .row b{font-weight:600}

.note-card{background:var(--amber-bg); border:1px solid #FDE68A; border-radius:8px; padding:12px 16px; font-size:13px; color:#7c5a00; margin-top:18px}
.note-card code{background:#fff; padding:1px 5px; border-radius:3px}

/* login */
.login-wrap{max-width:380px; margin:40px auto; background:#fff; border:1px solid var(--line); border-radius:10px; padding:26px}
.cl-h1{font-size:19px; margin:0 0 4px}
.cl-sub{font-size:13px; color:var(--muted); margin:0 0 18px}
.login-form label{display:block; font-size:13px; color:#334; margin-bottom:12px}
.login-form input{display:block; width:100%; padding:9px 11px; border:1px solid var(--line); border-radius:6px; margin-top:5px; font-size:14px}
.login-form button{width:100%; margin-top:6px}
.cl-hint{font-size:12px; color:var(--muted); margin:10px 0 0}
.cl-hint code{background:#F1F5F9; padding:1px 6px; border-radius:3px}

/* ===== W3 前台新增 ===== */
/* hero + 搜索框 */
.hero{background:linear-gradient(135deg,#0D9488,#0B5C55); color:#fff; border-radius:12px;
  padding:26px 24px; margin-bottom:22px}
.hero .page-h1{color:#fff; font-size:23px; margin:0 0 8px}
.hero .page-lead{color:#D8FBF4; font-size:14px; margin:0 0 16px; max-width:720px}
.searchbar{display:flex; gap:10px; max-width:640px}
.searchbar input{flex:1; padding:11px 14px; border:0; border-radius:8px; font-size:14px; outline:none}
.searchbar button{background:var(--amber); color:#1F1400; border:0; padding:0 22px; border-radius:8px;
  font-weight:700; font-size:14px; letter-spacing:6px; text-indent:3px; cursor:pointer}
.searchbar button:hover{background:#E88A1A}

/* 品类导航 */
.catnav h2, .hero + section h2{font-size:17px; margin:6px 0 12px; padding-left:10px; border-left:3px solid var(--brand)}
.catgrid{display:grid; grid-template-columns:repeat(auto-fill,minmax(120px,1fr)); gap:12px; margin-bottom:26px}
.catcard{display:flex; align-items:center; justify-content:center; text-align:center;
  background:#fff; border:1px solid var(--line); border-radius:10px; padding:18px 10px;
  font-size:14px; font-weight:600; color:var(--brand-d); transition:.15s}
.catcard:hover{border-color:var(--brand); background:var(--brand-bg); text-decoration:none;
  box-shadow:0 2px 10px rgba(13,148,136,.1)}

/* 语义标签 */
.tags{display:flex; flex-wrap:wrap; gap:6px; margin:0 0 14px}
.tag{font-size:12px; color:var(--brand-d); background:var(--brand-bg); border:1px solid #CCFBF1;
  padding:2px 10px; border-radius:99px}
.tag:hover{background:#CCFBF1; text-decoration:none}
.ic-tags{margin-top:8px; display:flex; flex-wrap:wrap; gap:5px}
.icard .tag{font-size:11px; padding:1px 8px}

/* 价格对比（复用 .facts，补充强调） */
.price-card .save{font-weight:800}

/* 列表筛选输入 */
.num-in{width:78px; padding:7px 9px; border:1px solid var(--line); border-radius:6px; font-size:13px}

/* FAQ 问句（H3，供 FAQPage 结构化）*/
.qa h3.q{margin:0 0 4px; font-size:14px; font-weight:700; color:#0F172A; line-height:1.5}

/* ===== W15 媒体位渲染（视频+图片滑屏轮播） ===== */
.media-slider{position:relative; width:100%; border-radius:8px; overflow:hidden; background:#0f172a; touch-action:pan-y; user-select:none}
.media-track{display:flex; width:100%; transition:transform .25s ease; will-change:transform}
.media-slide{flex:0 0 100%; width:100%; display:flex; align-items:center; justify-content:center; background:#000; aspect-ratio:16/7; max-height:320px}
.slide-image{width:100%; height:100%; object-fit:cover; display:block}
.slide-video{width:100%; height:100%; max-height:100%; display:block; background:#000}
.slide-image-link{display:block; width:100%; height:100%}
.slide-video-link{display:flex; align-items:center; justify-content:center; width:100%; height:100%; color:#fff; text-decoration:none; font-size:16px; font-weight:600}
.media-arrow{position:absolute; top:50%; transform:translateY(-50%); width:36px; height:36px; border:0; border-radius:50%; background:rgba(255,255,255,.85); color:#0f172a; font-size:16px; cursor:pointer; display:flex; align-items:center; justify-content:center; opacity:.7; transition:opacity .15s; z-index:2}
.media-arrow:hover{opacity:1}
.media-prev{left:10px}
.media-next{right:10px}
.media-dots{position:absolute; bottom:10px; left:50%; transform:translateX(-50%); display:flex; gap:8px; z-index:2}
.media-dot{width:8px; height:8px; border:0; border-radius:50%; background:rgba(255,255,255,.5); cursor:pointer; padding:0}
.media-dot.active{background:#fff}
@media (max-width:640px){
  .media-arrow{width:30px; height:30px; font-size:14px; opacity:.85}
  .media-dots{bottom:8px}
  .media-dot{width:6px; height:6px}
}
.detail-html{font-size:14px; line-height:1.75; color:#334155; word-break:break-word}
.detail-html h3{font-size:15px; margin:16px 0 8px; color:#0F172A}
.detail-html p{margin:0 0 12px}
.detail-html ul,.detail-html ol{margin:0 0 12px; padding-left:22px}
.detail-html li{margin:4px 0}

/* ===== 广告位（W16 占位框架；仅预留位置，冷启动不投放真实广告）===== */
.ad-slot{position:relative; margin:16px 0; padding:16px 18px; border:1px dashed var(--brand);
  border-radius:10px; background:var(--brand-bg)}
.ad-slot--ph{display:flex; align-items:center; gap:10px; min-height:54px}
.ad-ph-text{font-size:14px; font-weight:600; letter-spacing:.5px; color:var(--brand-d)}
.ad-tag{position:absolute; top:-9px; left:12px; background:var(--brand); color:#fff;
  font-size:11px; line-height:1.5; padding:1px 7px; border-radius:4px; letter-spacing:1px}
.ad-body{display:block; color:#0F172A; text-decoration:none; font-size:15px}
.ad-body:hover{text-decoration:underline}
.ad-advertiser{display:block; margin-top:6px; font-size:12px; color:#64748B}

/* 开业预告卡（用景区/酒店主题图做背景，文案叠加）*/
.ad-open{position:relative; border-radius:8px; overflow:hidden; line-height:1.3}
.ad-open img{display:block; width:100%; height:auto; border-radius:8px}
.ad-open--sq{height:280px; border-radius:10px}
.ad-open--sq img{height:100%; width:100%; object-fit:cover; border-radius:10px}
.ad-cap{position:absolute; left:18px; bottom:30px; margin:0; color:#fff;
  font-size:22px; font-weight:800; letter-spacing:1px; text-shadow:0 2px 6px rgba(0,0,0,.5)}
.ad-sub{position:absolute; left:18px; bottom:12px; margin:0; color:rgba(255,255,255,.92);
  font-size:13px; text-shadow:0 1px 4px rgba(0,0,0,.5)}
.ad-slot:has(.ad-open){border:0; background:transparent; padding:0}
.ad-slot:has(.ad-open) .ad-tag{top:10px; left:10px; border-radius:4px}
.ad-slot:has(.ad-open) .ad-advertiser{display:none}
.detail-html strong{color:#0F172A}
.detail-html img{max-width:100%; border-radius:6px; margin:8px 0}
.detail-html a{color:var(--brand)}

/* CTA */
.cta{display:flex; align-items:center; gap:14px; flex-wrap:wrap; margin:18px 0 6px}
.cta-note{font-size:12px; color:var(--amber-ink)}

/* ===== W13 轻量站内信（咨询浮层 / 会话列表 / 聊天） ===== */
.inquiry-modal{position:fixed; inset:0; background:rgba(15,23,42,.45); display:flex;
  align-items:center; justify-content:center; z-index:50; padding:16px}
.inquiry-modal[hidden]{display:none !important}
.inquiry-card{width:100%; max-width:440px; background:#fff; border-radius:12px; overflow:hidden;
  box-shadow:0 10px 40px rgba(0,0,0,.2)}
.inquiry-head{display:flex; align-items:center; justify-content:space-between;
  background:var(--brand); color:#fff; padding:11px 16px; font-size:14px; font-weight:700}
.inquiry-x{background:none; border:0; color:#fff; font-size:20px; line-height:1; cursor:pointer}
.inquiry-body{padding:16px}
.inquiry-tip{font-size:13px; color:var(--muted); margin:0 0 12px; line-height:1.6}
.inquiry-input{width:100%; border:1px solid var(--line); border-radius:8px; padding:10px 12px;
  font-size:14px; font-family:inherit; resize:vertical; outline:none}
.inquiry-input:focus{border-color:var(--brand)}
.inquiry-err{color:var(--danger); font-size:12px; margin-top:6px; min-height:14px}
.inquiry-foot{padding:0 16px 16px; text-align:right}
.inquiry-foot .btn{margin-top:0}

.identity-box{background:#fff; border:1px solid var(--line); border-radius:8px; padding:10px 14px;
  font-size:13px; margin-bottom:16px; display:flex; align-items:center; gap:8px; flex-wrap:wrap}

.conv-list{display:flex; flex-direction:column; gap:10px}
.conv-item{background:#fff; border:1px solid var(--line); border-radius:10px; padding:13px 16px; cursor:pointer; transition:.15s}
.conv-item:hover{border-color:var(--brand); box-shadow:0 2px 10px rgba(13,148,136,.08)}
.conv-item-top{display:flex; align-items:center; justify-content:space-between; gap:10px}
.conv-subj{font-size:15px; font-weight:700; color:var(--ink)}
.conv-unread{background:var(--danger); color:#fff; font-size:11px; font-weight:700; border-radius:99px;
  min-width:18px; height:18px; line-height:18px; text-align:center; padding:0 5px}
.conv-last{font-size:13px; color:#334; margin:6px 0 4px; overflow:hidden; text-overflow:ellipsis; white-space:nowrap}
.conv-meta{font-size:12px}

.conv-detail{margin-top:4px}
.conv-title{font-size:16px; margin:8px 0 12px}
.chat{background:#F8FAFC; border:1px solid var(--line); border-radius:10px; padding:14px;
  display:flex; flex-direction:column; gap:10px; max-height:460px; overflow:auto}
.bubble{max-width:78%; display:flex; flex-direction:column}
.bubble .bubble-body{background:#fff; border:1px solid var(--line); border-radius:10px; padding:9px 12px; font-size:14px; line-height:1.6; white-space:pre-wrap; word-break:break-word}
.bubble .bubble-time{font-size:11px; color:var(--muted); margin-top:3px}
.bubble.me{align-self:flex-end; align-items:flex-end}
.bubble.me .bubble-body{background:var(--brand); color:#fff; border-color:var(--brand)}
.bubble.seller{align-self:flex-start}
.bubble.platform{align-self:center; max-width:90%}
.bubble.platform .bubble-body{background:var(--amber-bg); border-color:#FDE68A; color:#7c5a00; font-size:12.5px}
.chat-input{display:flex; gap:10px; margin-top:12px; align-items:flex-end}
.chat-input .inquiry-input{flex:1}
.chat-input .btn{margin-top:0; white-space:nowrap}

/* 后台咨询管理（两栏：列表 + 详情） */
.inquiry-admin{display:grid; grid-template-columns:300px 1fr; gap:16px; align-items:start}
@media(max-width:760px){.inquiry-admin{grid-template-columns:1fr}}
.ia-list{display:flex; flex-direction:column; gap:8px}
.ia-item{display:block; background:#fff; border:1px solid var(--line); border-radius:8px; padding:11px 14px; transition:.15s}
.ia-item:hover{border-color:var(--brand); text-decoration:none}
.ia-item.on{border-color:var(--brand); background:var(--brand-bg)}
.ia-subj{font-size:14px; font-weight:700; color:var(--ink)}
.ia-meta{font-size:12px; color:var(--muted); margin-top:4px}
.ia-detail{background:#fff; border:1px solid var(--line); border-radius:10px; padding:16px}

/* ===== 移动端适配 ===== */
@media(max-width:760px){
  .wrap{padding:0 14px}
  .bar-inner{gap:10px; height:52px}
  .nav{display:none}                      /* 移动端顶部导航收起，首页有品类入口 */
  .hero{padding:20px 16px; border-radius:10px}
  .hero .page-h1{font-size:19px}
  .searchbar{flex-direction:column; gap:8px}
  .searchbar button{padding:11px 0}
  .catgrid{grid-template-columns:repeat(2,1fr); gap:10px}
  .cards{grid-template-columns:1fr}        /* 单列，触控友好 */
  .filter{flex-direction:column; align-items:stretch; gap:8px}
  .filter select, .filter .num-in, .filter button{width:100%}
  .price-main .num{font-size:32px}
  .grid2{grid-template-columns:1fr}
}
@media(max-width:420px){
  .catgrid{grid-template-columns:1fr 1fr}
  .ic-price .p{font-size:20px}
}

/* ===== W4 交易闭环 ===== */
.badge-w4{display:inline-block; font-size:11px; font-weight:700; color:#fff; background:#0D9488;
  padding:2px 9px; border-radius:10px; vertical-align:middle; margin-left:8px}
.btn-primary{display:inline-flex; align-items:center; justify-content:center; box-sizing:border-box;
  background:var(--brand); color:#fff; border:1px solid transparent; min-height:38px;
  padding:8px 18px; line-height:20px; font-size:14px; border-radius:6px; margin-top:10px; cursor:pointer}
.btn-primary:hover{background:var(--brand-d); text-decoration:none}
.btn-ghost{display:inline-flex; align-items:center; justify-content:center; box-sizing:border-box;
  background:#fff; color:var(--brand-d); border:1px solid var(--brand); min-height:38px;
  padding:8px 18px; line-height:20px; font-size:14px; border-radius:6px; margin-top:10px; cursor:pointer}
.btn-ghost:hover{background:var(--brand-bg); text-decoration:none}
.cta > *{margin-top:0}
.unread-badge{display:inline-flex; align-items:center; justify-content:center; box-sizing:border-box;
  min-width:16px; height:16px; line-height:16px; margin-left:6px; padding:0 4px; background:#E11D48;
  color:#fff; font-size:11px; font-weight:700; border-radius:9px; text-align:center; vertical-align:middle}
.btn-warn{display:inline-flex; align-items:center; justify-content:center; box-sizing:border-box;
  background:#B45309; color:#fff; border:1px solid transparent; min-height:38px;
  padding:8px 18px; line-height:20px; font-size:14px; border-radius:6px; margin-top:10px; cursor:pointer}
.btn-warn:hover{background:#92400E; text-decoration:none}
[hidden]{display:none !important}

/* 六步闭环 */
.steps{display:flex; flex-direction:column; gap:10px}
.step{display:flex; gap:14px; align-items:flex-start; background:#fff; border:1px solid var(--line);
  border-radius:8px; padding:12px 14px}
.step-no{font-weight:800; color:#fff; background:var(--brand); border-radius:6px; padding:6px 10px;
  font-size:13px; white-space:nowrap}
.step-desc{font-size:14px; color:#334; margin-top:2px}

/* 状态机图 */
.sm-svg{width:100%; height:auto; background:#fff; border:1px solid var(--line); border-radius:8px; padding:8px}

/* 发布表单 */
.form{max-width:760px}
.field{display:flex; flex-direction:column; font-size:13px; color:#334}
.field span{margin-bottom:4px; color:var(--muted)}
.field input, .field select{padding:9px 11px; border:1px solid var(--line); border-radius:6px; font-size:14px; outline:none}
.field input:focus, .field select:focus{border-color:var(--brand)}
.check{display:block; font-size:13px; color:#334}

/* 动态凭证 */
.qr-box{background:#fff; border:1px solid var(--line); border-radius:10px; padding:16px; text-align:center}
.qr-title{font-size:13px; color:var(--muted); margin-bottom:8px}
.qr{width:200px; height:200px; image-rendering:pixelated; border:1px solid var(--line); border-radius:6px}
.qr-code{margin-top:10px; font-size:13px; font-family:ui-monospace,Menlo,Consolas,monospace}
.qr-note{font-size:11px; color:var(--muted); margin-top:4px; word-break:break-all}

@media(max-width:760px){
  .qr-box{margin-top:14px}
}

/* ===== W6 折扣指数数据页 ===== */
.data-banner{background:var(--amber-bg); border:1px solid #FDE68A; border-radius:10px;
  padding:14px 18px; margin:8px 0 18px}
.data-banner strong{display:block; color:var(--amber-ink); font-size:14px; margin-bottom:4px}
.data-banner p{margin:0; font-size:13px; color:#7c5a00; line-height:1.7}
.data-question{color:var(--muted); font-size:14px; margin:0 0 16px; line-height:1.7}
.data-scope{display:flex; flex-wrap:wrap; gap:14px; margin:0 0 22px}
.data-scope div{background:#fff; border:1px solid var(--line); border-radius:8px; padding:10px 16px}
.data-scope dt{font-size:12px; color:var(--muted); margin:0}
.data-scope dd{margin:2px 0 0; font-size:18px; font-weight:800; color:var(--brand-d)}
.data-section{background:#fff; border:1px solid var(--line); border-radius:10px; padding:16px 20px; margin-bottom:18px}
.data-section h2{margin:0 0 4px}
.data-section .data-question{margin:0 0 12px}
.data-table{width:100%; border-collapse:collapse; font-size:13px; margin:4px 0}
.data-table caption{caption-side:top; text-align:left; font-size:12px; color:var(--muted); padding:6px 0}
.data-table th{background:#F1F5F9; text-align:left; padding:9px 10px; font-weight:700; color:#334;
  border-bottom:2px solid var(--line); white-space:nowrap; font-size:12.5px}
.data-table td{padding:8px 10px; border-bottom:1px solid #EEF2F5; vertical-align:top}
.data-table tr:hover td{background:#FAFDFC}
.data-table .num{text-align:right; font-variant-numeric:tabular-nums; font-weight:600}
.data-table .sub{font-size:12px; color:var(--muted); line-height:1.6}
.data-table .sub .n{display:inline-block; background:#E2E8F0; color:#475569; border-radius:4px;
  padding:0 5px; margin-left:3px; font-size:11px}
.data-table .ok{color:var(--brand-d); font-weight:700}
.data-table .warn{color:var(--amber-ink); background:var(--amber-bg); border:1px solid #F6D9A8;
  border-radius:4px; padding:1px 7px; font-size:12px; cursor:help}
.data-empty{background:#F8FAFC; border:1px dashed var(--line); border-radius:8px; padding:16px 18px;
  font-size:13px; color:var(--muted)}
.data-empty b{color:var(--ink)}
.muted{color:var(--muted)}
.data-method{display:grid; grid-template-columns:auto 1fr; gap:6px 16px; margin:8px 0 22px;
  background:#fff; border:1px solid var(--line); border-radius:10px; padding:14px 20px}
.data-method div{display:contents}
.data-method dt{font-weight:700; color:var(--brand-d); font-size:13px}
.data-method dd{margin:0; font-size:13px; color:#334; line-height:1.6}
.data-links{font-size:13px; color:var(--muted); margin-top:10px}
.data-links a{margin:0 2px}

/* W9：折扣指数官方已发布快照横幅（仅真实数据达标发布后展示） */
.data-banner-published {
  background: #e6f7f1;
  border-left: 4px solid #1aa179;
  color: #0c513c;
}
.data-banner-published strong { color: #0c513c; }

/* ===== W22 买家需求智能匹配 ===== */
.match-form{background:#fff; border:1px solid var(--line); border-radius:10px; padding:16px 18px; margin-bottom:20px}
.mf-grid{display:grid; grid-template-columns:repeat(4,1fr); gap:12px}
@media(max-width:900px){.mf-grid{grid-template-columns:repeat(2,1fr)}}
@media(max-width:520px){.mf-grid{grid-template-columns:1fr}}
.mf-field{display:flex; flex-direction:column; font-size:13px; color:#334}
.mf-field > span{margin-bottom:5px; color:var(--muted); font-size:12px}
.mf-field select,.mf-field input{padding:9px 11px; border:1px solid var(--line); border-radius:6px; font-size:14px; outline:none; background:#fff}
.mf-field select:focus,.mf-field input:focus{border-color:var(--brand)}
.mf-actions{display:flex; align-items:center; gap:14px; margin-top:14px}
.btn-reset{display:inline-flex; align-items:center; justify-content:center; box-sizing:border-box;
  background:#fff; color:var(--muted); border:1px solid var(--line); min-height:38px;
  padding:8px 18px; line-height:20px; font-size:14px; border-radius:6px; margin-top:10px; cursor:pointer}
.btn-reset:hover{background:#F1F5F9; color:var(--ink); border-color:#CBD5E1}
.match-card{display:flex; flex-direction:column}
.ic-top{display:flex; align-items:center; justify-content:space-between; gap:8px; margin-bottom:8px}
.ic-top .ic-cat{margin-bottom:0}
.match-badge{font-size:11px; font-weight:700; padding:2px 9px; border-radius:99px; white-space:nowrap}
.match-high{background:var(--brand); color:#fff}
.match-mid{background:var(--brand-bg); color:var(--brand-d); border:1px solid #CCFBF1}
.match-low{background:#F1F5F9; color:#64748B}
.ic-reasons{display:flex; flex-wrap:wrap; gap:5px; margin-top:8px}
.reason{font-size:11px; color:#0F766E; background:#ECFDF5; border:1px solid #A7F3D0; padding:2px 8px; border-radius:99px}
.reason-love{color:#BE185D; background:#FDF2F8; border-color:#FBCFE8; font-weight:700}

/* W22 增强：演示身份栏 / 偏好画像 / 自然语言框 / 咨询·购买按钮 */
.buyer-bar{display:flex; flex-wrap:wrap; align-items:center; gap:10px; background:#F0F9FF; border:1px solid #BAE6FD; border-radius:8px; padding:9px 14px; margin-bottom:14px; font-size:13px}
.buyer-bar .bb-id{font-weight:700; color:#0369A1}
.buyer-bar .bb-note{color:#475569}
.pref-card{background:#FFF7ED; border:1px solid #FED7AA; border-radius:8px; padding:10px 14px; margin-bottom:16px; font-size:13px}
.pref-card .pref-title{font-weight:700; color:#C2410C; margin-bottom:6px}
.pref-card .pref-line{color:#7C2D12; margin:3px 0}
.pref-chip{display:inline-block; background:#FFEDD5; border:1px solid #FDBA74; color:#9A3412; border-radius:99px; padding:1px 9px; margin:2px 4px 2px 0; font-size:12px}
.nl-box{background:linear-gradient(135deg,#ECFDF5,#F0F9FF); border:1px solid #99F6E4; border-radius:10px; padding:14px 16px; margin-bottom:14px}
.nl-label{display:block; font-size:13px; font-weight:700; color:#0F766E; margin-bottom:8px}
.nl-row{display:flex; gap:10px; flex-wrap:wrap; align-items:stretch}
.nl-row .nl-input{flex:1; min-width:260px; min-height:44px}
.nl-row .btn-primary{margin-top:0; min-height:44px}
.nl-input{flex:1; min-width:260px; padding:11px 13px; border:1px solid var(--line); border-radius:8px; font-size:14px; outline:none}
.nl-input:focus{border-color:var(--brand)}
.parse-chips{margin-top:9px; font-size:12.5px; color:#0F766E; background:#ECFDF5; border:1px solid #A7F3D0; border-radius:99px; padding:4px 12px; display:inline-block}
.mf-details{border:1px solid var(--line); border-radius:8px; padding:10px 14px; margin-bottom:6px; background:#FBFDFE}
.mf-details > summary{cursor:pointer; font-size:13px; color:var(--brand-d); font-weight:600; outline:none}
.is-personal{border-color:#F9A8D4 !important; box-shadow:0 0 0 2px #FCE7F3 inset}
.ic-actions{display:flex; gap:8px; margin-top:10px}
.btn-consult,.btn-buy{border:none; border-radius:7px; padding:8px 14px; font-size:13px; font-weight:700; cursor:pointer}
.btn-consult{background:#E0F2FE; color:#0369A1; border:1px solid #BAE6FD}
.btn-consult:hover{background:#BAE6FD}
.btn-buy{background:var(--brand); color:#fff}
.btn-buy:hover{background:var(--brand-d)}
.buy-form{margin:0}

/* ===== 立即购买弹窗 ===== */
.modal-mask{position:fixed; inset:0; background:rgba(15,23,42,.45); display:flex; align-items:center; justify-content:center; z-index:50; padding:16px}
.modal-box{background:#fff; border-radius:14px; width:min(420px,94vw); box-shadow:0 20px 60px rgba(0,0,0,.25); overflow:hidden}
.modal-head{background:var(--brand); color:#fff; padding:13px 18px; font-weight:700; font-size:15px}
.modal-body{padding:16px 18px; font-size:13.5px; color:#334155}
.bm-ok{color:#059669; font-weight:700; margin-bottom:10px}
.bm-row{display:flex; justify-content:space-between; gap:12px; padding:5px 0; border-bottom:1px dashed #E2E8F0}
.bm-row:last-child{border-bottom:none}
.bm-row span{color:#64748B}
.modal-foot{padding:12px 18px; display:flex; gap:10px; justify-content:flex-end; background:#F8FAFC}

/* ===== 我的消息页 ===== */
.msg-layout{display:flex; gap:14px; margin-top:8px; align-items:stretch}
.msg-list{flex:0 0 290px; border:1px solid var(--line); border-radius:10px; background:#fff; max-height:560px; overflow:auto}
.msg-list-head{padding:11px 14px; font-weight:700; color:var(--brand-d); border-bottom:1px solid var(--line); position:sticky; top:0; background:#fff}
.conv-item{padding:11px 14px; border-bottom:1px solid #F1F5F9; cursor:pointer}
.conv-item:hover{background:#F8FAFC}
.conv-item.active{background:#EFF6FF; box-shadow:inset 3px 0 0 var(--brand)}
.conv-subject{font-weight:600; color:#0F172A; font-size:13.5px; margin-bottom:3px; white-space:nowrap; overflow:hidden; text-overflow:ellipsis}
.conv-last{font-size:12.5px; color:#64748B; white-space:nowrap; overflow:hidden; text-overflow:ellipsis}
.conv-meta{font-size:11.5px; color:#94A3B8; margin-top:5px; display:flex; gap:8px; align-items:center}
.conv-unread{background:#EF4444; color:#fff; border-radius:99px; padding:1px 7px; font-weight:700}
.msg-detail{flex:1; border:1px solid var(--line); border-radius:10px; background:#fff; display:flex; flex-direction:column; min-height:560px}
.msg-detail-empty{padding:40px; text-align:center; color:#94A3B8; font-size:14px}
.msg-detail-head{padding:12px 16px; border-bottom:1px solid var(--line)}
.dh-subject{font-weight:700; color:#0F172A; font-size:14.5px}
.dh-meta{font-size:12px; color:#94A3B8; margin-top:3px}
.msg-bubbles{flex:1; overflow:auto; padding:16px; background:#F8FAFC; display:flex; flex-direction:column; gap:10px}
.bubble{max-width:74%; padding:9px 12px; border-radius:12px; font-size:13.5px}
.bubble-role{font-size:11px; color:#94A3B8; margin-bottom:2px}
.bubble-body{color:#0F172A; white-space:pre-wrap; word-break:break-word}
.bubble-time{font-size:10.5px; color:#B6C2D2; margin-top:4px; text-align:right}
.bubble.mine{align-self:flex-end; background:var(--brand); color:#fff; border-bottom-right-radius:3px}
.bubble.mine .bubble-role,.bubble.mine .bubble-time{color:rgba(255,255,255,.8)}
.bubble.theirs{align-self:flex-start; background:#fff; border:1px solid var(--line); border-bottom-left-radius:3px}
.msg-reply{display:flex; gap:8px; padding:11px 14px; border-top:1px solid var(--line); background:#fff}
.msg-reply input{flex:1; padding:9px 12px; border:1px solid var(--line); border-radius:8px; font-size:13.5px; outline:none}
.msg-reply input:focus{border-color:var(--brand)}
.msg-empty{padding:24px; color:#94A3B8; font-size:13px; text-align:center}
@media (max-width:760px){.msg-layout{flex-direction:column} .msg-list{flex:none; max-height:240px}}

/* ===== 导航未读角标（实时刷新） ===== */
.nav-badge{display:inline-flex; align-items:center; justify-content:center; min-width:16px; height:16px; padding:0 4px;
  margin-left:5px; background:var(--danger); color:#fff; font-size:11px; line-height:16px; font-weight:700;
  border-radius:99px; vertical-align:middle}
.nav-badge[hidden]{display:none}
