/* ============================================================
   main.css —— 布局与组件样式（原生，无框架）
   ============================================================ */

/* ---------- Reset ---------- */
*,*::before,*::after{box-sizing:border-box;}
[hidden]{display:none!important;}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth;}
body{margin:0;font-family:var(--font-sans);font-size:var(--fs-body);line-height:var(--lh-body);
  color:var(--color-text-body);background:var(--color-bg);letter-spacing:var(--ls-cn);}
img{max-width:100%;display:block;}
a{color:var(--color-link);text-decoration:none;}
a:hover{color:var(--color-link-hover);}
h1,h2,h3,h4{color:var(--color-text-title);line-height:var(--lh-heading);
  letter-spacing:var(--ls-cn-title);margin:0 0 var(--space-4);font-weight:var(--fw-bold);}
h1{font-size:var(--fs-h1);} h2{font-size:var(--fs-h2);} h3{font-size:var(--fs-h3);} h4{font-size:var(--fs-h4);}
p{margin:0 0 var(--space-4);}
ul,ol{margin:0 0 var(--space-4);padding-left:1.25em;}
table{border-collapse:collapse;width:100%;margin:0 0 var(--space-4);font-size:var(--fs-sm);}
th,td{text-align:left;padding:8px 10px;border:1px solid var(--color-border);}
th{background:var(--color-surface-alt);font-weight:var(--fw-medium);}

/* ---------- Layout ---------- */
.container{width:100%;max-width:var(--container-wide);margin:0 auto;padding:0 var(--space-safe-x);}
.section{padding:var(--space-section-sm) 0;}
.section-lg{padding:var(--space-section-md) 0;}
.section-head{margin-bottom:var(--space-6);}
.section-head .eyebrow{display:inline-block;font-size:var(--fs-xs);letter-spacing:var(--ls-tag);
  color:var(--color-cta);font-weight:var(--fw-bold);text-transform:uppercase;margin-bottom:var(--space-2);}
.section-head .note{color:var(--color-text-tertiary);font-size:var(--fs-sm);margin-top:var(--space-1);}
.lead{font-size:var(--fs-lead);color:var(--color-text-secondary);max-width:60ch;}

/* ---------- Top black ticker ---------- */
.ticker{background:#0B0B0B;color:#F2C94C;font-size:var(--fs-xs);
  text-align:center;padding:6px 12px;letter-spacing:var(--ls-cn);}
.ticker span{opacity:.92;}

/* ---------- Header / Nav ---------- */
.site-header{position:sticky;top:0;z-index:var(--z-sticky);background:var(--color-primary);
  box-shadow:var(--shadow-sm);}
.nav{display:flex;align-items:center;justify-content:space-between;height:var(--h-header);
  gap:var(--space-4);}
.brand{display:flex;align-items:center;gap:8px;color:#fff;font-weight:var(--fw-bold);
  font-size:18px;white-space:nowrap;}
