/* ============================================================
   CardMost 主样式表 app.css · 一比一落地版
   浅暖底 + 琥珀金 · 首页/列表/详情共享
   ============================================================ */

/* ===== 设计系统基础（变量/按钮/徽章/卡片/导航/页脚）===== */
/* ===================================================================
   CardMost 设计系统 · 高保真原型
   基于现有 app.css 变量体系扩展 — 浅暖底 + 琥珀金 + 专业信任
   =================================================================== */

:root{
  /* —— 底层色（浅暖，专业信任）—— */
  --bg:#FBFAF7; --bg2:#F4F1EB; --surface:#FFFFFF;
  --ink:#161E33; --ink2:#3A445C; --muted:#727A8C; --faint:#A7ADBB;
  --line:#EDE8DF; --line2:#DCD5C8;

  /* —— 品牌主色：琥珀金 —— */
  --amber:#E8940F; --amber-b:#F5A623; --amber-d:#B87407; --amber-soft:#FDF1DB; --amber-glow:rgba(245,166,35,.14);

  /* —— 辅助色 —— */
  --indigo:#2E3A73; --indigo-b:#3D4E9E; --indigo-soft:#EAECF7;
  --teal:#0C9382; --teal-soft:#D9F2EF;
  --red:#C0392B; --red-b:#E0503F; --red-soft:#FBEAE8;
  --green:#158A5A; --green-soft:#DDF3E8;

  /* —— 渐变 —— */
  --warm-grad:linear-gradient(105deg,#F7AE2E,#E8940F 55%,#D07C06);
  --ink-grad:linear-gradient(160deg,#1E2740,#141B2E);

  /* —— 字体 —— */
  --disp:'Space Grotesk','Noto Sans SC',sans-serif;
  --head:'Sora','Noto Sans SC',sans-serif;
  --body:'Noto Sans SC','PingFang SC',-apple-system,sans-serif;
  --mono:'IBM Plex Mono','Noto Sans SC',monospace;

  /* —— 圆角 / 阴影 —— */
  --r-lg:20px; --r-md:14px; --r-sm:10px;
  --sh-xs:0 1px 3px rgba(60,45,20,.06);
  --sh-sm:0 3px 16px -8px rgba(60,45,20,.18);
  --sh:0 20px 48px -22px rgba(60,45,20,.28);
  --sh-lg:0 32px 70px -30px rgba(40,30,15,.34);
}

*{margin:0;padding:0;box-sizing:border-box}
html{scroll-behavior:smooth}
body{background:var(--bg);color:var(--ink);font-family:var(--body);font-size:15px;line-height:1.65;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}
a{color:inherit;text-decoration:none}
img{max-width:100%;display:block}
button{font-family:inherit;cursor:pointer;border:none;background:none}
input{font-family:inherit}
.wrap{max-width:1200px;margin:0 auto;padding:0 24px}
.mono{font-family:var(--mono)}

/* ============ 按钮 ============ */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;font:600 14px var(--disp);border-radius:12px;padding:0 22px;height:44px;transition:all .16s;white-space:nowrap}
.btn-amber{background:var(--warm-grad);color:#fff;box-shadow:0 8px 20px -8px rgba(232,148,15,.6)}
.btn-amber:hover{transform:translateY(-2px);box-shadow:0 12px 26px -8px rgba(232,148,15,.7)}
.btn-ink{background:var(--ink);color:#fff}
.btn-ink:hover{background:#20293f;transform:translateY(-1px)}
.btn-indigo{background:var(--indigo);color:#fff}.btn-indigo:hover{background:var(--indigo-b)}
.btn-ghost{border:1.5px solid var(--line2);color:var(--ink2);background:var(--surface)}
.btn-ghost:hover{border-color:var(--amber-b);color:var(--amber-d)}
.btn-lg{height:52px;font-size:15.5px;border-radius:14px;padding:0 30px}
.btn-sm{height:38px;font-size:13px;padding:0 16px;border-radius:10px}
.btn-block{width:100%}
.btn:disabled{opacity:.5;cursor:not-allowed}

/* ============ 徽章 ============ */
.badge{display:inline-flex;align-items:center;gap:4px;font:600 11px var(--mono);padding:3px 9px;border-radius:6px;letter-spacing:.02em}
.badge.official{background:var(--amber-soft);color:var(--amber-d);border:1px solid var(--amber-b)}
.badge.auto{background:var(--teal-soft);color:var(--teal)}
.badge.api{background:var(--indigo-soft);color:var(--indigo)}
.badge.manual{background:var(--bg2);color:var(--muted)}
.badge.swap{background:var(--green-soft);color:var(--green)}
.badge.best{background:var(--red-soft);color:var(--red);border:1px solid rgba(224,80,63,.35)}

/* ============ 卡片 ============ */
.card{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-lg);padding:24px;box-shadow:var(--sh-sm)}

/* ============ 导航 ============ */
.nav{position:sticky;top:0;z-index:50;background:rgba(251,250,247,.86);backdrop-filter:blur(16px) saturate(1.4);border-bottom:1px solid var(--line)}
.nav-in{display:flex;align-items:center;gap:28px;height:66px}
.logo{display:flex;align-items:center;gap:10px}
.logo-ic{width:38px;height:38px;border-radius:11px;background:var(--ink);color:var(--amber-b);display:flex;align-items:center;justify-content:center}
.logo-name{font:700 20px var(--head);letter-spacing:-.01em}.logo-name b{color:var(--amber)}
.nav-links{display:flex;align-items:center;gap:4px;margin-left:6px}
.nav-link{font:600 14px var(--body);color:var(--ink2);padding:8px 14px;border-radius:10px;transition:.14s}
.nav-link:hover{background:var(--bg2);color:var(--ink)}
.nav-link.on{color:var(--amber-d);background:var(--amber-soft)}
.nav-admin{color:var(--amber-d)}
.nav-right{margin-left:auto;display:flex;align-items:center;gap:10px}
.nav-user{display:flex;align-items:center;gap:9px;padding:5px 14px 5px 5px;border-radius:999px;border:1.5px solid var(--line2);transition:.14s}
.nav-user:hover{border-color:var(--amber-b)}
.nav-avatar{width:30px;height:30px;border-radius:50%;background:var(--warm-grad);color:#fff;display:flex;align-items:center;justify-content:center;font:700 13px var(--disp)}
.nav-nick{font:600 13.5px var(--body);color:var(--ink2)}

/* ============ 页脚 ============ */
.foot{background:var(--ink-grad);color:#8891ab;margin-top:72px;padding:52px 0 34px}
.foot-top{display:flex;justify-content:space-between;gap:40px;flex-wrap:wrap;padding-bottom:34px;border-bottom:1px solid rgba(255,255,255,.08)}
.foot-brand{max-width:320px}
.foot-logo{font:700 20px var(--head);color:#fff;margin-bottom:12px}.foot-logo b{color:var(--amber-b)}
.foot-brand p{font-size:13.5px;line-height:1.7;color:#7c86a3}
.foot-cols{display:flex;gap:56px;flex-wrap:wrap}
.foot-col h4{font:700 13px var(--head);color:#c3cae0;margin-bottom:14px;letter-spacing:.03em}
.foot-col a{display:block;font-size:13.5px;color:#7c86a3;padding:5px 0;transition:.14s}
.foot-col a:hover{color:var(--amber-b)}
.foot-bot{padding-top:24px;display:flex;justify-content:space-between;flex-wrap:wrap;gap:14px;font-size:12.5px;color:#5f6883}
.foot-trust{display:flex;gap:18px}
.foot-trust span{display:flex;align-items:center;gap:6px}

/* ============ 通用小组件 ============ */
.sec-head{display:flex;align-items:flex-end;justify-content:space-between;margin-bottom:22px;gap:16px}
.sec-t{font:800 25px var(--head);letter-spacing:-.02em}
.sec-x{font:500 13px var(--body);color:var(--muted)}
.sec-more{font:600 13.5px var(--body);color:var(--amber-d);display:inline-flex;align-items:center;gap:5px}
.sec-more:hover{gap:9px}
.pill{display:inline-flex;align-items:center;gap:7px;font:600 12px var(--mono);letter-spacing:.05em;color:var(--amber-d);background:var(--amber-glow);border:1px solid rgba(245,166,35,.32);padding:7px 15px;border-radius:999px}
.dot-live{width:7px;height:7px;border-radius:50%;background:var(--teal);box-shadow:0 0 0 0 rgba(12,147,130,.5);animation:pulse 2s infinite}
@keyframes pulse{0%{box-shadow:0 0 0 0 rgba(12,147,130,.45)}70%{box-shadow:0 0 0 7px rgba(12,147,130,0)}100%{box-shadow:0 0 0 0 rgba(12,147,130,0)}}

.price-usd{font:800 var(--disp);color:var(--amber-d)}
.price-cny{font:500 var(--mono);color:var(--muted);font-style:normal}

@media(max-width:820px){
  .nav-links{display:none}
  .foot-top{flex-direction:column;gap:28px}
  .wrap{padding:0 18px}
}



/* ===== 首页专属 ===== */

/* ============ HERO ============ */
.hero{position:relative;overflow:hidden;padding:60px 0 54px}
.hero::before{content:"";position:absolute;inset:0;background:
  radial-gradient(680px 340px at 78% -8%,rgba(245,166,35,.16),transparent 62%),
  radial-gradient(520px 320px at 8% 108%,rgba(46,58,115,.09),transparent 60%);pointer-events:none}
.hero-in{position:relative;text-align:center;max-width:840px;margin:0 auto}
.hero .pill{margin-bottom:22px}
.hero h1{font:800 clamp(34px,5.2vw,54px) var(--head);line-height:1.1;letter-spacing:-.025em;margin-bottom:18px}
.hero h1 .am{background:var(--warm-grad);-webkit-background-clip:text;background-clip:text;color:transparent}
.hero-sub{font-size:17px;color:var(--ink2);max-width:600px;margin:0 auto 34px;line-height:1.65}

/* 搜索框 C 位 */
.search-hero{max-width:640px;margin:0 auto;position:relative}
.search-box{display:flex;align-items:center;gap:10px;background:var(--surface);border:2px solid var(--line2);border-radius:16px;padding:8px 8px 8px 20px;box-shadow:var(--sh);transition:.18s}
.search-box:focus-within{border-color:var(--amber-b);box-shadow:0 24px 54px -24px rgba(232,148,15,.4)}
.search-box svg{color:var(--muted);flex-shrink:0}
.search-box input{flex:1;border:none;outline:none;height:44px;font-size:16px;background:none;color:var(--ink)}
.search-box input::placeholder{color:var(--faint)}
.search-hot{display:flex;align-items:center;gap:9px;margin-top:16px;flex-wrap:wrap;justify-content:center}
.search-hot span{font-size:12.5px;color:var(--muted)}
.search-hot a{font:500 12.5px var(--body);color:var(--ink2);background:var(--surface);border:1px solid var(--line);padding:5px 13px;border-radius:999px;transition:.14s}
.search-hot a:hover{border-color:var(--amber-b);color:var(--amber-d);background:var(--amber-soft)}

/* HERO 底部微信任条 */
.hero-strip{display:flex;justify-content:center;gap:30px;flex-wrap:wrap;margin-top:38px}
.hero-strip .hs{display:flex;align-items:center;gap:9px;font-size:13.5px;color:var(--ink2);font-weight:500}
.hero-strip .hs svg{color:var(--amber-d)}

/* ============ 品类快捷入口 ============ */
.cats{padding:16px 0 8px}
.cats-grid{display:grid;grid-template-columns:repeat(6,1fr);gap:14px}
.cat{position:relative;background:var(--surface);border:1px solid var(--line);border-radius:var(--r-md);padding:20px 16px;text-align:center;transition:.18s;overflow:hidden}
.cat:hover{transform:translateY(-4px);box-shadow:var(--sh);border-color:var(--amber-b)}
.cat-ic{width:48px;height:48px;margin:0 auto 12px;border-radius:13px;display:flex;align-items:center;justify-content:center;font-size:24px}
.cat:nth-child(1) .cat-ic{background:var(--amber-soft)}
.cat:nth-child(2) .cat-ic{background:var(--indigo-soft)}
.cat:nth-child(3) .cat-ic{background:var(--teal-soft)}
.cat:nth-child(4) .cat-ic{background:var(--red-soft)}
.cat:nth-child(5) .cat-ic{background:var(--green-soft)}
.cat:nth-child(6) .cat-ic{background:var(--bg2)}
.cat-name{font:700 14.5px var(--head);margin-bottom:3px}
.cat-sub{font:500 11.5px var(--body);color:var(--muted)}
.cat-soon{position:absolute;top:9px;right:9px;font:600 9.5px var(--mono);color:var(--muted);background:var(--bg2);padding:2px 7px;border-radius:5px}

/* ============ 热门商品 ============ */
.section{padding:44px 0}
.hot-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:18px}
.hot-card{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-lg);padding:20px;transition:.18s;display:block;position:relative}
.hot-card:hover{transform:translateY(-4px);box-shadow:var(--sh);border-color:var(--amber-b)}
.hc-top{display:flex;justify-content:space-between;align-items:center;margin-bottom:14px}
.hc-logo{width:46px;height:46px;border-radius:12px;background:var(--bg2);display:flex;align-items:center;justify-content:center;font-size:23px}
.hc-name{font:700 16px var(--head);margin-bottom:9px;letter-spacing:-.01em}
.hc-attrs{display:flex;gap:7px;margin-bottom:16px;flex-wrap:wrap}
.hc-attrs span{font:500 11px var(--mono);color:var(--muted);background:var(--bg2);padding:3px 8px;border-radius:6px}
.hc-foot{display:flex;align-items:flex-end;justify-content:space-between;padding-top:14px;border-top:1px dashed var(--line2)}
.hc-price .lbl{font-size:11px;color:var(--muted);display:block;margin-bottom:2px}
.hc-price b{font:800 20px var(--disp);color:var(--amber-d)}
.hc-price .cny{font:500 11px var(--mono);color:var(--muted);margin-left:4px}
.hc-merchants{text-align:right}
.hc-merchants .n{font:700 14px var(--disp);color:var(--ink)}
.hc-merchants .t{font-size:10.5px;color:var(--muted)}
.hc-flag{position:absolute;top:0;right:20px;transform:translateY(-50%);font:600 10px var(--mono);color:#fff;background:var(--red-b);padding:3px 9px;border-radius:6px;box-shadow:0 4px 10px -3px rgba(224,80,63,.5)}

/* ============ 比价卖点带 ============ */
.pitch{background:var(--ink-grad);border-radius:24px;padding:44px 48px;color:#fff;position:relative;overflow:hidden}
.pitch::before{content:"";position:absolute;inset:0;background:radial-gradient(500px 260px at 88% 0%,rgba(245,166,35,.18),transparent 60%)}
.pitch-in{position:relative;display:grid;grid-template-columns:1.1fr 1fr;gap:40px;align-items:center}
.pitch h2{font:800 30px var(--head);line-height:1.2;letter-spacing:-.02em;margin-bottom:14px}
.pitch h2 .am{color:var(--amber-b)}
.pitch p{color:#a8b0c9;font-size:15px;line-height:1.7;margin-bottom:22px}
.pitch-cta{display:flex;gap:12px}
/* 比价小演示 */
.demo{background:rgba(255,255,255,.05);border:1px solid rgba(255,255,255,.1);border-radius:16px;padding:18px}
.demo-t{font:600 12px var(--mono);color:#8891ab;margin-bottom:14px;display:flex;align-items:center;gap:8px}
.demo-row{display:flex;align-items:center;justify-content:space-between;padding:11px 14px;border-radius:10px;margin-bottom:8px;background:rgba(255,255,255,.04)}
.demo-row.best{background:rgba(245,166,35,.14);border:1px solid rgba(245,166,35,.4)}
.demo-m{display:flex;align-items:center;gap:9px;font-size:13px;color:#d4d9e8}
.demo-dot{width:8px;height:8px;border-radius:50%;background:#5f6883}
.demo-row.best .demo-dot{background:var(--amber-b)}
.demo-p{font:700 15px var(--disp)}
.demo-row.best .demo-p{color:var(--amber-b)}
.demo-p s{font:400 12px var(--mono);color:#5f6883;margin-right:7px}

/* ============ 运作方式 ============ */
.how-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:16px}
.how{position:relative;padding:26px 22px;background:var(--surface);border:1px solid var(--line);border-radius:var(--r-md)}
.how-n{font:800 15px var(--disp);color:var(--amber-d);width:34px;height:34px;border-radius:10px;background:var(--amber-soft);display:flex;align-items:center;justify-content:center;margin-bottom:14px}
.how h3{font:700 16px var(--head);margin-bottom:7px}
.how p{font-size:13.5px;color:var(--muted);line-height:1.6}
.how-arrow{position:absolute;top:38px;right:-12px;color:var(--line2);z-index:2}

/* ============ 信任四栏 ============ */
.trust-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:16px}
.t-item{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-md);padding:24px}
.t-ic{width:44px;height:44px;border-radius:12px;background:var(--amber-soft);color:var(--amber-d);display:flex;align-items:center;justify-content:center;margin-bottom:14px}
.t-item b{font:700 16px var(--head);display:block;margin-bottom:6px}
.t-item span{font-size:13.5px;color:var(--muted);line-height:1.6}

@media(max-width:1080px){
  .cats-grid{grid-template-columns:repeat(3,1fr)}
  .hot-grid{grid-template-columns:repeat(2,1fr)}
  .how-grid{grid-template-columns:repeat(2,1fr)}
  .trust-grid{grid-template-columns:repeat(2,1fr)}
  .how-arrow{display:none}
}
@media(max-width:640px){
  .cats-grid{grid-template-columns:repeat(2,1fr)}
  .hot-grid{grid-template-columns:1fr}
  .pitch-in{grid-template-columns:1fr}
  .pitch{padding:32px 24px}
  .trust-grid{grid-template-columns:1fr}
}


/* ===== 列表页专属 ===== */

.market{padding:28px 0 40px}
.page-head{margin-bottom:22px}
.page-head h1{font:800 30px var(--head);letter-spacing:-.02em;margin-bottom:6px}
.page-head p{color:var(--muted);font-size:14.5px}

/* 搜索栏 */
.search-bar{display:flex;align-items:center;gap:10px;background:var(--surface);border:2px solid var(--line2);border-radius:14px;padding:7px 7px 7px 18px;margin-bottom:20px;box-shadow:var(--sh-sm);transition:.16s}
.search-bar:focus-within{border-color:var(--amber-b)}
.search-bar svg{color:var(--muted);flex-shrink:0}
.search-bar input{flex:1;border:none;outline:none;height:42px;font-size:15px;background:none}
.search-bar input::placeholder{color:var(--faint)}

/* 国家横向筛选带 */
.country-bar{display:flex;align-items:center;gap:14px;background:var(--surface);border:1px solid var(--line);border-radius:14px;padding:12px 16px;margin-bottom:20px;box-shadow:var(--sh-xs)}
.cb-label{font:700 13px var(--head);color:var(--ink2);white-space:nowrap;flex-shrink:0}
.cb-scroll{display:flex;gap:8px;overflow-x:auto;padding-bottom:2px;scrollbar-width:thin}
.cb-scroll::-webkit-scrollbar{height:5px}
.cb-scroll::-webkit-scrollbar-thumb{background:var(--line2);border-radius:3px}
.cb{font:600 13px var(--body);color:var(--ink2);background:var(--bg2);border:1.5px solid transparent;padding:7px 15px;border-radius:10px;cursor:pointer;white-space:nowrap;transition:.14s}
.cb:hover{border-color:var(--amber-b);color:var(--amber-d)}
.cb.on{background:var(--amber);border-color:var(--amber);color:#fff;box-shadow:0 4px 12px -4px rgba(232,148,15,.5)}

/* 布局：左筛选 + 右列表 */
.market-body{display:grid;grid-template-columns:236px 1fr;gap:26px;align-items:start}

/* 左侧筛选 */
.filters{position:sticky;top:82px}
.filter-card{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-md);padding:18px 18px 6px;box-shadow:var(--sh-sm);margin-bottom:16px}
.filter-g{margin-bottom:18px}
.filter-g h4{font:700 12px var(--head);color:var(--ink2);letter-spacing:.04em;margin-bottom:11px;text-transform:uppercase}
.f-opt{display:flex;align-items:center;gap:9px;padding:7px 0;cursor:pointer;font-size:13.5px;color:var(--ink2)}
.f-opt input{accent-color:var(--amber);width:15px;height:15px}
.f-opt:hover{color:var(--ink)}
.f-opt .cnt{margin-left:auto;font:500 11px var(--mono);color:var(--faint)}
.chip-row{display:flex;flex-wrap:wrap;gap:7px}
.chip{font:600 12px var(--mono);color:var(--ink2);background:var(--bg2);border:1px solid transparent;padding:5px 11px;border-radius:8px;cursor:pointer;transition:.14s}
.chip:hover{border-color:var(--amber-b);color:var(--amber-d)}
.chip.on{background:var(--amber-soft);border-color:var(--amber-b);color:var(--amber-d)}
.filter-reset{font:600 12.5px var(--body);color:var(--muted);padding:10px 0;cursor:pointer;display:flex;align-items:center;gap:6px}
.filter-reset:hover{color:var(--amber-d)}

/* 右侧工具条 */
.list-tools{display:flex;align-items:center;justify-content:space-between;margin-bottom:16px;gap:12px;flex-wrap:wrap}
.list-count{font-size:13.5px;color:var(--muted)}
.list-count b{color:var(--ink);font-weight:700}
.sort-tabs{display:flex;gap:4px;background:var(--bg2);padding:4px;border-radius:10px}
.sort-tab{font:600 12.5px var(--body);color:var(--muted);padding:6px 13px;border-radius:7px;cursor:pointer;transition:.14s}
.sort-tab.on{background:var(--surface);color:var(--ink);box-shadow:var(--sh-xs)}

/* 商品卡片网格 */
.grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}
.asset-card{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-lg);padding:20px;transition:.18s;display:flex;flex-direction:column;position:relative;overflow:hidden}
.asset-card:hover{transform:translateY(-4px);box-shadow:var(--sh);border-color:var(--amber-b)}
.ac-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:14px}
.ac-logo{width:44px;height:44px;border-radius:12px;background:var(--bg2);display:flex;align-items:center;justify-content:center;font-size:22px}
.ac-name{font:700 16px var(--head);margin-bottom:9px;letter-spacing:-.01em}
.ac-attrs{display:flex;gap:7px;flex-wrap:wrap;margin-bottom:16px}
.ac-attr{font:500 11px var(--mono);color:var(--muted);background:var(--bg2);padding:3px 8px;border-radius:6px}
.ac-attr.region{color:var(--amber-d);background:var(--amber-soft);font-weight:600}
.ac-foot{margin-top:auto;padding-top:14px;border-top:1px dashed var(--line2);display:flex;align-items:flex-end;justify-content:space-between}
.ac-price .lbl{font-size:11px;color:var(--muted);display:block;margin-bottom:2px}
.ac-price b{font:800 20px var(--disp);color:var(--amber-d)}
.ac-price .cny{font:500 11px var(--mono);color:var(--muted);margin-left:4px}
.ac-cmp{text-align:right;font-size:11px;color:var(--muted)}
.ac-cmp .n{font:700 13px var(--disp);color:var(--ink)}
.ac-savebar{display:inline-flex;align-items:center;gap:5px;font:600 10.5px var(--mono);color:var(--green);background:var(--green-soft);padding:3px 8px;border-radius:6px;margin-top:8px}

.load-more{text-align:center;margin-top:28px}

@media(max-width:960px){
  .market-body{grid-template-columns:1fr}
  .filters{position:static}
  .filter-card{display:flex;gap:24px;flex-wrap:wrap;padding:16px 18px}
  .filter-g{margin-bottom:0;flex:1;min-width:150px}
  .grid{grid-template-columns:repeat(2,1fr)}
}
@media(max-width:560px){.grid{grid-template-columns:1fr}}


/* ===== 详情页专属 ===== */

.detail{padding:22px 0 40px}
.crumb{font-size:13px;color:var(--muted);margin-bottom:16px}
.crumb a{color:var(--muted)}.crumb a:hover{color:var(--amber-d)}
.d-head{display:flex;gap:18px;align-items:flex-start;margin-bottom:22px}
.d-logo{width:64px;height:64px;border-radius:16px;background:var(--bg2);display:flex;align-items:center;justify-content:center;font-size:34px;flex-shrink:0;box-shadow:var(--sh-sm)}
.d-title h1{font:800 28px var(--head);letter-spacing:-.02em;margin-bottom:8px}
.d-title .d-sub{display:flex;gap:8px;flex-wrap:wrap;align-items:center}
.d-cur{font:600 13px var(--body);color:var(--ink2)}.d-cur b{color:var(--amber-d)}
.d-body{display:grid;grid-template-columns:1fr 380px;gap:24px;align-items:start}
.sec-t2{font:800 18px var(--head);margin-bottom:4px;letter-spacing:-.01em}
.sec-x2{font:500 12.5px var(--body);color:var(--muted);margin-bottom:16px}
.selector{margin-bottom:18px}
.sel-block{margin-bottom:20px}
.sel-label{display:flex;align-items:center;gap:8px;font:700 13px var(--head);color:var(--ink2);margin-bottom:11px}
.sel-label .req{font:600 10px var(--mono);color:var(--amber-d);background:var(--amber-soft);padding:2px 7px;border-radius:5px}
.sel-label .cur-pick{margin-left:auto;font:500 12px var(--body);color:var(--muted)}
.sel-label .cur-pick b{color:var(--amber-d)}
.country-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(112px,1fr));gap:9px}
.country{display:flex;align-items:center;gap:9px;padding:11px 13px;border:1.5px solid var(--line);border-radius:11px;cursor:pointer;transition:.14s;background:var(--surface)}
.country:hover{border-color:var(--amber-b);background:var(--bg)}
.country.on{border-color:var(--amber);background:var(--amber-soft);box-shadow:0 0 0 3px var(--amber-glow)}
.country .flag{font-size:22px;line-height:1;flex-shrink:0}
.country .c-name{font:700 13.5px var(--head);white-space:nowrap}
.country .c-code{font:500 10.5px var(--mono);color:var(--muted)}
.country.soldout{opacity:.45;cursor:not-allowed}
.country.soldout:hover{border-color:var(--line);background:var(--surface)}
.face-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(96px,1fr));gap:9px}
.face{position:relative;padding:13px 10px;border:1.5px solid var(--line);border-radius:11px;cursor:pointer;transition:.14s;background:var(--surface);text-align:center}
.face:hover{border-color:var(--amber-b);background:var(--bg)}
.face.on{border-color:var(--amber);background:var(--amber-soft);box-shadow:0 0 0 3px var(--amber-glow)}
.face .f-val{font:800 18px var(--disp);color:var(--ink);line-height:1.1}
.face.on .f-val{color:var(--amber-d)}
.face .f-low{font:500 11px var(--mono);color:var(--muted);margin-top:3px}
.face.on .f-low{color:var(--amber-d)}
.face .f-tag{position:absolute;top:-8px;left:50%;transform:translateX(-50%);font:600 9px var(--mono);color:#fff;background:var(--red-b);padding:2px 7px;border-radius:5px;white-space:nowrap}
.pricebar{display:flex;gap:10px;margin-bottom:18px;flex-wrap:wrap}
.pb{flex:1;min-width:120px;background:var(--surface);border:1px solid var(--line);border-radius:13px;padding:13px 16px;box-shadow:var(--sh-xs)}
.pb b{font:800 20px var(--disp);display:block;line-height:1.1}
.pb span{font-size:11px;color:var(--muted);margin-top:3px;display:block}
.pb.low{background:var(--ink-grad);border:none}.pb.low b{color:var(--amber-b)}.pb.low span{color:#a8b0c9}
.pb.save{background:var(--green-soft);border-color:transparent}.pb.save b{color:var(--green)}
.quote{display:flex;align-items:center;gap:14px;padding:15px 17px;border:1.5px solid var(--line);border-radius:13px;margin-bottom:10px;cursor:pointer;transition:.15s}
.quote:hover{border-color:var(--amber-b);background:var(--bg)}
.quote.on{border-color:var(--amber);background:var(--amber-soft);box-shadow:0 0 0 3px var(--amber-glow)}
.q-radio{width:19px;height:19px;border-radius:50%;border:2px solid var(--line2);display:flex;align-items:center;justify-content:center;flex-shrink:0}
.quote.on .q-radio{border-color:var(--amber)}
.quote.on .q-radio::after{content:"";width:9px;height:9px;border-radius:50%;background:var(--amber)}
.q-info{flex:1;min-width:0}
.q-name{font:700 15px var(--head);display:flex;align-items:center;gap:8px;margin-bottom:5px}
.q-meta{display:flex;align-items:center;gap:9px;flex-wrap:wrap}
.q-speed,.q-stock{font:500 11.5px var(--mono);color:var(--muted)}
.q-price{text-align:right;flex-shrink:0}
.q-price b{font:800 20px var(--disp);color:var(--ink);line-height:1.1}
.quote.on .q-price b{color:var(--amber-d)}
.q-price span{font:500 11px var(--mono);color:var(--muted);display:block;margin-top:1px}
.q-tag{display:inline-block;font:600 10px var(--mono);color:var(--muted);background:var(--bg2);padding:2px 7px;border-radius:5px;margin-top:5px}
.q-tag.best{color:var(--red);background:var(--red-soft)}
.val-card{background:linear-gradient(135deg,#F9F6F0,#FDF1DB);border:1px solid var(--amber-b);border-radius:var(--r-lg);padding:20px 22px;margin-top:20px;position:relative;overflow:hidden}
.val-card::before{content:"";position:absolute;top:-30px;right:-20px;width:130px;height:130px;background:radial-gradient(circle,rgba(245,166,35,.16),transparent 70%)}
.val-head{display:flex;align-items:center;gap:8px;margin-bottom:16px;position:relative}
.val-badge{font:700 10px var(--mono);color:var(--amber-d);background:#fff;border:1px solid var(--amber-b);padding:3px 9px;border-radius:6px;letter-spacing:.05em}
.val-head h3{font:700 14px var(--head)}
.val-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;position:relative}
.val-item .vl{font-size:11px;color:var(--muted);margin-bottom:4px}
.val-item .vv{font:800 20px var(--disp);color:var(--ink);line-height:1.1}
.val-item .vv.up{color:var(--green)}
.val-item .vs{font:500 10.5px var(--body);margin-top:3px;color:var(--muted)}
.val-item .vs.pos{color:var(--green)}
.val-note{font-size:11px;color:var(--muted);margin-top:14px;position:relative;line-height:1.5}
.order{position:sticky;top:82px}
.o-card{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-lg);padding:22px;box-shadow:var(--sh-sm)}
.o-summary{background:var(--bg);border:1px solid var(--line);border-radius:12px;padding:14px;margin-bottom:16px}
.o-summary .os-row{display:flex;justify-content:space-between;align-items:center;padding:5px 0;font-size:13px}
.o-summary .os-row span{color:var(--muted)}
.o-summary .os-row b{font-weight:700;color:var(--ink2)}
.o-selected{background:var(--amber-soft);border:1px solid var(--amber-b);border-radius:12px;padding:12px 14px;margin-bottom:16px;display:flex;justify-content:space-between;align-items:center}
.o-selected .lbl{font-size:11px;color:var(--amber-d);margin-bottom:2px}
.o-selected .nm{font:700 14px var(--head)}
.o-selected .pr{font:800 18px var(--disp);color:var(--amber-d)}
.o-row{display:flex;justify-content:space-between;align-items:center;padding:11px 0;border-bottom:1px solid var(--line)}
.o-row>span{font-size:13.5px;color:var(--ink2)}
.qty{display:flex;align-items:center;border:1.5px solid var(--line2);border-radius:10px;overflow:hidden}
.qty button{width:34px;height:34px;font-size:17px;color:var(--ink2);background:var(--bg2)}
.qty button:hover{background:var(--amber-soft);color:var(--amber-d)}
.qty b{width:42px;text-align:center;font:700 15px var(--disp)}
.insure{display:flex;align-items:flex-start;gap:10px;padding:13px 0;cursor:pointer}
.insure input{accent-color:var(--amber);width:17px;height:17px;margin-top:2px}
.insure span{font-size:13.5px;color:var(--ink2)}
.insure i{display:block;font-size:11.5px;color:var(--muted);font-style:normal;margin-top:2px}
.o-total{display:flex;justify-content:space-between;align-items:center;padding:15px 0 17px}
.o-total>span{font:700 15px var(--head)}
.o-total-n{text-align:right}
.o-total-n b{font:800 25px var(--disp);color:var(--amber-d);line-height:1}
.o-total-n i{font:500 12px var(--mono);color:var(--muted);font-style:normal}
.o-note{font-size:11.5px;color:var(--muted);text-align:center;margin-top:11px;line-height:1.5}
.o-note svg{vertical-align:-2px;margin-right:3px}
.watch-box{margin-top:15px;border-top:1px dashed var(--line2);padding-top:15px}
.watch-toggle{width:100%;font:600 13.5px var(--body);color:var(--indigo);background:var(--indigo-soft);border-radius:11px;padding:12px;display:flex;align-items:center;justify-content:center;gap:7px;transition:.14s}
.watch-toggle:hover{background:#e0e4f5}
.watch-form{margin-top:12px}
.watch-form-t{font-size:12.5px;color:var(--ink2);margin-bottom:9px}
.watch-row{display:flex;gap:8px}
.watch-row input{flex:1;height:42px;border:1.5px solid var(--line2);border-radius:10px;padding:0 12px;font-size:14px;outline:none}
.watch-row input:focus{border-color:var(--indigo-b)}
.watch-intent{font-size:11px;color:var(--muted);margin-top:8px;display:flex;align-items:center;gap:5px}
@media(max-width:940px){.d-body{grid-template-columns:1fr}.order{position:static}}


/* ===== 兼容 layout 的简洁页脚与主容器 ===== */
.main{min-height:60vh}
.foot-in{display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap;padding:0}
.foot .foot-in{border:none}
.foot-in .foot-logo{font:700 18px var(--head);color:#fff}
.foot-in .foot-logo b{color:var(--amber-b)}
.foot-in span{font-size:13px;color:#7c86a3}


/* ============================================================
   兼容旧页面（管理后台/工作台/会员/登录/支付等）的原有布局类
   —— 从旧 app.css 保留，避免整体替换后旧页面布局塌陷
   ============================================================ */
.field{margin-bottom:16px}
.field label{display:block;font:600 13px var(--head);margin-bottom:7px}
.field input{width:100%;height:46px;border:1.5px solid var(--line2);border-radius:12px;padding:0 14px;font-size:14.5px;background:var(--surface);outline:none}
.field input:focus{border-color:var(--amber-b)}
.form-error{background:var(--red-soft);color:var(--red);border-radius:10px;padding:10px 14px;font-size:13px;margin-bottom:14px}
.form-ok{background:var(--teal-soft);color:var(--teal);border-radius:10px;padding:10px 14px;font-size:13px;margin-bottom:14px}
.empty{text-align:center;padding:70px 0;color:var(--muted)}
.empty p:first-child,.empty>p{font:700 17px var(--head);color:var(--ink2);margin-bottom:14px}
.empty-inline{color:var(--muted);font-size:14px;padding:16px 0}
.hero-tag{display:inline-block;font:600 12px var(--mono);letter-spacing:.08em;color:var(--amber-b);background:rgba(245,166,35,.13);border:1px solid rgba(245,166,35,.3);padding:6px 14px;border-radius:999px}
.hero-cta{display:flex;gap:12px;margin-top:28px;flex-wrap:wrap}
.hot{padding:50px 0 10px}
.hc-cta{font:600 13px var(--disp);color:var(--indigo)}
.trust{padding:44px 0 20px}
.ac-type{font:600 11px var(--mono);color:var(--amber-d);background:var(--amber-soft);padding:3px 9px;border-radius:6px}
.ac-cta{font:600 13px var(--disp);color:var(--indigo);padding-top:6px}
.d-attrs{display:flex;gap:8px;margin-top:10px}
.d-head-r{display:flex;gap:14px;flex-wrap:wrap}
.dh-stat{background:var(--surface);border:1px solid var(--line);border-radius:14px;padding:12px 18px;text-align:center}
.dh-stat b{font:800 20px var(--disp);display:block}
.dh-stat span{font-size:11.5px;color:var(--muted)}
.dh-stat.low b{color:var(--teal)}
.dh-stat.save{background:var(--amber-soft);border-color:var(--amber-b)}
.dh-stat.save b{color:var(--amber-d)}
.watch-done{background:var(--teal-soft);border:1px solid var(--teal);border-radius:12px;padding:12px 14px;font-size:13px}
/* 认证 */
.auth-page{display:flex;align-items:center;justify-content:center;min-height:calc(100vh - 200px);padding:40px 20px}
.auth-card{width:100%;max-width:420px;padding:36px}
.auth-card h1{font:800 24px var(--head)}
.auth-sub{color:var(--muted);font-size:14px;margin:6px 0 22px}
.auth-alt{text-align:center;font-size:13.5px;color:var(--muted);margin-top:18px}
.auth-alt a{color:var(--amber-d);font-weight:600}
.hint{font-size:12px;color:var(--muted);margin-top:5px}
/* 会员 */
.member{padding:36px 0 60px}
.id-card{display:flex;align-items:center;gap:18px;background:linear-gradient(140deg,#20294a,#172038);border-radius:var(--r-lg);padding:26px 28px;color:#fff;margin-bottom:20px;flex-wrap:wrap}
.idc-avatar{width:56px;height:56px;border-radius:16px;background:var(--warm-grad);color:#2a1a02;font:800 24px var(--disp);display:flex;align-items:center;justify-content:center}
.idc-info{flex:1;min-width:200px}
.idc-gid{font-size:12.5px;color:#9aa4bd;margin-top:4px}
.idc-gid b{color:var(--amber-b);font-family:var(--mono)}
.id-card .btn-ghost{border-color:rgba(255,255,255,.25);color:#C9D0E6;background:none}
.notif-card,.watches-card{margin-bottom:20px}
.unread-dot{display:inline-flex;align-items:center;justify-content:center;min-width:20px;height:20px;padding:0 6px;border-radius:10px;background:var(--red);color:#fff;font:700 11px var(--disp);margin-left:8px}
.read-all{float:right;font:600 12px var(--disp);color:var(--indigo)}
.notif-row{padding:12px 14px;border:1px solid var(--line);border-radius:12px;margin-bottom:8px}
.notif-row.unread{border-color:var(--amber-b);background:var(--amber-soft)}
.nf-title{font:700 13.5px var(--head)}
.nf-link{font:600 12px var(--disp);color:var(--teal);margin-top:6px;display:inline-block}
.watch-row2{display:flex;align-items:center;gap:12px;padding:11px 14px;border:1px solid var(--line);border-radius:11px;margin-bottom:8px}
.wr-main{flex:1;display:flex;align-items:center;gap:12px}
.wr-main b{font:600 13px var(--mono)}
.wr-main span{font-size:12.5px;color:var(--muted)}
.wr-status{font:600 11.5px var(--disp);padding:4px 10px;border-radius:7px;background:var(--bg2);color:var(--muted)}
.wr-status.active{background:var(--teal-soft);color:var(--teal)}
.wr-status.triggered{background:var(--amber-soft);color:var(--amber-d)}
.wr-cancel{font:600 12px var(--disp);color:var(--muted)}
.wr-cancel:hover{color:var(--red)}
.order-list{display:flex;flex-direction:column;gap:8px}
.order-row{display:flex;align-items:center;gap:16px;padding:14px 16px;border:1px solid var(--line);border-radius:12px;flex-wrap:wrap}
.or-main{flex:1;min-width:0}
.or-price{text-align:right}
.or-price b{font:700 16px var(--disp)}
.or-price span{display:block;font-size:11px;color:var(--muted)}
.or-status{font:600 12px var(--disp);padding:5px 12px;border-radius:8px;background:var(--bg2);color:var(--muted)}
.or-status.created{background:var(--amber-soft);color:var(--amber-d)}
.or-status.completed{background:var(--teal-soft);color:var(--teal)}
.or-status.delivering{background:var(--indigo-soft);color:var(--indigo)}
/* 收银台 */
.pay{padding:36px 0 60px}
.pay-grid{display:grid;grid-template-columns:1fr 1.2fr;gap:16px;align-items:start}
.pay-t{font:800 22px var(--head);margin-bottom:14px}
.pay-row{display:flex;justify-content:space-between;padding:9px 0;font-size:14px;border-bottom:1px dashed var(--line)}
.pay-total{display:flex;justify-content:space-between;align-items:flex-end;padding-top:14px}
.pay-total b{font:800 28px var(--disp);color:var(--amber-d)}
.pay-total i{font:500 12.5px var(--mono);color:var(--muted);font-style:normal;margin-left:8px}
.pm-label{font:600 12.5px var(--head);color:var(--ink2);margin-bottom:8px}
.pm-addr{display:flex;align-items:center;gap:10px;background:var(--bg2);border-radius:11px;padding:11px 14px;margin-bottom:8px}
.pm-addr code{flex:1;font:600 13px var(--mono);word-break:break-all}
.pm-note{font-size:12.5px;color:var(--muted);margin-bottom:6px}
.pm-empty{background:var(--red-soft);color:var(--red);border-radius:11px;padding:12px 14px;font-size:13px}
.proof{margin-top:18px;padding-top:16px;border-top:1px solid var(--line)}
.proof-input,.proof-area{width:100%;border:1.5px solid var(--line2);border-radius:11px;padding:11px 13px;font:500 13.5px var(--body);outline:none;resize:vertical;background:var(--surface);margin-bottom:10px}
.proof-area{font-family:var(--mono);font-size:13px}
.proof-waiting{font-size:12.5px;color:var(--teal);margin-top:10px;text-align:center}
.done-card{max-width:520px;margin:30px auto;text-align:center;padding:40px 32px}
.done-ic{width:64px;height:64px;border-radius:50%;background:var(--teal-soft);color:var(--teal);font-size:30px;display:flex;align-items:center;justify-content:center;margin:0 auto 16px}
.done-ic.wait{background:var(--amber-soft);color:var(--amber-d)}
.done-card h1{font:800 24px var(--head)}
.cred-box{background:var(--ink);color:var(--amber-b);border-radius:12px;padding:16px;font:600 14px var(--mono);margin-top:16px;text-align:left;white-space:pre-wrap;word-break:break-all}
.pay-back{display:inline-block;margin-top:16px;font:600 13.5px var(--disp);color:var(--indigo)}
/* 工作台 & 管理台 */
.wb,.ad{padding:32px 0 60px}
.wb-head h1,.ad-head h1{font:800 26px var(--head);display:flex;align-items:center;gap:10px}
.wb-sub,.ad-sub{color:var(--muted);font-size:13.5px;margin-top:4px}
.stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(155px,1fr));gap:12px;margin:22px 0}
.stat{background:var(--surface);border:1px solid var(--line);border-radius:14px;padding:14px 16px}
.stat .st-l{font-size:11.5px;color:var(--muted);display:block}
.stat b{font:800 22px var(--disp)}
.stat i{font-style:normal;font-size:12px;color:var(--muted);margin-left:4px}
.stat.teal b{color:var(--teal)}
.stat.warn{border-color:var(--amber-b);background:var(--amber-soft)}
.stat.warn b{color:var(--amber-d)}
.tabs{display:flex;gap:6px;margin-bottom:14px;flex-wrap:wrap}
.tab{font:600 13.5px var(--disp);padding:9px 18px;border-radius:11px;color:var(--muted)}
.tab.on{background:var(--ink);color:#fff}
.pane{display:none}
.pane.on{display:block}
.tbl{width:100%;border-collapse:collapse;font-size:13.5px}
.tbl th{text-align:left;font:600 11.5px var(--mono);color:var(--muted);padding:8px 10px;border-bottom:1px solid var(--line)}
.tbl td{padding:9px 10px;border-bottom:1px solid var(--line)}
.cell-input{width:96px;height:34px;border:1.5px solid var(--line2);border-radius:8px;padding:0 9px;font:600 13px var(--disp);outline:none;background:var(--surface)}
.cell-input:focus{border-color:var(--amber-b)}
.cell-input.wide{width:230px}
.pos{color:var(--teal);font-weight:700}
.tbl-hint{font-size:12px;color:var(--muted);margin-top:12px}
.o-filter{display:flex;gap:8px;margin-bottom:14px;flex-wrap:wrap}
.wb-order{display:flex;align-items:center;gap:14px;padding:12px 14px;border:1px solid var(--line);border-radius:12px;margin-bottom:8px;flex-wrap:wrap}
.wo-main{flex:1;min-width:220px}
.wo-main span{display:block;font-size:12.5px;color:var(--muted);margin-top:3px}
.wo-deliver{display:flex;gap:8px;align-items:center}
.rp-intro{background:var(--indigo-soft);border-radius:12px;padding:13px 15px;font-size:13px;color:var(--ink2);margin-bottom:16px;line-height:1.6}
.rp-new{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:16px}
.rule-row,.pp-row,.mp-row{display:flex;align-items:center;gap:12px;padding:12px 14px;border:1px solid var(--line);border-radius:12px;margin-bottom:8px;flex-wrap:wrap}
.rr-main,.pp-main,.mp-main{flex:1;min-width:220px}
.rr-main b,.mp-main b{font:600 13px var(--head)}
.rr-main span,.mp-sub{font-size:12.5px;color:var(--muted)}
.rr-last{color:var(--teal)!important;font-weight:600}
.pp-main span{display:block;font-size:13px;color:var(--ink2);margin-top:3px}
.pp-proof{font-size:12px;color:var(--muted);margin-top:5px;word-break:break-all;background:var(--bg2);border-radius:8px;padding:6px 9px}
.pp-title{font:700 15px var(--head);margin-bottom:12px}
.ql{margin-bottom:16px}
.ql-toggle{width:100%;height:42px;border-radius:11px;border:1.5px dashed var(--amber-b);color:var(--amber-d);font:600 13px var(--disp);background:var(--amber-soft)}
.ql-form{background:var(--amber-soft);border-radius:12px;padding:14px}
.ql-grid{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:10px}
.ql-actions{display:flex;gap:8px}
.vault-import{display:flex;gap:14px;align-items:center;margin-bottom:10px;flex-wrap:wrap}
.v-sync{font-size:13px;color:var(--ink2);display:flex;align-items:center;gap:6px}
.pc-form{display:flex;flex-direction:column;gap:9px;margin-bottom:22px}
.sp-new{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:14px}
.bind-box{display:inline-flex;gap:6px;align-items:center}
.mp-bar{display:flex;gap:14px;align-items:center;margin-bottom:12px}
.pay-grid{grid-template-columns:1fr}
.tbl{font-size:12px}
/* v0.12 会员体系 */
.bind-grid{display:flex;flex-direction:column;gap:10px}
.bind-row{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.bind-label{font:600 13px var(--head);min-width:76px}

/* 旧页面响应式 */
@media(max-width:900px){.d-body{grid-template-columns:1fr}.order{position:static}.pay-grid{grid-template-columns:1fr}}
@media(max-width:640px){.nav-links{display:none}.foot-in{flex-direction:column;gap:4px;justify-content:center}.tbl{font-size:12px}}

/* ===== 详情页 v2：综合推荐 + 海量商家列表 ===== */
.mini-sel{display:flex;gap:20px;flex-wrap:wrap}
.ms-block{flex:1;min-width:200px}
.ms-label{font:700 12px var(--head);color:var(--ink2);margin-bottom:8px;display:flex;gap:6px;align-items:center}
.ms-chips{display:flex;gap:7px;flex-wrap:wrap}
.ms-chip{display:flex;align-items:center;gap:5px;padding:8px 12px;border:1.5px solid var(--line);border-radius:9px;cursor:pointer;transition:.14s;background:var(--surface);font:600 13px var(--body);color:var(--ink2);text-decoration:none}
.ms-chip:hover{border-color:var(--amber-b)}
.ms-chip.on{border-color:var(--amber);background:var(--amber-soft);color:var(--amber-d);box-shadow:0 0 0 2px var(--amber-glow)}
.ms-chip.dim{opacity:.4;pointer-events:none}
.ms-chip .fl{font-size:16px}

.reco{background:linear-gradient(120deg,#FFF9EF,#FDF1DB);border:1.5px solid var(--amber);border-radius:var(--r-lg);padding:20px 22px;margin-bottom:18px;position:relative;overflow:hidden;box-shadow:0 12px 30px -14px rgba(232,148,15,.4)}
.reco::before{content:"";position:absolute;top:-40px;right:-30px;width:160px;height:160px;background:radial-gradient(circle,rgba(245,166,35,.18),transparent 70%)}
.reco-tag{display:inline-flex;align-items:center;gap:6px;font:700 11px var(--mono);color:#fff;background:var(--warm-grad);padding:5px 12px;border-radius:7px;letter-spacing:.03em;margin-bottom:14px;position:relative}
.reco-body{display:flex;align-items:center;gap:18px;position:relative;flex-wrap:wrap}
.reco-main{flex:1;min-width:220px}
.reco-name{font:800 19px var(--head);display:flex;align-items:center;gap:9px;margin-bottom:8px}
.reco-metrics{display:flex;gap:16px;flex-wrap:wrap}
.rm{display:flex;flex-direction:column;gap:2px}
.rm .rl{font-size:10.5px;color:var(--muted)}
.rm .rv{font:700 13px var(--head);color:var(--ink2);display:flex;align-items:center;gap:4px}
.rm .rv.good{color:var(--green)}
.reco-price{text-align:right}
.reco-price .rp-usd{font:800 30px var(--disp);color:var(--amber-d);line-height:1}
.reco-price .rp-cny{font:500 12px var(--mono);color:var(--muted);margin-top:2px}
.reco-price .rp-diff{font:600 11px var(--mono);color:var(--green);margin-top:4px}
.reco-buy{margin-top:16px;position:relative;display:flex;gap:10px;align-items:center}
.reco-buy .btn{flex:1}
.reco-why{font-size:11px;color:var(--muted);margin-top:10px;position:relative;display:flex;align-items:center;gap:5px}

.mlist-card{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-lg);padding:20px;box-shadow:var(--sh-sm)}
.mlist-head{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;margin-bottom:14px}
.mlist-head .mh-t{font:800 17px var(--head)}
.mlist-head .mh-t span{color:var(--amber-d)}
.sort-row{display:flex;gap:4px;background:var(--bg2);padding:4px;border-radius:9px;flex-wrap:wrap}
.sort-btn{font:600 12px var(--body);color:var(--muted);padding:6px 12px;border-radius:6px;cursor:pointer;transition:.14s;white-space:nowrap}
.sort-btn.on{background:var(--surface);color:var(--ink);box-shadow:var(--sh-xs)}
.filter-row{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:14px;padding-bottom:14px;border-bottom:1px dashed var(--line2)}
.fchip{font:600 12px var(--body);color:var(--ink2);background:var(--bg2);border:1.5px solid transparent;padding:6px 13px;border-radius:8px;cursor:pointer;transition:.14s}
.fchip:hover{border-color:var(--amber-b)}
.fchip.on{background:var(--amber-soft);border-color:var(--amber-b);color:var(--amber-d)}
.mrow{display:flex;align-items:center;gap:14px;padding:13px 14px;border:1px solid var(--line);border-radius:12px;margin-bottom:9px;transition:.14s;cursor:pointer}
.mrow:hover{border-color:var(--amber-b);background:var(--bg)}
.mrow.on{border-color:var(--amber);background:var(--amber-soft);box-shadow:0 0 0 2px var(--amber-glow)}
.mrow-radio{width:18px;height:18px;border-radius:50%;border:2px solid var(--line2);flex-shrink:0;display:flex;align-items:center;justify-content:center}
.mrow.on .mrow-radio{border-color:var(--amber)}
.mrow.on .mrow-radio::after{content:"";width:8px;height:8px;border-radius:50%;background:var(--amber)}
.mrow-rank{width:22px;font:700 13px var(--disp);color:var(--faint);text-align:center;flex-shrink:0}
.mrow-info{flex:1;min-width:0}
.mrow-name{font:700 14px var(--head);display:flex;align-items:center;gap:7px;margin-bottom:4px}
.mrow-name .rep{font:600 10.5px var(--mono);color:var(--green);display:inline-flex;align-items:center;gap:3px}
.mrow-meta{display:flex;gap:9px;flex-wrap:wrap;align-items:center}
.mrow-meta .mm{font:500 11px var(--mono);color:var(--muted);display:inline-flex;align-items:center;gap:3px}
.mrow-price{text-align:right;flex-shrink:0}
.mrow-price b{font:800 18px var(--disp);color:var(--ink);line-height:1}
.mrow.on .mrow-price b{color:var(--amber-d)}
.mrow-price .diff{font:600 10px var(--mono);color:var(--muted);display:block;margin-top:2px}
.mrow-price .diff.best{color:var(--red)}
.mlist-loading{text-align:center;color:var(--muted);font-size:13px;padding:14px}
.expand-bar{text-align:center;margin-top:14px}
.expand-btn{font:600 13.5px var(--body);color:var(--amber-d);background:var(--amber-soft);border:1px solid var(--amber-b);border-radius:10px;padding:11px 24px;cursor:pointer;transition:.14s;display:inline-flex;align-items:center;gap:7px}
.expand-btn:hover{background:var(--amber);color:#fff}
.watch-done{font:600 13px var(--body);color:var(--green);background:var(--green-soft);border-radius:10px;padding:11px 14px;text-align:center}


/* ============================================================
   后台框架（工作台 + 平台管理共享）· 侧边栏布局
   ============================================================ */
/* ========== 整体布局 ========== */
.layout{display:grid;grid-template-columns:236px 1fr;min-height:100vh}

/* ========== 侧边栏 ========== */
.sidebar{background:var(--sidebar);color:#aeb6cc;display:flex;flex-direction:column;position:sticky;top:0;height:100vh;overflow-y:auto}
.sb-brand{display:flex;align-items:center;gap:10px;padding:20px 20px 18px;border-bottom:1px solid var(--sidebar-line)}
.sb-logo{width:36px;height:36px;border-radius:10px;background:var(--warm-grad);color:#fff;display:flex;align-items:center;justify-content:center;flex-shrink:0}
.sb-name{font:700 17px var(--head);color:#fff}.sb-name b{color:var(--amber-b)}
.sb-role{font:600 10px var(--mono);color:var(--amber-b);background:rgba(245,166,35,.14);padding:2px 7px;border-radius:5px;margin-left:auto}
.sb-nav{padding:14px 12px;flex:1}
.sb-section{font:700 10.5px var(--mono);color:#586080;letter-spacing:.08em;padding:14px 12px 8px;text-transform:uppercase}
.sb-item{display:flex;align-items:center;gap:11px;padding:10px 12px;border-radius:10px;font:600 13.5px var(--body);color:#aeb6cc;transition:.14s;margin-bottom:2px;cursor:pointer;position:relative}
.sb-item:hover{background:rgba(255,255,255,.05);color:#fff}
.sb-item.on{background:var(--warm-grad);color:#fff;box-shadow:0 6px 16px -6px rgba(232,148,15,.5)}
.sb-item svg{width:18px;height:18px;flex-shrink:0}
.sb-badge{margin-left:auto;font:700 10px var(--mono);background:var(--red-b);color:#fff;min-width:18px;height:18px;border-radius:9px;display:flex;align-items:center;justify-content:center;padding:0 5px}
.sb-item.on .sb-badge{background:rgba(255,255,255,.25)}
.sb-foot{padding:14px 16px;border-top:1px solid var(--sidebar-line)}
.sb-user{display:flex;align-items:center;gap:10px}
.sb-avatar{width:34px;height:34px;border-radius:50%;background:var(--indigo-b);color:#fff;display:flex;align-items:center;justify-content:center;font:700 13px var(--disp);flex-shrink:0}
.sb-uinfo{min-width:0}
.sb-uname{font:600 13px var(--body);color:#fff;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.sb-uid{font:500 11px var(--mono);color:#586080}
.sb-logout{margin-left:auto;color:#586080;padding:6px;border-radius:8px}
.sb-logout:hover{color:#fff;background:rgba(255,255,255,.06)}

/* ========== 内容区 ========== */
.content{padding:0;overflow:hidden;min-width:0}
.topbar{background:rgba(251,250,247,.9);backdrop-filter:blur(12px);border-bottom:1px solid var(--line);padding:16px 30px;display:flex;align-items:center;gap:16px;position:sticky;top:0;z-index:20}
.topbar h1{font:800 20px var(--head);letter-spacing:-.01em}
.topbar .tb-sub{font-size:12.5px;color:var(--muted)}
.topbar .tb-right{margin-left:auto;display:flex;align-items:center;gap:10px}
.pagewrap{padding:26px 30px 40px;max-width:1180px}

/* ========== 概览统计卡 ========== */
.stat-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:14px;margin-bottom:26px}
.stat-card{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-md);padding:18px;box-shadow:var(--sh-xs);position:relative;overflow:hidden}
.stat-card .sc-ic{position:absolute;top:14px;right:14px;width:34px;height:34px;border-radius:9px;display:flex;align-items:center;justify-content:center;opacity:.9}
.stat-card .sc-label{font-size:12px;color:var(--muted);margin-bottom:7px}
.stat-card .sc-value{font:800 26px var(--disp);color:var(--ink);line-height:1}
.stat-card .sc-value small{font-size:14px;color:var(--muted);font-weight:600}
.stat-card .sc-sub{font-size:11.5px;margin-top:5px}
.stat-card .sc-sub.up{color:var(--green)}
.stat-card.hot{border-color:var(--amber-b);background:linear-gradient(135deg,#fff,var(--amber-soft))}
.stat-card.hot .sc-value{color:var(--amber-d)}
.sc-ic.amber{background:var(--amber-soft);color:var(--amber-d)}
.sc-ic.indigo{background:var(--indigo-soft);color:var(--indigo)}
.sc-ic.teal{background:var(--teal-soft);color:var(--teal)}
.sc-ic.red{background:var(--red-soft);color:var(--red)}
.sc-ic.green{background:var(--green-soft);color:var(--green)}

/* ========== 面板/卡片 ========== */
.panel{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-lg);box-shadow:var(--sh-sm);margin-bottom:22px;overflow:hidden}
.panel-head{display:flex;align-items:center;gap:12px;padding:18px 22px;border-bottom:1px solid var(--line)}
.panel-head h2{font:700 16px var(--head)}
.panel-head .ph-sub{font-size:12px;color:var(--muted)}
.panel-head .ph-right{margin-left:auto;display:flex;gap:8px;align-items:center}
.panel-body{padding:20px 22px}
.panel-body.flush{padding:0}

/* ========== 按钮 ========== */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:7px;font:600 13px var(--body);border-radius:9px;padding:0 16px;height:38px;transition:.14s;white-space:nowrap}
.btn svg{width:15px;height:15px}
.btn-amber{background:var(--warm-grad);color:#fff;box-shadow:0 6px 16px -8px rgba(232,148,15,.5)}
.btn-amber:hover{transform:translateY(-1px)}
.btn-ink{background:var(--ink);color:#fff}.btn-ink:hover{background:#232c44}
.btn-ghost{border:1.5px solid var(--line2);color:var(--ink2);background:var(--surface)}
.btn-ghost:hover{border-color:var(--amber-b);color:var(--amber-d)}
.btn-green{background:var(--green);color:#fff}.btn-green:hover{filter:brightness(1.08)}
.btn-red{background:var(--red);color:#fff}.btn-red:hover{filter:brightness(1.08)}
.btn-sm{height:32px;font-size:12px;padding:0 12px;border-radius:8px}
.btn-xs{height:28px;font-size:11.5px;padding:0 10px;border-radius:7px}
.btn:disabled{opacity:.5;cursor:not-allowed}

/* ========== 徽章 ========== */
.badge{display:inline-flex;align-items:center;gap:4px;font:600 11px var(--mono);padding:3px 8px;border-radius:6px}
.badge.green{background:var(--green-soft);color:var(--green)}
.badge.amber{background:var(--amber-soft);color:var(--amber-d)}
.badge.red{background:var(--red-soft);color:var(--red)}
.badge.indigo{background:var(--indigo-soft);color:var(--indigo)}
.badge.teal{background:var(--teal-soft);color:var(--teal)}
.badge.gray{background:var(--bg2);color:var(--muted)}
.badge.official{background:var(--amber-soft);color:var(--amber-d);border:1px solid var(--amber-b)}

/* ========== 表格 ========== */
.tbl{width:100%;border-collapse:collapse;font-size:13.5px}
.tbl thead th{text-align:left;font:700 12px var(--head);color:var(--muted);padding:12px 16px;border-bottom:1.5px solid var(--line2);white-space:nowrap;background:var(--bg)}
.tbl tbody td{padding:13px 16px;border-bottom:1px solid var(--line);color:var(--ink2);vertical-align:middle}
.tbl tbody tr:hover{background:var(--bg)}
.tbl tbody tr:last-child td{border-bottom:none}
.tbl .t-strong{font-weight:700;color:var(--ink)}
.tbl .t-mono{font-family:var(--mono);font-size:12.5px}
.tbl .t-amber{color:var(--amber-d);font-weight:700;font-family:var(--disp)}
.tbl .t-actions{display:flex;gap:6px;justify-content:flex-end}
.tbl-scroll{overflow-x:auto}

/* ========== 表单 ========== */
.field{margin-bottom:16px}
.field label{display:block;font:600 12.5px var(--head);color:var(--ink2);margin-bottom:6px}
.field input,.field select,.field textarea{width:100%;height:40px;border:1.5px solid var(--line2);border-radius:9px;padding:0 12px;font-size:14px;color:var(--ink);outline:none;transition:.14s;background:var(--surface)}
.field textarea{height:auto;padding:10px 12px;resize:vertical}
.field input:focus,.field select:focus,.field textarea:focus{border-color:var(--amber-b);box-shadow:0 0 0 3px var(--amber-glow)}
.field .hint{font-size:11.5px;color:var(--muted);margin-top:5px}
.form-row{display:grid;grid-template-columns:1fr 1fr;gap:14px}
.inline-form{display:flex;gap:8px;align-items:flex-end;flex-wrap:wrap}
.inline-form .field{margin-bottom:0}

/* ========== 空状态 ========== */
.empty{text-align:center;padding:44px 20px;color:var(--muted)}
.empty-ic{width:52px;height:52px;margin:0 auto 14px;border-radius:14px;background:var(--bg2);display:flex;align-items:center;justify-content:center;font-size:26px}
.empty p{font-size:14px;margin-bottom:4px;color:var(--ink2);font-weight:600}
.empty span{font-size:12.5px}

/* ========== 工具条/筛选 ========== */
.toolbar{display:flex;align-items:center;gap:10px;margin-bottom:18px;flex-wrap:wrap}
.search-mini{display:flex;align-items:center;gap:8px;background:var(--surface);border:1.5px solid var(--line2);border-radius:9px;padding:0 12px;height:38px}
.search-mini svg{color:var(--muted)}
.search-mini input{border:none;outline:none;height:100%;font-size:13.5px;width:200px}
.seg{display:flex;gap:3px;background:var(--bg2);padding:3px;border-radius:9px}
.seg-btn{font:600 12.5px var(--body);color:var(--muted);padding:6px 13px;border-radius:6px;cursor:pointer;transition:.14s}
.seg-btn.on{background:var(--surface);color:var(--ink);box-shadow:var(--sh-xs)}

/* pane 切换 */
.pane{display:none}
.pane.on{display:block;animation:fade .2s}
@keyframes fade{from{opacity:0;transform:translateY(4px)}to{opacity:1;transform:none}}

/* 提示条 */
.notice{display:flex;gap:10px;align-items:flex-start;padding:13px 16px;border-radius:11px;font-size:13px;margin-bottom:18px}
.notice.amber{background:var(--amber-soft);color:var(--amber-d);border:1px solid var(--amber-b)}
.notice.indigo{background:var(--indigo-soft);color:var(--indigo)}
.notice svg{flex-shrink:0;margin-top:1px}

/* 移动端 */
@media(max-width:900px){
  .layout{grid-template-columns:1fr}
  .sidebar{position:fixed;left:-236px;width:236px;z-index:100;transition:left .2s;box-shadow:var(--sh)}
  .sidebar.open{left:0}
  .pagewrap{padding:18px}
  .topbar{padding:14px 18px}
  .form-row{grid-template-columns:1fr}
}

/* ===== 商家工作台：浅色侧边栏（body.wb-light 时生效）===== */
body.wb-light .sidebar{background:var(--surface);color:var(--ink2);border-right:1px solid var(--line)}
body.wb-light .sb-brand{border-bottom:1px solid var(--line)}
body.wb-light .sb-name{color:var(--ink)}
body.wb-light .sb-item{color:var(--ink2)}
body.wb-light .sb-item:hover{background:var(--bg2);color:var(--ink)}
body.wb-light .sb-item.on{background:var(--warm-grad);color:#fff}
body.wb-light .sb-item.on .sb-badge{background:rgba(255,255,255,.3)}
body.wb-light .sb-foot{border-top:1px solid var(--line)}
body.wb-light .sb-uname{color:var(--ink)}
body.wb-light .sb-uid{color:var(--muted)}
body.wb-light .sb-logout{color:var(--muted)}
body.wb-light .sb-logout:hover{color:var(--ink);background:var(--bg2)}

/* ===== 后台侧边栏：两级手风琴菜单 ===== */
.sb-group{margin-bottom:3px}
.sb-group-head{display:flex;align-items:center;gap:11px;padding:10px 12px;border-radius:10px;font:700 13px var(--head);color:#eef1f8;cursor:pointer;transition:.14s;user-select:none}
.sb-group-head:hover{background:rgba(255,255,255,.05);color:#fff}
.sb-group-head svg.g-ic{width:18px;height:18px;flex-shrink:0}
.sb-group-head .g-arrow{margin-left:auto;width:15px;height:15px;transition:transform .2s;flex-shrink:0}
.sb-group.open .sb-group-head .g-arrow{transform:rotate(90deg)}
.sb-group.open .sb-group-head{color:#fff}
.sb-sub{max-height:0;overflow:hidden;transition:max-height .25s ease}
.sb-group.open .sb-sub{max-height:400px}
.sb-subitem{display:flex;align-items:center;gap:9px;padding:8px 12px 8px 41px;border-radius:9px;font:600 13px var(--body);color:#c8cfe0;transition:.14s;margin:2px 0;cursor:pointer;position:relative}
.sb-subitem:hover{background:rgba(255,255,255,.05);color:#fff}
.sb-subitem.on{background:var(--warm-grad);color:#fff;box-shadow:0 6px 16px -6px rgba(232,148,15,.5)}
.sb-subitem::before{content:"";position:absolute;left:22px;top:50%;transform:translateY(-50%);width:5px;height:5px;border-radius:50%;background:currentColor;opacity:.4}
.sb-subitem.on::before{opacity:0}
.sb-subitem .sb-badge{margin-left:auto}