.brand .logo-mark{width:30px;height:30px;border-radius:6px;background:var(--color-cta);
  display:inline-flex;align-items:center;justify-content:center;color:#fff;font-weight:700;font-size:14px;}
.brand small{display:block;font-weight:400;font-size:11px;color:rgba(255,255,255,.75);letter-spacing:0;}
.nav-links{display:none;align-items:center;gap:2px;list-style:none;margin:0;padding:0;}
.nav-links a{color:rgba(255,255,255,.9);font-size:var(--fs-sm);padding:8px 10px;border-radius:var(--radius-md);
  white-space:nowrap;transition:background var(--dur-fast);}
.nav-links a:hover{background:rgba(255,255,255,.12);color:#fff;}
.nav-links a.active{background:rgba(255,255,255,.16);color:#fff;}
.nav-cta{background:var(--color-cta);color:#fff;font-weight:var(--fw-bold);font-size:var(--fs-sm);
  padding:9px 16px;border-radius:var(--radius-pill);white-space:nowrap;transition:background var(--dur-fast);}
.nav-cta:hover{background:var(--color-cta-dark);color:#fff;}
.hamburger{display:inline-flex;flex-direction:column;justify-content:center;gap:4px;
  width:44px;height:44px;border:0;background:transparent;cursor:pointer;padding:10px;}
.hamburger span{display:block;height:2px;background:#fff;border-radius:2px;transition:transform var(--dur-fast);}
.drawer{display:none;position:fixed;inset:0 0 0 auto;width:min(82vw,320px);background:var(--color-primary-dark);
  z-index:var(--z-drawer);padding:24px;box-shadow:var(--shadow-lg);overflow:auto;}
.drawer.open{display:block;}
.drawer a{display:block;color:rgba(255,255,255,.92);padding:12px 8px;border-radius:var(--radius-md);
  font-size:var(--fs-sm);border-bottom:1px solid rgba(255,255,255,.08);}
.drawer a:hover{background:rgba(255,255,255,.1);}
.drawer .nav-cta{margin-top:16px;text-align:center;}
.drawer-close{position:absolute;top:14px;right:16px;background:transparent;border:0;color:#fff;font-size:24px;cursor:pointer;}
.scrim{display:none;position:fixed;inset:0;background:rgba(0,0,0,.45);z-index:80;}
.scrim.open{display:block;}

@media (min-width:1024px){
  .nav-links{display:flex;}
  .site-header .nav-strip{display:none;}
  .hamburger,.drawer,.scrim{display:none !important;}
}

/* ---------- Buttons ---------- */
.btn{display:inline-block;font-size:var(--fs-sm);font-weight:var(--fw-bold);padding:11px 20px;
  border-radius:var(--radius-md);cursor:pointer;border:1px solid transparent;transition:background var(--dur-fast),border-color var(--dur-fast);}
.btn-primary{background:var(--color-primary);color:#fff;}
.btn-primary:hover{background:var(--color-primary-dark);color:#fff;}
.btn-cta{background:var(--color-cta);color:#fff;}
.btn-cta:hover{background:var(--color-cta-dark);color:#fff;}
.btn-ghost{background:transparent;border-color:var(--color-border-strong);color:var(--color-text-body);}
.btn-ghost:hover{border-color:var(--color-primary);color:var(--color-primary);}
.btn-sm{padding:7px 14px;font-size:var(--fs-xs);}
.btn-block{display:block;width:100%;text-align:center;}

/* ---------- Cards / Grids ---------- */
.grid{display:grid;gap:var(--space-4);}
.grid-2{grid-template-columns:repeat(2,1fr);}
.grid-3{grid-template-columns:repeat(3,1fr);}
.grid-4{grid-template-columns:repeat(4,1fr);}
@media (max-width:900px){.grid-4{grid-template-columns:repeat(2,1fr);}.grid-3{grid-template-columns:repeat(2,1fr);}}
@media (max-width:600px){.grid-2,.grid-3,.grid-4{grid-template-columns:1fr;}}

.card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);
  padding:var(--space-card-pad);box-shadow:var(--shadow-sm);transition:box-shadow var(--dur-std),transform var(--dur-std);}
.card:hover{box-shadow:var(--shadow-md);transform:translateY(-2px);}
.card h3{font-size:var(--fs-h4);margin-bottom:8px;}
.card .card-desc{color:var(--color-text-secondary);font-size:var(--fs-sm);margin-bottom:var(--space-3);}
.card .card-link{font-weight:var(--fw-medium);font-size:var(--fs-sm);color:var(--color-primary);}

/* ---------- Hero ---------- */
.hero{background:linear-gradient(135deg,var(--color-primary) 0%,var(--color-primary-dark) 100%);
  color:#fff;padding:var(--space-section-md) 0;position:relative;overflow:hidden;}
.hero::after{content:"";position:absolute;right:-10%;top:-20%;width:420px;height:420px;border-radius:50%;
  background:radial-gradient(circle,rgba(232,131,58,.28) 0%,rgba(232,131,58,0) 70%);}
.hero .eyebrow{display:inline-block;background:rgba(255,255,255,.12);color:#fff;border:1px solid rgba(255,255,255,.25);
  padding:5px 12px;border-radius:var(--radius-pill);font-size:var(--fs-xs);letter-spacing:var(--ls-tag);margin-bottom:var(--space-4);}
.hero h1{color:#fff;font-size:var(--fs-h1);margin-bottom:var(--space-4);text-wrap:balance;}
.hero h1 .hl{color:var(--color-cta);}
.hero .lead{color:rgba(255,255,255,.88);font-size:var(--fs-lead);max-width:62ch;margin-bottom:var(--space-8);}
.hero-cta{display:flex;gap:var(--space-3);flex-wrap:wrap;}

/* ---------- Stat cards ---------- */
.stats{display:grid;grid-template-columns:repeat(4,1fr);gap:var(--space-4);
  margin-top:var(--space-10);position:relative;z-index:1;}
.stats .stat{background:rgba(255,255,255,.08);border:1px solid rgba(255,255,255,.18);border-radius:var(--radius-lg);
  padding:var(--space-5);backdrop-filter:blur(4px);}
.stats .stat .num{font-size:var(--fs-figure);font-weight:var(--fw-bold);color:#fff;line-height:var(--lh-figure);}
.stats .stat .num .unit{font-size:var(--fs-figure-sub);color:var(--color-cta);}
.stats .stat .label{color:rgba(255,255,255,.82);font-size:var(--fs-sm);margin-top:4px;}
@media (max-width:760px){.stats{grid-template-columns:repeat(2,1fr);}}

/* ---------- Tool cards (home) ---------- */
.tool-card{display:flex;flex-direction:column;gap:8px;}
.tool-card .tag{font-size:var(--fs-xxs);color:var(--color-cta);font-weight:700;letter-spacing:var(--ls-tag);text-transform:uppercase;}

/* ---------- Filter tags ---------- */
.tags{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:var(--space-5);}
.tag-btn{background:var(--color-surface);border:1px solid var(--color-border-strong);color:var(--color-text-secondary);
  font-size:var(--fs-sm);padding:7px 14px;border-radius:var(--radius-pill);cursor:pointer;transition:all var(--dur-fast);}
.tag-btn:hover{border-color:var(--color-primary);color:var(--color-primary);}
.tag-btn.active{background:var(--color-primary);border-color:var(--color-primary);color:#fff;}

/* ---------- Maker / Demand cards ---------- */
.maker-card .badge{display:inline-block;font-size:var(--fs-xxs);font-weight:700;padding:2px 8px;border-radius:var(--radius-pill);}
.badge-ok{background:var(--color-success-bg);color:var(--color-success-text);border:1px solid var(--color-success-border);}
.badge-pending{background:var(--color-warning-bg);color:var(--color-warning-text);border:1px solid var(--color-warning-border);}
.maker-card .meta{color:var(--color-text-tertiary);font-size:var(--fs-sm);margin:6px 0 12px;}

.demand-row{display:flex;align-items:center;justify-content:space-between;gap:var(--space-4);
  padding:var(--space-4);border:1px solid var(--color-border);border-radius:var(--radius-lg);background:var(--color-surface);margin-bottom:var(--space-3);}
.demand-row .d-main{flex:1;min-width:0;}
.demand-row .d-title{font-weight:var(--fw-bold);color:var(--color-text-title);}
.demand-row .d-sub{color:var(--color-text-tertiary);font-size:var(--fs-sm);margin-top:4px;}
.demand-row .d-side{text-align:right;flex-shrink:0;}
.demand-row .d-price{font-weight:var(--fw-bold);color:var(--color-primary);}
.demand-row .d-time{font-size:var(--fs-xxs);color:var(--color-text-tertiary);margin:4px 0;}
@media (max-width:640px){.demand-row{flex-direction:column;align-items:flex-start;}.demand-row .d-side{text-align:left;}}

/* ---------- Forms ---------- */
.form-grid{display:grid;gap:var(--space-4);max-width:var(--w-form-col);}
.field{display:flex;flex-direction:column;gap:6px;}
.field label{font-size:var(--fs-label);font-weight:var(--fw-medium);color:var(--color-text-title);}
.field .hint{font-size:var(--fs-xs);color:var(--color-text-tertiary);}
.field .a-note{font-size:var(--fs-xxs);color:var(--color-text-tertiary);background:var(--color-surface-alt);
  border-left:3px solid var(--color-border-strong);padding:4px 8px;border-radius:0 var(--radius-sm) var(--radius-sm) 0;}
.field input[type=number],.field input[type=text],.field input[type=password],.field select,.field textarea{
  height:var(--h-input);padding:0 12px;font-size:var(--fs-sm);border:1px solid var(--color-border-input);
  border-radius:var(--radius-md);background:#fff;color:var(--color-text-body);font-family:inherit;width:100%;}
.field textarea{height:auto;padding:10px 12px;resize:vertical;min-height:90px;}
.field input:focus,.field select:focus,.field textarea:focus{outline:2px solid var(--color-focus-ring);outline-offset:1px;border-color:var(--color-primary);}
.field-check{display:flex;align-items:center;gap:8px;font-size:var(--fs-sm);}
.field-check input{width:18px;height:18px;}
.form-actions{margin-top:var(--space-2);}
.field-error{color:var(--color-danger-text);font-size:var(--fs-xs);}

/* ---------- Tool result panel ---------- */
.result-panel{margin-top:var(--space-5);border:1px solid var(--color-border);border-radius:var(--radius-lg);
  background:var(--color-bg-alt);padding:var(--space-5);}
.result-panel.hidden{display:none;}
.result-panel h3{margin-bottom:var(--space-3);}
.result-highlight{background:var(--color-primary);color:#fff;border-radius:var(--radius-md);padding:var(--space-4) var(--space-5);
  margin-bottom:var(--space-4);}
.result-highlight .rh-label{font-size:var(--fs-sm);opacity:.85;}
.result-highlight .rh-value{font-size:30px;font-weight:var(--fw-bold);line-height:var(--lh-figure);}
.result-highlight .rh-value .u{font-size:16px;margin-left:4px;opacity:.9;}
.result-dl{display:grid;grid-template-columns:1fr auto;gap:8px 16px;margin:0;}
.result-dl dt{color:var(--color-text-secondary);font-size:var(--fs-sm);}
.result-dl dd{margin:0;text-align:right;font-variant-numeric:tabular-nums;font-weight:var(--fw-medium);color:var(--color-text-title);}
.notice{font-size:var(--fs-sm);border-radius:var(--radius-md);padding:10px 14px;margin-bottom:var(--space-3);}
.notice-warn{background:var(--color-warning-bg);border:1px solid var(--color-warning-border);color:var(--color-warning-text);}
.notice-info{background:var(--color-info-bg);border:1px solid var(--color-info-border);color:var(--color-info-text);}
.notice-danger{background:var(--color-danger-bg);border:1px solid var(--color-danger-border);color:var(--color-danger-text);}
.result-raw{margin-top:var(--space-4);}
.result-raw summary{cursor:pointer;font-size:var(--fs-sm);color:var(--color-text-tertiary);}
.result-raw pre{background:var(--color-surface-strong);color:#cfe;font-family:var(--font-mono);font-size:12px;
  padding:12px;border-radius:var(--radius-md);overflow:auto;max-height:300px;white-space:pre-wrap;}

/* ---------- Callout / banner ---------- */
.callout{background:var(--color-brand-50);border:1px solid var(--color-brand-200);border-radius:var(--radius-lg);
  padding:var(--space-5);margin:var(--space-5) 0;}
.callout.cta{background:var(--color-accent-50);border-color:var(--color-accent-300);}

/* ---------- Tabs ---------- */
.tabs{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:var(--space-4);}
.tab-btn{background:var(--color-surface);border:1px solid var(--color-border-strong);color:var(--color-text-secondary);
  font-size:var(--fs-sm);padding:8px 14px;border-radius:var(--radius-md);cursor:pointer;}
.tab-btn.active{background:var(--color-primary);border-color:var(--color-primary);color:#fff;}

/* ---------- Footer ---------- */
.site-footer{background:var(--color-footer-bg);color:var(--color-text-inverse);padding:var(--space-12) 0 var(--space-8);}
.site-footer a{color:rgba(255,255,255,.78);}
.site-footer a:hover{color:#fff;}
.footer-cols{display:grid;grid-template-columns:2fr 1fr 1fr 1fr 1fr;gap:var(--space-6);}
@media (max-width:760px){.footer-cols{grid-template-columns:1fr 1fr;}}
.footer-cols h4{color:#fff;font-size:var(--fs-sm);margin-bottom:var(--space-3);letter-spacing:var(--ls-tag);}
.footer-cols ul{list-style:none;margin:0;padding:0;}
.footer-cols li{margin-bottom:8px;font-size:var(--fs-sm);}
.footer-brand{font-weight:var(--fw-bold);font-size:18px;}
.footer-brand small{display:block;font-weight:400;color:rgba(255,255,255,.6);font-size:12px;margin-top:4px;}
.footer-bottom{border-top:1px solid rgba(255,255,255,.12);margin-top:var(--space-8);padding-top:var(--space-5);
  font-size:var(--fs-xs);color:rgba(255,255,255,.6);display:flex;flex-wrap:wrap;gap:8px;justify-content:space-between;}
.footer-bottom a:hover{color:#fff;text-decoration:underline;}

/* ---------- Misc ---------- */
.prose{max-width:var(--container-prose);}
.two-col{display:grid;grid-template-columns:1fr 1fr;gap:var(--space-6);}
@media (max-width:760px){.two-col{grid-template-columns:1fr;}}
.breadcrumb{font-size:var(--fs-xs);color:var(--color-text-tertiary);padding:var(--space-4) 0 0;}
.breadcrumb a{color:var(--color-text-tertiary);}
.pill{display:inline-block;font-size:var(--fs-xxs);background:var(--color-brand-100);color:var(--color-brand-800);
  padding:2px 8px;border-radius:var(--radius-pill);margin:2px 4px 2px 0;}
.muted{color:var(--color-text-tertiary);}
.empty{color:var(--color-text-tertiary);font-size:var(--fs-sm);padding:var(--space-5);text-align:center;border:1px dashed var(--color-border-strong);border-radius:var(--radius-lg);}
.pager-404{text-align:center;padding:var(--space-section-lg) 0;}

/* ---------- 会员登录态（V2.2：工具与厂家详情需登录） ---------- */
.nav-account{display:inline-flex;align-items:center;gap:10px;color:rgba(255,255,255,.92);
  font-size:var(--fs-sm);white-space:nowrap;}
.nav-account a{color:rgba(255,255,255,.92);}
.nav-account a:hover{color:#fff;text-decoration:underline;}
.nav-account .who{max-width:9em;overflow:hidden;text-overflow:ellipsis;}
.nav-account .sep{opacity:.35;}
@media (max-width:1023px){.nav-account{display:none;}}

.badge-lock{display:inline-block;font-size:var(--fs-xxs);font-weight:var(--fw-bold);
  background:rgba(0,0,0,.06);color:var(--color-text-tertiary);border:1px solid var(--color-border);
  padding:2px 8px;border-radius:var(--radius-pill);margin-left:6px;}

/* 登录 / 注册页 */
.auth-wrap{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,.85fr);gap:var(--space-6);
  margin-top:var(--space-5);align-items:start;}
@media (max-width:900px){.auth-wrap{grid-template-columns:1fr;}}
.auth-card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);
  padding:var(--space-card-pad);box-shadow:0 10px 32px rgba(16,54,42,.10);}
.pwd-wrap{position:relative;}
.pwd-wrap input[type=password],.pwd-wrap input[type=text]{padding-right:64px;}
.pwd-eye{position:absolute;right:8px;top:50%;transform:translateY(-50%);border:0;background:transparent;
  cursor:pointer;font-family:inherit;font-size:var(--fs-xs);color:var(--color-text-tertiary);
  padding:4px 8px;border-radius:var(--radius-sm);}
.pwd-eye:hover{color:var(--color-primary);background:var(--color-surface-alt);}
.auth-card .form-actions .btn{width:100%;height:46px;font-size:var(--fs-body);}
.auth-head h1{font-size:var(--fs-h2);margin-bottom:8px;}
.auth-head p{color:var(--color-text-secondary);font-size:var(--fs-sm);margin:0;}
.auth-tabs{display:flex;gap:4px;background:var(--color-surface-alt);border-radius:var(--radius-pill);
  padding:4px;margin:var(--space-5) 0 var(--space-4);width:max-content;}
.auth-tabs{width:100%;}
.auth-tab{flex:1;border:0;background:transparent;cursor:pointer;font-family:inherit;font-size:var(--fs-sm);
  font-weight:var(--fw-medium);color:var(--color-text-secondary);padding:8px 22px;border-radius:var(--radius-pill);
  transition:background var(--dur-fast),color var(--dur-fast);}
.auth-tab.active{background:var(--color-primary);color:#fff;}
.auth-msg{font-size:var(--fs-sm);border-radius:var(--radius-md);padding:10px 12px;border:1px solid transparent;}
.auth-msg.is-err{background:#FEF3F2;border-color:#F3C0BC;color:#8B1A12;}
.auth-msg.is-ok{background:#EDF7ED;border-color:#BFE0BF;color:#1E5B23;}
.auth-foot{margin-top:var(--space-4);font-size:var(--fs-xs);color:var(--color-text-tertiary);}
.auth-foot a{color:var(--color-primary);}
.auth-aside{background:var(--color-bg-alt);border:1px solid var(--color-border);border-radius:var(--radius-lg);
  padding:var(--space-card-pad);}
.auth-aside h3{font-size:var(--fs-h4);margin-bottom:var(--space-4);}
.auth-benefits{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:var(--space-4);}
.auth-benefits li{display:flex;flex-direction:column;gap:2px;font-size:var(--fs-sm);
  padding-left:14px;border-left:3px solid var(--color-cta);}
.auth-benefits strong{color:var(--color-text-title);}
.auth-benefits span{color:var(--color-text-secondary);font-size:var(--fs-xs);line-height:1.6;}
.auth-aside-note{font-size:var(--fs-xs);color:var(--color-text-tertiary);margin:var(--space-5) 0 0;}

/* 「登录后可用」提示墙 */
.auth-wall{max-width:600px;margin:0 auto;text-align:center;background:var(--color-surface);
  border:1px solid var(--color-border);border-radius:var(--radius-lg);padding:var(--space-8) var(--space-6);
  box-shadow:var(--shadow-sm);}
.auth-wall-icon{font-size:34px;line-height:1;margin-bottom:var(--space-4);}
.auth-wall h2{font-size:var(--fs-h3);margin-bottom:var(--space-3);}
.auth-wall p{color:var(--color-text-secondary);font-size:var(--fs-sm);max-width:46ch;margin:0 auto var(--space-5);}
.auth-wall-reason{font-size:var(--fs-xs);color:var(--color-cta-dark);background:var(--color-brand-100);
  border-radius:var(--radius-md);padding:8px 12px;margin-bottom:var(--space-4);}
.auth-wall-actions{display:flex;gap:12px;justify-content:center;flex-wrap:wrap;}
.auth-wall-note{margin-top:var(--space-4);font-size:var(--fs-xs);color:var(--color-text-tertiary);}

/* ---------- 用户等级徽标 ---------- */
.vip-badge,.cert-badge{display:inline-block;font-size:11px;line-height:1;padding:3px 6px;border-radius:4px;color:#fff;margin-left:6px;vertical-align:1px;}
.vip-badge{background:#B45309;}
.cert-badge{background:#0F6E56;}

/* ---------- 顶部副栏：城市选择 + 站内搜索 ---------- */
.nav-strip{display:flex;gap:8px;list-style:none;margin:0;
  padding:9px var(--space-safe-x);overflow-x:auto;-webkit-overflow-scrolling:touch;
  background:rgba(0,0,0,.12);border-top:1px solid rgba(255,255,255,.06);
  scrollbar-width:none;}
.nav-strip::-webkit-scrollbar{display:none;}
.nav-strip a{display:block;color:rgba(255,255,255,.88);font-size:var(--fs-sm);
  padding:6px 14px;border-radius:999px;white-space:nowrap;background:rgba(255,255,255,.08);
  transition:background var(--dur-fast);}
.nav-strip a:active{background:rgba(255,255,255,.2);}
.nav-strip a.active{background:rgba(255,255,255,.22);color:#fff;font-weight:600;}
.nav-sub{background:rgba(0,0,0,.22);border-top:1px solid rgba(255,255,255,.1);}
.nav-sub-inner{display:flex;align-items:center;gap:12px;padding:8px var(--space-safe-x);}
.city-picker{position:relative;flex:0 0 auto;}
.city-btn{display:inline-flex;align-items:center;gap:6px;background:rgba(255,255,255,.1);
  border:1px solid rgba(255,255,255,.2);color:#fff;font-size:13px;padding:6px 12px;
  border-radius:var(--radius-pill);cursor:pointer;white-space:nowrap;transition:background var(--dur-fast);}
.city-btn:hover{background:rgba(255,255,255,.2);}
.city-pin{font-size:12px;opacity:.9;}
.city-name{font-weight:600;}
.city-caret{font-size:10px;opacity:.75;}
.city-panel{position:absolute;top:calc(100% + 8px);left:0;z-index:130;width:min(92vw,520px);
  max-height:min(66vh,460px);overflow:auto;background:#fff;color:var(--color-text);
  border-radius:var(--radius-lg);box-shadow:0 18px 48px rgba(0,0,0,.22);padding:14px;text-align:left;}
.city-panel-head{display:flex;gap:10px;align-items:center;margin-bottom:10px;}
.city-filter{flex:1;border:1px solid #E2E8E4;border-radius:var(--radius-md);padding:8px 10px;font-size:13px;
  outline:none;min-width:0;}
.city-filter:focus{border-color:var(--color-primary);}
.city-all{font-size:12px;color:var(--color-primary);white-space:nowrap;}
.city-hot{display:flex;flex-wrap:wrap;gap:8px;padding:8px 0 10px;border-bottom:1px dashed #E6EBE8;margin-bottom:8px;}
.city-hot-label{font-size:12px;color:#8A9691;}
.city-hot a{font-size:12px;padding:4px 10px;border-radius:var(--radius-pill);background:#F1F5F2;color:#1F3A2E;}
.city-hot a:hover{background:var(--color-primary);color:#fff;}
.city-provs{max-height:250px;overflow:auto;}
.city-prov{display:flex;gap:8px;padding:6px 0;border-bottom:1px solid #F2F5F3;}
.city-prov-name{flex:0 0 52px;font-size:12px;color:#8A9691;padding-top:3px;}
.city-prov-list{display:flex;flex-wrap:wrap;gap:4px 10px;}
.city-prov-list a{font-size:13px;color:#2C3E36;padding:2px 4px;}
.city-prov-list a:hover{color:var(--color-primary);text-decoration:underline;}
.city-panel-tip{margin:10px 0 0;font-size:12px;color:#8A9691;}
.city-panel-tip a{color:var(--color-primary);}
.nav-search{display:flex;align-items:center;flex:1;min-width:0;max-width:none;background:#fff;
  border-radius:var(--radius-pill);overflow:hidden;box-shadow:inset 0 0 0 1px rgba(0,0,0,.04);}
.nav-search input[type=search]{flex:1;min-width:0;border:0;background:transparent;padding:8px 14px;
  font-size:13px;color:#1B1F1D;outline:none;}
.nav-search input[type=search]::placeholder{color:#9AA5A0;}
.nav-search-btn{border:0;background:var(--color-cta);color:#fff;padding:8px 18px;font-size:13px;
  font-weight:var(--fw-bold);cursor:pointer;transition:background var(--dur-fast);}
.nav-search-btn:hover{background:var(--color-cta-dark);}
@media (max-width:720px){
  .nav-sub-inner{flex-wrap:wrap;gap:8px;padding:8px var(--space-safe-x) 10px;}
  .nav-search{order:2;flex:1 1 100%;max-width:none;}
  .city-panel{width:min(94vw,420px);left:-8px;}
  .city-provs{max-height:180px;}
}

/* 厂家列表：平台推荐徽章 */
.maker-card .badge-rec{background:var(--color-accent-50);color:var(--color-accent-700);border:1px solid var(--color-accent-300);margin-left:6px;}
