:root{--city-card-h:96px;
  --ink:#0f2742;--ink-2:#1d3a5c;--text:#1c2733;--muted:#4f5d6c;--line:#d9e0e7;--soft:#f4f6f9;--paper:#fff;
  --red:#c0392b;--red-deep:#9e2b20;--red-soft:#fbecea;
  --ok:#1f7a4d;--ok-soft:#e6f4ec;--bad:#b3261e;--bad-soft:#fdecea;--warn:#7a5200;--warn-soft:#fff4dc;
  --focus:#1a5fb4;
  --r-sm:8px;--r-md:12px;--r-pill:999px;
  --sh-sm:0 1px 2px rgba(15,39,66,.08);--sh-md:0 8px 24px rgba(15,39,66,.10);--sh-lg:0 16px 40px rgba(15,39,66,.16);
  --header-h:72px;--container:1200px;--gutter:25px;   /* 25：内容区正好 1150 宽，广告位规格都是 0 / 5 结尾（通栏 1150、半栏 570、小格 280，业主 2026-09-25） */
  --font:"PingFang SC","Hiragino Sans GB","Microsoft YaHei","Noto Sans SC",system-ui,-apple-system,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;
}
*,*::before,*::after{box-sizing:border-box}
[hidden]{display:none !important}
html{scroll-padding-top:calc(var(--header-h) + 16px);-webkit-text-size-adjust:100%}
body{margin:0;font-family:var(--font);font-size:18px;line-height:1.75;color:var(--text);background:var(--paper);overflow-wrap:break-word}
img,svg{display:block;max-width:100%}
a{color:var(--ink-2);text-underline-offset:3px}
a:hover{color:var(--red-deep)}
:focus-visible{outline:3px solid var(--focus);outline-offset:2px;border-radius:4px}
h1,h2,h3{color:var(--ink);line-height:1.2;margin:0 0 16px;font-weight:700;letter-spacing:0}
h1{font-size:clamp(34px,4vw,48px)}
h2{font-size:clamp(28px,3.2vw,38px)}
h3{font-size:24px;line-height:1.25}
p{margin:0 0 16px}
.icon{width:24px;height:24px;flex:0 0 auto}
.container{width:100%;max-width:var(--container);margin:0 auto;padding:0 var(--gutter)}
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}
.lead{font-size:20px;line-height:1.65;color:var(--muted)}
.small{font-size:14px;line-height:1.6}
main{display:block;min-height:50vh}
main:focus{outline:none}

.skip-link{position:absolute;left:16px;top:-80px;z-index:2000;background:var(--ink);color:#fff;padding:8px 16px;border-radius:var(--r-sm);text-decoration:none;font-size:16px}
.skip-link:focus{top:8px;color:#fff}

.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:48px;padding:0 24px;border-radius:var(--r-sm);border:2px solid transparent;font:inherit;font-size:17px;font-weight:600;line-height:1.2;text-decoration:none;cursor:pointer;white-space:nowrap;transition:background-color .15s,border-color .15s,color .15s,box-shadow .15s}
.btn .icon{width:20px;height:20px}
.btn-primary{background:var(--red);color:#fff}
.btn-primary:hover{background:var(--red-deep);color:#fff}
.btn-line{background:#fff;border-color:var(--ink-2);color:var(--ink)}
.btn-line:hover{background:var(--soft);color:var(--ink)}
.btn-danger-text{color:var(--red);border-color:var(--red);background:#fff}
.btn-danger-text:hover{color:#fff;background:var(--red);border-color:var(--red)}
.btn-ghost{background:rgba(255,255,255,.12);border-color:rgba(255,255,255,.6);color:#fff}
.btn-ghost:hover{background:rgba(255,255,255,.22);color:#fff}
.btn-sm{min-height:40px;padding:0 16px;font-size:15px}
.btn-lg{min-height:56px;padding:0 32px;font-size:18px}
.btn-block{display:flex;width:100%}

.site-header{position:sticky;top:0;z-index:1000;background:#fff;border-bottom:1px solid var(--line)}
.header-row{display:flex;align-items:center;gap:24px;height:var(--header-h)}
.brand{display:flex;align-items:center;gap:12px;text-decoration:none;color:var(--ink);flex:0 0 auto}
.brand-mark{display:inline-flex;align-items:center;justify-content:center;width:44px;height:44px;border-radius:var(--r-sm);background:var(--red);color:#fff;font-size:26px;font-weight:700;line-height:1;box-shadow:inset 0 0 0 3px rgba(255,255,255,.28)}
.brand-text{display:flex;flex-direction:column;line-height:1.25}
.brand-name{font-size:22px;font-weight:700;color:var(--ink);display:block}
.brand-name-row{display:flex;justify-content:space-between;width:100%}
/* 最后一个字带 ™：™ 用绝对定位挂在这个字的右上角外面，不占版面宽度，
   否则它会吃掉 space-between 分给字间距的那十几个像素，字就挤回去了 */
.brand-name-row>span:last-child{position:relative}
/* 英文名不再拉伸到副标题的宽度：字母拉开像被撑开的橡皮筋，紧凑排更好看 */
html[lang="en"] .brand-name-row{justify-content:flex-start;width:auto;letter-spacing:.01em}
html[lang="en"] .brand-sub{font-size:12px}
.brand-tm{position:absolute;top:-2px;left:100%;margin-left:1px;font-size:10px;font-weight:400;line-height:1}
.brand-sub{font-size:14px;color:var(--muted)}
.main-nav{display:flex;align-items:center;gap:24px;margin-left:auto}
.main-nav a{font-size:16px;color:var(--text);text-decoration:none;padding:8px 0;border-bottom:2px solid transparent;white-space:nowrap}
.main-nav a:hover{color:var(--red-deep)}
.main-nav a[aria-current="page"]{color:var(--ink);border-bottom-color:var(--red);font-weight:600}
.main-nav .nav-country{display:inline-flex;align-items:center;gap:6px;font-weight:600;color:var(--ink)}
.main-nav .nav-country .caret{width:0;height:0;border-left:4px solid transparent;border-right:4px solid transparent;border-top:5px solid currentColor;margin-top:2px}
/* 英文导航项比中文长一大截，同样宽度挤不开、按钮会被挤出屏幕：英文单独用紧一点的
   间距和字号（业主 2026-09-19）。中文不受影响。 */
html[lang="en"] .header-row{gap:16px}
html[lang="en"] .main-nav{gap:16px}
html[lang="en"] .main-nav a{font-size:15px}
html[lang="en"] .nav-cta{min-width:0;padding:0 18px}
.cat-block{padding:24px 0;border-top:1px solid var(--line)}
.cat-block:first-child{border-top:0;padding-top:0}
.cat-block-head{display:flex;align-items:center;gap:12px;font-size:22px;margin:0 0 14px}
.cat-block-head a{display:inline-flex;align-items:center;gap:12px;color:var(--ink);text-decoration:none}
.cat-block-head a:hover{color:var(--red-deep)}
.cat-block-head .cat-icon{width:40px;height:40px}
.cat-block-head .count{font-size:15px;font-weight:400;color:var(--muted)}
.cat-paths{display:flex;flex-direction:column;gap:4px}
.cat-path .muted{color:var(--muted)}
.cat-biz a{color:var(--text)}
.cat-biz a:hover{color:var(--red-deep)}
.chip-head{font-size:16px;color:var(--muted);font-weight:600;margin:0 0 10px}
.chip-list a[aria-current="page"]{background:var(--ink);color:#fff;border-color:var(--ink)}
.header-tools{display:flex;align-items:center;gap:16px;flex:0 0 auto}
.lang-switch{display:inline-flex;align-items:center;gap:4px;font-size:15px;color:var(--text);text-decoration:none;padding:8px 4px;min-height:40px}
.lang-switch .icon{width:20px;height:20px}
.nav-cta{min-width:152px}
.nav-toggle{display:none;align-items:center;gap:8px;min-height:44px;padding:0 12px;border:1px solid var(--line);border-radius:var(--r-sm);background:#fff;font:inherit;font-size:16px;color:var(--ink);cursor:pointer}
.bars{display:inline-flex;flex-direction:column;gap:4px}
.bars i{display:block;width:18px;height:2px;background:currentColor;border-radius:2px}
.nav-drawer{display:none}

.bottom-nav{display:none}

@media (max-width:1365px){
  html[lang="en"] .main-nav{gap:13px}
  html[lang="en"] .main-nav a{font-size:14px}
  html[lang="en"] .brand-sub{display:none}
}
/* 抽屉菜单的样式（窄屏用）。中文 767px 以下才用，英文 1199px 以下就用，所以放在这里。 */
@media (max-width:1199px){
  .nav-drawer.is-open{display:block;position:absolute;left:0;right:0;top:100%;background:#fff;border-bottom:1px solid var(--line);box-shadow:var(--sh-md);padding:8px var(--gutter) 16px;max-height:calc(100vh - var(--header-h) - 64px);overflow:auto}
  .nav-drawer a{display:block;padding:12px 0;font-size:18px;color:var(--text);text-decoration:none;border-bottom:1px solid var(--soft)}
  .nav-drawer a[aria-current]{color:var(--red-deep);font-weight:600}
  .drawer-group{margin-top:16px;padding-top:8px;border-top:2px solid var(--line)}
  .drawer-head{margin:0;font-size:14px;color:var(--muted)}
  /* 英文导航项加起来比中文长一大截，1200px 以下无论怎么压都会把按钮挤出屏幕，
     所以英文提前改用右上角菜单，链接一条不少（业主 2026-09-19）。 */
  html[lang="en"] .main-nav, html[lang="en"] .nav-cta{display:none}
  html[lang="en"] .nav-toggle{display:inline-flex}
  html[lang="en"] .header-tools{margin-left:auto}
}
@media (max-width:1199px){
  html[lang="en"] .main-nav{gap:12px}
  html[lang="en"] .lang-switch-text{display:none}
  .main-nav{gap:16px}
  .main-nav a{font-size:15px}
  .brand-sub{display:none}
  .header-row{gap:16px}
}
@media (max-width:1023px){
  .nav-cta{min-width:0}
  .main-nav{gap:14px}
  .main-nav a{font-size:14px}
  .brand-name{font-size:18px}
  .brand-mark{width:40px;height:40px;font-size:22px}
  .lang-switch-text{display:none}
  .header-tools{gap:8px}
}
@media (max-width:767px){
  :root{--header-h:60px;--gutter:16px}
  .main-nav,.nav-cta{display:none}
  .lang-switch{padding:8px}
  .nav-toggle{display:inline-flex}
  .header-tools{margin-left:auto}
  body{padding-bottom:64px}
  .bottom-nav{display:grid;grid-template-columns:repeat(7,1fr);position:fixed;left:0;right:0;bottom:0;z-index:1000;height:64px;background:#fff;border-top:1px solid var(--line);box-shadow:0 -4px 16px rgba(15,39,66,.06)}
  .bottom-nav a{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;padding:0 1px;font-size:10px;line-height:1.1;color:var(--muted);text-decoration:none;text-align:center;white-space:nowrap}
  .bottom-nav a .icon{width:18px;height:18px}
  .bottom-nav a[aria-current="page"]{color:var(--red-deep);font-weight:600}
}

.section{padding:64px 0}
.section-soft{background:var(--soft)}
.section-head{display:flex;align-items:flex-end;justify-content:space-between;gap:16px;margin-bottom:32px;flex-wrap:wrap}
.section-head h2{margin:0}
.section-head p{margin:8px 0 0}
.section-link{display:inline-flex;align-items:center;gap:4px;font-size:16px;font-weight:600;text-decoration:none;color:var(--ink-2)}
.section-link .icon{width:18px;height:18px}
@media (max-width:767px){.section{padding:48px 0}.section-head{margin-bottom:24px}}

.hero{background:radial-gradient(1200px 480px at 90% -10%,rgba(192,57,43,.35),transparent 60%),linear-gradient(135deg,#0f2742 0%,#15365a 60%,#0f2742 100%);color:#fff;padding:56px 0 64px}
.hero-grid{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(0,.85fr);gap:48px;align-items:center}
.hero-eyebrow{display:inline-flex;align-items:center;gap:8px;font-size:14px;letter-spacing:.04em;color:#ffd9d4;margin:0 0 12px}
.hero h1{color:#fff;margin:0 0 12px}
.hero .lead{color:rgba(255,255,255,.88);margin:0 0 24px}
@media (max-width:1023px){.hero-grid{grid-template-columns:minmax(0,1fr);gap:32px}.hero{padding:40px 0 48px}}

.search-card{background:#fff;border-radius:var(--r-md);padding:16px;box-shadow:var(--sh-lg);color:var(--text)}
.search-form{display:grid;grid-template-columns:1fr 1fr auto;gap:12px;align-items:end}
.search-field label{display:block;font-size:14px;font-weight:600;color:var(--ink);margin:0 0 4px}
.search-field input{width:100%;min-height:52px;padding:0 16px;border:1px solid #9aa7b4;border-radius:var(--r-sm);font:inherit;font-size:17px;color:var(--text);background:#fff}
.search-field input:focus{border-color:var(--focus)}
.search-form .btn{min-height:52px}
.search-tags{display:flex;flex-wrap:wrap;gap:8px;margin:16px 0 0;padding:0;list-style:none}
.search-tags a{display:inline-block;padding:4px 12px;border-radius:var(--r-pill);background:rgba(255,255,255,.12);border:1px solid rgba(255,255,255,.35);color:#fff;font-size:15px;text-decoration:none;line-height:1.6}
.search-tags a:hover{background:rgba(255,255,255,.24);color:#fff}
.search-tags-label{font-size:14px;color:rgba(255,255,255,.75);margin:16px 0 0}
@media (max-width:767px){.search-form{grid-template-columns:1fr}.search-form .btn{width:100%}}

.promo{position:relative;border-radius:var(--r-md);overflow:hidden;box-shadow:var(--sh-lg);background:#fff;color:var(--text)}
/* 三张卡片叠在同一格里：没轮到的只是隐藏、照样占位，轮播框按最高那张定高，切换时不跳 */
.promo-track{position:relative;display:grid;min-height:320px}
.promo-slide{grid-area:1/1;display:flex;visibility:hidden;flex-direction:column;justify-content:space-between;gap:16px;min-height:320px;padding:32px 32px 72px}
.promo-slide.is-active{visibility:visible}
.promo-slide .promo-kicker{display:inline-flex;align-items:center;gap:8px;font-size:14px;font-weight:600;color:var(--red-deep);margin:0}
.promo-slide h2{font-size:24px;margin:8px 0 8px}
.promo-slide p{margin:0;color:var(--muted)}
.promo-slide .btn{align-self:flex-start}
.promo-art{display:flex;width:56px;height:56px;border-radius:var(--r-md);background:var(--red-soft);align-items:center;justify-content:center;color:var(--red-deep);margin-bottom:12px}
.promo-art .icon{width:32px;height:32px}
.promo-b{background:linear-gradient(160deg,#fff 55%,#eef3f8)}
.promo-c{background:linear-gradient(160deg,#fff 55%,#fdf1ef)}
.promo-controls{position:absolute;left:32px;right:24px;bottom:20px;display:flex;align-items:center;gap:8px}
.promo-dot{width:32px;height:32px;display:inline-flex;align-items:center;justify-content:center;border:0;background:transparent;cursor:pointer;padding:0}
.promo-dot span{display:block;width:10px;height:10px;border-radius:50%;background:#b8c2cc}
.promo-dot[aria-current="true"] span{background:var(--red);width:24px;border-radius:var(--r-pill)}
.promo-pause{margin-left:auto;width:40px;height:40px;display:inline-flex;align-items:center;justify-content:center;border:1px solid var(--line);border-radius:50%;background:#fff;color:var(--ink);cursor:pointer}
.promo-pause .icon{width:16px;height:16px}
.promo-pause .i-play-wrap{display:none}
.promo.is-paused .promo-pause .i-pause-wrap{display:none}
.promo.is-paused .promo-pause .i-play-wrap{display:inline-flex}
@media (max-width:767px){.promo-slide{padding:24px 24px 72px;min-height:280px}.promo-track{min-height:280px}.promo-controls{left:24px}}

.cat-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px;list-style:none;margin:0;padding:0}
.cat-card{display:flex;flex-direction:column;align-items:flex-start;gap:8px;height:100%;padding:20px;border:1px solid var(--line);border-radius:var(--r-md);background:#fff;text-decoration:none;color:var(--text);transition:border-color .15s,box-shadow .15s,transform .15s}
.cat-card:hover{border-color:#b7c3cf;box-shadow:var(--sh-md);transform:translateY(-2px);color:var(--text)}
.cat-icon{display:inline-flex;align-items:center;justify-content:center;width:48px;height:48px;border-radius:var(--r-md);background:var(--red-soft);color:var(--red-deep)}
.cat-name{font-size:18px;font-weight:600;color:var(--ink);line-height:1.35}
.cat-count{font-size:14px;color:var(--muted);line-height:1.4}
@media (max-width:767px){.cat-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.cat-card{padding:16px}}

.city-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px;list-style:none;margin:0;padding:0}
.city-card{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:16px 20px;border-radius:var(--r-md);background:#fff;border:1px solid var(--line);text-decoration:none;color:var(--text);height:100%}
.city-card:hover{border-color:#b7c3cf;box-shadow:var(--sh-sm);color:var(--text)}
.city-name{display:flex;flex-direction:column;line-height:1.35}
.city-name strong{font-size:18px;color:var(--ink)}
.city-name span{font-size:14px;color:var(--muted)}
.city-count{font-size:14px;color:var(--muted);white-space:nowrap}
@media (max-width:1023px){.city-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media (max-width:767px){.city-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.city-card{flex-direction:column;align-items:flex-start;gap:4px;padding:12px 16px}}

.steps{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:24px;list-style:none;margin:0;padding:0;counter-reset:step}
.step{padding:24px;border-radius:var(--r-md);background:#fff;border:1px solid var(--line);counter-increment:step}
.step::before{content:counter(step,decimal-leading-zero);display:block;font-size:14px;font-weight:700;color:var(--red-deep);letter-spacing:.08em;margin-bottom:8px}
.step h3{margin-bottom:8px}
.step p{margin:0}
@media (max-width:1023px){.steps{grid-template-columns:1fr}}

.biz-band{border-radius:var(--r-md);padding:40px;background:linear-gradient(120deg,var(--ink) 0%,#1d4470 100%);color:#fff;display:grid;grid-template-columns:1fr auto;gap:24px;align-items:center}
.biz-band h2{color:#fff;margin-bottom:8px}
.biz-band p{margin:0;color:rgba(255,255,255,.86)}
.biz-band-actions{display:flex;gap:12px;flex-wrap:wrap}
@media (max-width:767px){.biz-band{grid-template-columns:1fr;padding:28px 24px}}

.faq{max-width:880px}
.faq details{border-bottom:1px solid var(--line)}
.faq summary{list-style:none;cursor:pointer;display:flex;justify-content:space-between;gap:16px;padding:20px 0;font-size:20px;font-weight:600;color:var(--ink);line-height:1.5}
.faq summary::-webkit-details-marker{display:none}
.faq summary::after{content:"+";font-size:28px;line-height:1;color:var(--red-deep);flex:0 0 auto}
.faq details[open] summary::after{content:"−"}
.faq .faq-a{padding:0 0 20px}
.faq .faq-a p{margin:0}

.page-head{padding:32px 0 24px;border-bottom:1px solid var(--line);background:var(--soft)}
.page-head h1{margin:8px 0 8px}
.page-head .lead{margin:0;max-width:820px}
.crumb ol{display:flex;flex-wrap:wrap;gap:4px 8px;margin:0;padding:0;list-style:none;font-size:14px;color:var(--muted)}
.crumb li+li::before{content:"/";margin-right:8px;color:#9aa7b4}
.crumb a{color:var(--ink-2)}

.layout-2{display:grid;grid-template-columns:260px minmax(0,1fr);gap:32px;align-items:start}
@media (max-width:1023px){.layout-2{grid-template-columns:1fr}}
.filters{position:sticky;top:calc(var(--header-h) + 16px);border:1px solid var(--line);border-radius:var(--r-md);padding:20px;background:#fff}
.filters h2{font-size:20px;margin:0 0 12px}
.filters fieldset{border:0;margin:0 0 16px;padding:0}
.filters legend{font-size:14px;font-weight:700;color:var(--ink);margin-bottom:4px}
.filters select{width:100%;min-height:44px;font:inherit;font-size:16px;border:1px solid #9aa7b4;border-radius:var(--r-sm);padding:0 8px;background:#fff}
.filters .check{display:flex;align-items:center;gap:8px;font-size:16px}
.filters .check input{width:20px;height:20px}
@media (max-width:1023px){.filters{position:static}}

/* 搜索页上借来的广告位 / 推荐位下面那行：写明原本属于哪一页（业主 2026-09-25） */
.slot-src{margin:6px 0 16px;font-size:13px;color:var(--muted);text-align:right}
.slot-src a{color:inherit;text-decoration:underline}
.result-meta{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:8px;margin-bottom:16px;color:var(--muted);font-size:18px}
.biz-list{display:grid;gap:16px;list-style:none;margin:0;padding:0}
.biz-card{position:relative;display:grid;grid-template-columns:56px minmax(0,1fr) auto;gap:16px;align-items:start;padding:20px;border:1px solid var(--line);border-radius:var(--r-md);background:#fff;transition:border-color .15s,box-shadow .15s}
.biz-card:hover{border-color:#b7c3cf;box-shadow:var(--sh-md)}
.biz-avatar{width:56px;height:56px;border-radius:var(--r-md);background:var(--soft);color:var(--ink-2);display:flex;align-items:center;justify-content:center;font-size:24px;font-weight:700;border:1px solid var(--line)}
.biz-title{margin:0;font-size:24px;line-height:1.3}
.biz-title a{color:var(--ink);text-decoration:none}
.biz-title a::after{content:"";position:absolute;inset:0;border-radius:var(--r-md)}
.biz-alt{margin:0;font-size:18px;color:var(--muted);line-height:1.5}
.biz-meta{display:flex;flex-wrap:wrap;gap:4px 16px;margin:8px 0 0;font-size:18px;color:var(--muted);line-height:1.6}
.biz-meta span{display:inline-flex;align-items:center;gap:4px}
.biz-meta .icon{width:16px;height:16px}
.tag{display:inline-flex;align-items:center;gap:4px;padding:2px 10px;border-radius:var(--r-pill);font-size:14px;line-height:1.6;background:var(--soft);color:var(--ink-2);border:1px solid var(--line)}
.tag-ok{background:var(--ok-soft);color:var(--ok);border-color:#b9dcc7}
.tag .icon{width:14px;height:14px}
.biz-actions{position:relative;z-index:1;display:flex;flex-direction:column;gap:8px}
.biz-lookup-form + .form-save{margin-top:18px}
@media (max-width:767px){.biz-card{grid-template-columns:44px minmax(0,1fr);padding:16px}.biz-avatar{width:44px;height:44px;font-size:20px}.biz-actions{grid-column:1 / -1;flex-direction:row}.biz-actions .btn{flex:1}}

/* 翻页（业主 2026-09-20 定的版式）：上一页 | 1 | 输入框/总页数 | 末页 | 下一页 */
.pager{display:flex;justify-content:center;align-items:center;gap:8px;margin:32px 0 0;flex-wrap:wrap}
.pager-top{margin:0 0 16px}
.pager a,.pager>span{min-width:44px;min-height:44px;display:inline-flex;align-items:center;justify-content:center;padding:0 12px;border-radius:var(--r-sm);border:1px solid var(--line);text-decoration:none;font-size:16px;color:var(--ink)}
.pager [aria-current]{background:var(--ink);color:#fff;border-color:var(--ink)}
.pager .is-off{color:var(--muted);border-color:var(--line);background:#f6f7f9;cursor:default}
.pager-jump{display:inline-flex;align-items:center;gap:6px;margin:0}
.pager-jump input[type=number]{width:72px;min-height:44px;padding:0 8px;border:1px solid var(--line);border-radius:var(--r-sm);font:inherit;font-size:16px;color:var(--ink);text-align:center;background:#fff}
.pager-jump input[type=number]:focus{outline:2px solid var(--red);outline-offset:1px}
.pager-of{color:var(--muted);font-size:15px}

/* 换国家站的提示条（业主 2026-09-20）：默认隐藏，JS 读到访客在别的国家才显示 */
.geo-tip{background:#fff7ed;border-bottom:1px solid #fed7aa}
.geo-tip-row{display:flex;align-items:center;gap:12px;flex-wrap:wrap;padding-top:10px;padding-bottom:10px}
.geo-tip-row p{margin:0;flex:1 1 auto;color:var(--ink);font-size:15px}
.geo-tip-close{margin-left:auto;width:36px;height:36px;border:0;background:transparent;color:var(--muted);font-size:22px;line-height:1;cursor:pointer;border-radius:var(--r-sm)}
.geo-tip-close:hover{background:rgba(0,0,0,.06);color:var(--ink)}
.empty{padding:40px;border:1px dashed #b7c3cf;border-radius:var(--r-md);text-align:center;background:#fff}
.empty p{margin:0 0 16px}

.chip-list{display:flex;flex-wrap:wrap;gap:8px;list-style:none;margin:0;padding:0}
.chip-list a{display:inline-flex;align-items:center;gap:6px;padding:6px 14px;border-radius:var(--r-pill);border:1px solid var(--line);background:#fff;font-size:16px;text-decoration:none;color:var(--ink-2);line-height:1.5}
.chip-list a:hover{border-color:#9aa7b4}
.chip-list .count{color:var(--muted);font-size:14px}
.chip-list a.chip-all{color:var(--red-deep);border-color:var(--red-deep);font-weight:600}

.prose{max-width:760px}
.prose h2{margin-top:40px}
.prose ul,.prose ol{padding-left:24px;margin:0 0 16px}

.site-footer{margin-top:0;background:var(--ink);color:rgba(255,255,255,.86)}
/* 页脚两行（业主 2026-09-19：密集排版下页脚不铺太高）：品牌 + 一句话 + 邮箱，右边和顶部一样的导航 */
/* 右边这排导航跟左边第二行（那句介绍）对齐，不跟第一行品牌行对齐（业主 2026-09-20） */
.footer-row{display:flex;align-items:flex-end;justify-content:space-between;gap:16px 40px;flex-wrap:wrap;padding-top:22px;padding-bottom:18px}
.footer-row .footer-brand{margin-bottom:4px}
.footer-row .footer-about p{font-size:15px;line-height:1.6;margin:0}
.footer-row .footer-about p.footer-brand{font-size:19px}
.footer-row .footer-about a{color:#fff}
/* 行高必须跟左边那段介绍（.footer-row .footer-about p）一致，都是 1.6：
   两边字号同为 15px，但行高不同的话，底部对齐之后文字基线会差 1px 左右，
   看着就是没对齐（业主 2026-09-20 发现） */
.footer-nav{display:flex;flex-wrap:wrap;gap:6px 22px;line-height:1.6}
.footer-nav a{color:rgba(255,255,255,.9);text-decoration:none;font-size:15px}
.footer-nav a:hover{color:#fff;text-decoration:underline}
.footer-grid{display:grid;grid-template-columns:1.4fr 1fr 1fr 1fr;gap:32px;padding-top:48px;padding-bottom:40px}
.footer-brand{display:flex;align-items:center;gap:12px;font-size:20px;font-weight:700;color:#fff;margin-bottom:12px}
.footer-brand .brand-mark{width:36px;height:36px;font-size:20px}
/* 页脚不做撑宽对齐，™ 走正常文字流就行；必须把上面那条绝对定位复位掉，
   否则页脚没有定位基准，™ 会飘到整页的角落去（2026-09-20 踩过） */
.footer-brand .brand-tm{position:static;vertical-align:top;margin-left:1px}
.footer-col a{color:rgba(255,255,255,.9)}
.footer-col a:hover{color:#fff}
.footer-col>a{display:block;padding:4px 0;text-decoration:none;font-size:16px}
.footer-head{font-size:16px;color:#fff;margin:0 0 8px;letter-spacing:.04em}
.footer-about p{font-size:18px;line-height:1.7}
.footer-country{font-size:16px;margin:8px 0 0}
.footer-bottom{border-top:1px solid rgba(255,255,255,.14);padding:20px 0 24px;font-size:14px;color:rgba(255,255,255,.74)}
.footer-legal-row{display:flex;justify-content:space-between;gap:12px 24px;flex-wrap:wrap;align-items:center}
.footer-legal-row p{margin:0}
.footer-legal{display:flex;gap:16px;flex-wrap:wrap}
.footer-legal a{color:rgba(255,255,255,.86);text-decoration:none}
/* 最底下一行：版权（左）· 建站署名（中）· 法务链接（右）；放不下时三样居中叠成三行 */
.footer-credit{margin:0;color:rgba(255,255,255,.72)}
@media (max-width:1100px){.footer-legal-row{flex-direction:column;text-align:center}.footer-legal{justify-content:center}}
.credit-tel{margin-left:6px}
.credit-brand,.credit-tel,.credit-site{color:inherit;text-decoration:none}
.credit-site{color:#d9ccb4}
.credit-brand:hover,.credit-tel:hover,.credit-site:hover{color:#fff}
.credit-dot{color:rgba(255,255,255,.3)}
@media (max-width:1023px){.footer-grid{grid-template-columns:1fr 1fr}}
@media (max-width:520px){.footer-grid{grid-template-columns:1fr}}

.rh-toasts{position:fixed;top:calc(var(--header-h) + 12px);left:50%;transform:translateX(-50%);z-index:1200;display:flex;flex-direction:column;gap:8px;width:min(560px,calc(100vw - 32px));pointer-events:none}
.rh-toast{pointer-events:auto;display:flex;align-items:flex-start;gap:10px;padding:12px 14px;border-radius:var(--r-md);box-shadow:var(--sh-lg);font-size:16px;line-height:1.55;animation:rh-toast-in .25s ease-out both,rh-toast-out .35s ease-in var(--rh-life,3s) forwards}
.rh-toast-ok{background:#e9f7ef;color:#12532f;border:1px solid #9fd1b2}
.rh-toast-bad{background:#fdecea;color:#8a1c14;border:1px solid #f2b8b2;animation:rh-toast-in .25s ease-out both,rh-toast-out .35s ease-in 8s forwards}
.rh-toast--held{animation:rh-toast-in .25s ease-out both}
.rh-toast-icon{flex:0 0 auto;width:22px;height:22px;border-radius:50%;display:inline-flex;align-items:center;justify-content:center;font-weight:700;font-size:14px;color:#fff;background:currentColor}
.rh-toast-ok .rh-toast-icon{background:var(--ok)}
.rh-toast-bad .rh-toast-icon{background:var(--bad)}
.rh-toast-text{flex:1}
.rh-toast-x{flex:0 0 auto;border:0;background:transparent;font-size:22px;line-height:1;color:inherit;cursor:pointer;padding:0 4px;min-width:32px;min-height:32px}
@keyframes rh-toast-in{from{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:none}}
@keyframes rh-toast-out{to{opacity:0;transform:translateY(-8px);visibility:hidden}}
.alert{padding:16px 20px;border-radius:var(--r-md);margin:0 0 20px;font-size:18px}
.alert-error{background:var(--bad-soft);color:#8a1c14;border:1px solid #f2b8b2}
.alert-info{background:#eef4fb;color:#173a60;border:1px solid #c5d8ee}
.rh-flash{animation:rh-flash .6s ease-in-out 2}
@keyframes rh-flash{50%{box-shadow:0 0 0 4px rgba(179,38,30,.35)}}
.rh-confirm{border:0;border-radius:var(--r-md);padding:24px;max-width:min(480px,calc(100vw - 32px));box-shadow:var(--sh-lg)}
.rh-confirm::backdrop{background:rgba(15,39,66,.45)}
.rh-confirm-msg{font-size:18px;margin:0 0 20px}
.rh-confirm-act{display:flex;justify-content:flex-end;gap:12px}

@media (prefers-reduced-motion:reduce){
  .cat-card,.biz-card{transition:none}
  .cat-card:hover{transform:none}
  .rh-toast,.rh-toast-bad,.rh-toast--held{animation-duration:.01s}
}

.hero-site{padding:64px 0 72px}
.country-list{display:flex;flex-wrap:wrap;gap:16px;list-style:none;margin:24px 0 0;padding:0}
.country-card{display:flex;align-items:center;gap:16px;min-width:280px;padding:20px 24px;border-radius:var(--r-md);background:#fff;color:var(--text);text-decoration:none;box-shadow:var(--sh-lg)}
.country-card strong{font-size:24px;color:var(--ink)}
.country-card span{color:var(--muted);font-size:14px}
.country-card .icon{margin-left:auto;color:var(--red)}
.country-more{margin:16px 0 0;color:rgba(255,255,255,.8)}
.biz-hero{display:grid;grid-template-columns:96px minmax(0,1fr);gap:24px;align-items:start;margin-top:16px}
.biz-avatar-lg{width:96px;height:96px;font-size:40px;background:#fff}
.biz-avatar{overflow:hidden;background-clip:padding-box}
.biz-avatar img{width:100%;height:100%;object-fit:cover;background:#fff}
.logo-manage{display:flex;align-items:center;gap:16px;margin:0 0 12px}
.logo-manage img{width:96px;height:96px;object-fit:cover;border:1px solid var(--line);border-radius:var(--r-md);background:#fff}
.biz-hero h1{margin:0}
.biz-status{margin:8px 0 0}
.biz-cta{display:flex;flex-wrap:wrap;gap:12px;margin-top:20px}
.biz-layout{display:grid;grid-template-columns:minmax(0,1fr) 320px;gap:40px;align-items:start}
.biz-main h2{font-size:24px;margin:0 0 16px}
.biz-main h2+dl,.biz-main p+h2,.biz-main dl+h2{margin-top:0}
.biz-main dl+h2{margin-top:32px}
.info-list{margin:0 0 24px;border-top:1px solid var(--line)}
.info-list>div{display:grid;grid-template-columns:7em minmax(0,1fr);gap:12px;padding:12px 0;border-bottom:1px solid var(--line)}
html[lang^="en"] .info-list>div{grid-template-columns:9em minmax(0,1fr)}
.info-list dt{font-weight:600;color:var(--ink)}
.info-list dd{margin:0}
.source-note{margin-top:32px;padding-top:16px;border-top:1px solid var(--line);color:var(--muted)}
.source-note a{display:inline-flex;align-items:center;gap:4px;margin-left:8px}
.icon-inline{width:16px;height:16px}
.claim-card{position:sticky;top:calc(var(--header-h) + 16px);padding:24px;border-radius:var(--r-md);border:2px solid var(--red);background:var(--red-soft)}
.claim-card h2{font-size:24px;margin:0 0 8px}
@media (max-width:1023px){.biz-layout{grid-template-columns:1fr}.claim-card{position:static}}
@media (max-width:767px){.biz-hero{grid-template-columns:64px minmax(0,1fr);gap:16px}.biz-avatar-lg{width:64px;height:64px;font-size:28px}.info-list>div{grid-template-columns:6.5em minmax(0,1fr);gap:10px}html[lang^="en"] .info-list>div{grid-template-columns:7.5em minmax(0,1fr)}.biz-cta .btn{flex:1 1 auto}}

.auth-wrap{max-width:560px;margin:0 auto}
.panel{background:#fff;border:1px solid var(--line);border-radius:var(--r-md);padding:32px;box-shadow:var(--sh-sm)}
.panel h2{font-size:24px;margin:0 0 16px}
.panel+.panel{margin-top:24px}
.note-bar{margin:0 0 24px;padding:12px 16px;border-left:4px solid var(--red);background:var(--red-soft);font-size:16px;line-height:1.7;border-radius:0 var(--r-sm) var(--r-sm) 0}
.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px}
.field{display:flex;flex-direction:column}
.field.full{grid-column:1 / -1}
/* 提交大按钮紧跟在输入框后面时留一行空（登录、找回密码、设新密码；照点评助手的 20px）。保存按钮自己有 32px，不动 */
.form-grid + .btn-block:not(.form-save),.field + .btn-block:not(.form-save){margin-top:20px}
.field label{font-size:14px;font-weight:600;color:var(--ink);margin:0 0 4px}
.field input,.field select,.field textarea{width:100%;min-height:48px;padding:10px 14px;border:1px solid #9aa7b4;border-radius:var(--r-sm);font:inherit;font-size:16px;background:#fff;color:var(--text)}
.field textarea{min-height:120px;line-height:1.7}
.field input:focus,.field select:focus,.field textarea:focus{border-color:var(--focus)}
.field .hint{font-size:14px;color:var(--muted);margin-top:4px;line-height:1.5}
.field .hint.ok{color:var(--ok)}
.field .hint.bad{color:var(--bad)}
.req{font-size:14px;font-weight:400;color:var(--muted)}
.hint-inline{font-size:14px;font-weight:400;color:var(--muted)}
.code-row{display:flex;gap:8px;align-items:stretch;flex-wrap:wrap}
.code-row input{flex:1 1 160px;min-width:0;letter-spacing:6px;font-weight:700}
.code-row .btn{flex:0 0 auto;white-space:nowrap}
.phone-row{display:flex;gap:8px;align-items:stretch}
.phone-row select{flex:0 0 auto;width:auto;max-width:48%}
.phone-row input{flex:1 1 140px;min-width:0}
.terms-check{display:flex;align-items:flex-start;gap:10px;margin:20px 0 20px;font-size:16px;line-height:1.6;cursor:pointer}
.terms-check input{width:20px;height:20px;margin-top:4px;flex:0 0 auto}
.auth-switch{text-align:center;margin:20px 0 0;color:var(--muted);font-size:16px}
.muted{color:var(--muted)}
.narrow{max-width:640px;margin-left:auto;margin-right:auto}
.mr-tabs{display:flex;flex-wrap:wrap;gap:8px;margin:0 0 24px;border-bottom:1px solid var(--line)}
.mr-tab{padding:12px 16px;text-decoration:none;color:var(--text);font-size:16px;border-bottom:3px solid transparent;margin-bottom:-1px}
.mr-tab.on{color:var(--ink);font-weight:700;border-bottom-color:var(--red)}
@media (max-width:767px){.form-grid{grid-template-columns:1fr}.panel{padding:24px 20px}}

.path-cards{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:24px}
.path-card{display:flex;flex-direction:column;gap:12px;padding:24px;border:1px solid var(--line);border-radius:var(--r-md);background:#fff;box-shadow:var(--sh-sm)}
.path-card h2{font-size:24px;margin:0}
.path-card p{margin:0;color:var(--muted)}
.path-card .search-form{grid-template-columns:1fr;gap:8px}
.path-card .btn{align-self:flex-start;margin-top:auto}
@media (max-width:1023px){.path-cards{grid-template-columns:1fr}}
.pill{display:inline-block;margin-left:8px;padding:2px 10px;border-radius:var(--r-pill);background:var(--ok-soft);color:var(--ok);font-size:14px;font-weight:600;vertical-align:middle}
.inline-form{margin:0 0 16px}
.code-form{margin-top:8px;padding-top:16px;border-top:1px solid var(--line)}
fieldset.field{border:0;margin:0 0 16px;padding:0}
fieldset.field legend{font-size:14px;font-weight:600;color:var(--ink);margin-bottom:8px;padding:0}
.check{display:flex;align-items:center;gap:8px;padding:6px 0;font-size:18px;cursor:pointer}
.check input{width:20px;height:20px;flex:0 0 auto}
/* 表单里的勾选项一行排几个；.field input / .field label 的输入框样式不能套到勾选框上 */
fieldset.field{flex-direction:row;flex-wrap:wrap;column-gap:28px}
.field .check{margin:0;padding:4px 0;font-size:16px;font-weight:400;color:var(--text)}
.field .check input{width:20px;height:20px;min-height:0;padding:0}
/* 营业时间：七天一天一组，宽屏一行三四组，手机一行一组 */
.hours-grid{column-gap:32px;row-gap:10px}
.hours-day{display:flex;align-items:center;gap:8px}
.hours-name{width:36px;font-size:16px;color:var(--text)}
.field .hours-day input{width:76px;min-height:44px;padding:8px 10px;text-align:center;font-variant-numeric:tabular-nums}
.hours-dash{color:var(--muted)}
.hours-grid .hint{flex-basis:100%}
/* 长表单分几段，每段标题和上一段拉开 */
.panel > h2:not(:first-of-type){margin-top:40px}
.form-save{margin-top:32px}
.area-pick .hint{flex-basis:100%}
.area-cols{display:flex;flex-wrap:wrap;gap:8px;flex:1 1 100%}
.area-cols select{flex:1 1 200px;max-width:100%;min-height:44px}
.area-add{align-self:flex-start;min-height:44px}
.area-chips{display:flex;flex-wrap:wrap;gap:8px;flex:1 1 100%;list-style:none;margin:8px 0 0;padding:0}
.area-chips li{display:inline-flex;align-items:center;gap:6px;padding:6px 8px 6px 12px;border:1px solid var(--line,#ccc);border-radius:999px;background:var(--bg-soft,#f5f5f5);font-size:16px}
.area-del{border:0;background:none;font-size:20px;line-height:1;min-width:32px;min-height:32px;cursor:pointer;color:var(--muted)}
/* 勾选框那一排的 fieldset 是横排的；里面套的两栏输入框（社交媒体）要占满整行，和上面的电话、网站一样宽 */
fieldset.field > .form-grid,fieldset.field > .chat-rows{flex:1 1 100%}

/* 选分类：三个连动下拉，宽屏一行排开，手机一个一行 */
.cat-cascade{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}
.cat-cascade select[hidden]{display:none}
.cat-extras{flex-direction:column;min-width:0}
.cat-field,.cat-extra{min-width:0}
.cat-cascade select,.cat-field select,.cat-extra select{max-width:100%;min-width:0}
.cat-extras .hint{margin:0 0 10px}
.cat-extra{width:100%;margin-bottom:10px}
.cat-extra[hidden]{display:none}
.cat-extras .btn{align-self:flex-start}
@media (max-width:767px){.cat-cascade{grid-template-columns:minmax(0,1fr)}}

.blank{color:var(--muted)}
.chat-rows{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px 24px}
.chat-pair{display:flex;align-items:flex-end;gap:8px;min-width:0}
.chat-pair select{flex:0 0 auto;width:auto;max-width:48%;min-height:44px;padding:0 8px;border:1px solid #9aa7b4;border-radius:var(--r-sm);font:inherit;font-size:16px;background:#fff}
.chat-pair .line-input{flex:1 1 auto;min-width:0;min-height:44px;border:0;border-bottom:2px solid #9aa7b4;border-radius:0;padding:8px 4px;font:inherit;font-size:16px;background:transparent}
.chat-pair .line-input:focus{border-bottom-color:var(--focus)}
.container.form-wide{max-width:1152px}
.inline-links{display:flex;flex-wrap:wrap;gap:4px 16px}
@media (max-width:1023px){.chat-rows{grid-template-columns:1fr}}
.photo-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;list-style:none;margin:0 0 24px;padding:0}
.photo-grid img{display:block;width:100%;height:auto;aspect-ratio:4/3;object-fit:cover;border-radius:var(--r-md);border:1px solid var(--line);background:var(--soft)}
@media (max-width:767px){.photo-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}}
.photo-manage{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;list-style:none;margin:0 0 16px;padding:0}
.photo-manage li{position:relative}
.photo-manage img{display:block;width:100%;height:auto;aspect-ratio:4/3;object-fit:cover;border-radius:var(--r-sm);border:1px solid var(--line)}
.photo-manage .check{justify-content:center;font-size:14px;padding:4px 0}
@media (max-width:767px){.photo-manage{grid-template-columns:repeat(2,minmax(0,1fr))}}
.mr-badge{display:inline-block;min-width:22px;margin-left:6px;padding:0 6px;border-radius:var(--r-pill);background:var(--red);color:#fff;font-size:14px;line-height:22px;text-align:center}
.own-list{list-style:none;margin:0;padding:0;display:grid;gap:16px}
.own-card{display:flex;justify-content:space-between;gap:16px;flex-wrap:wrap;align-items:center;padding:20px;border:1px solid var(--line);border-radius:var(--r-md);background:#fff}
.own-card .biz-title{margin:0 0 4px}
/* 商家中心的卡片不要整卡可点：名录列表里那层透明遮罩会盖住「编辑资料」按钮 */
.own-card .biz-title a::after{content:none}
.own-actions{display:flex;gap:8px;flex-wrap:wrap}
.msg-list{list-style:none;margin:0;padding:0;display:grid;gap:12px}
.msg-item{padding:16px 20px;border:1px solid var(--line);border-radius:var(--r-md);background:#fff}
.msg-title{margin:0 0 4px;font-weight:600;color:var(--ink)}
.msg-sub{margin:0;color:var(--muted)}
.msg-time{margin:4px 0 0;font-size:14px;color:var(--muted)}
.msg-shell{display:grid;grid-template-columns:minmax(220px,320px) minmax(0,1fr);gap:16px;align-items:start}
.msg-pick{display:block;max-height:620px;overflow:auto;border:1px solid var(--line);border-radius:var(--r-sm);background:#fff}
.msg-card{display:grid;grid-template-columns:minmax(0,1fr);align-items:start;gap:4px;min-height:54px;padding:10px 12px 10px 14px;border-left:3px solid transparent;border-bottom:1px solid var(--line);background:#fff;color:inherit;text-decoration:none}
.msg-pick li:last-child .msg-card{border-bottom:0}
.msg-card .msg-title{min-width:0;margin:0;font-weight:400;text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:3px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.msg-card .msg-time{margin:0;font-size:12px;line-height:1.35;white-space:nowrap;color:var(--muted)}
.msg-card:hover,.msg-card:focus-visible{background:#f8fafc}
.msg-card.is-on{border-left-color:var(--red);background:#fff7f6}
.msg-card.msg-unread .msg-title::before{content:"";display:inline-block;width:7px;height:7px;margin-right:7px;border-radius:50%;background:var(--red);vertical-align:middle}
.msg-reader{min-height:220px;padding:20px;border:1px solid var(--line);border-radius:var(--r-md);background:#fff}
.msg-reader h2{margin:0 0 12px;font-size:20px;line-height:1.45}
/* 《华商汇欢迎您》：六件事一条一行，按钮跟在句子后面（业主 2026-09-25） */
.welcome-msg ol{margin:0 0 12px;padding-left:22px}
.welcome-msg li{margin:0 0 12px;line-height:1.7}
.welcome-msg li .btn{margin-left:6px;vertical-align:baseline}
@media (max-width:767px){.msg-shell{grid-template-columns:1fr}.msg-reader{min-height:0}}

/* ===== 密集版：首页、找商家、频道页、找客户、找合作（业主 2026-09-19，照桌面设计稿） ===== */
.page-dense{background:#eef1f5}
.dense{padding:16px 0 8px}
.m-box{background:#fff;border:1px solid var(--line);border-radius:var(--r-md);padding:16px;margin-bottom:14px}
.m-box > .search-form{margin-bottom:14px}
.m-top{display:grid;grid-template-columns:310px minmax(0,1fr);gap:20px;align-items:center}
.m-top h1{font-size:26px;margin:0 0 4px;color:var(--ink);text-wrap:balance}
/* 这行写的是本地收录了哪些商家，是网站最值钱的东西；改名叫华商汇之后
   站名不再自我解释，这句话责任变重。先试过灰改黑+不加粗，业主看了觉得
   更弱（字变细把颜色的提升抵消了），2026-09-20 改成红色加粗 */
.m-top h1 span{display:block;margin-top:6px;font-size:16px;font-weight:700;color:var(--red)}
.m-lead{margin:0;color:var(--muted);font-size:15px}
/* 商家数量是别人抄不走的硬实力，数字单独放大（业主 2026-09-20）；
   外面那行说明文字保持小字，靠对比把数字顶出来 */
.m-stat{margin:2px 0 0;font-size:14px;line-height:1.5;color:var(--muted)}
.m-stat b{color:var(--red);font-size:21px}
/* 正文里要强调的活数字，跟 .m-stat b 一个配色，别处（比如找客户页）也能用 */
.num-strong{color:var(--red);font-weight:700}
.m-tags{display:flex;flex-wrap:wrap;gap:6px 14px;margin:10px 0 0;font-size:15px}
.m-tags span{color:var(--muted)}
.m-tags a{color:var(--ink-2)}
.m-tags a[aria-current="page"]{color:var(--red-deep);font-weight:700;text-decoration:none}
/* 大类按钮格电脑手机都不显示了（业主 2026-09-21：跟下面的16频道滚动格重复，还占版面）；
   PHP 还在输出这个框，只是整个隐藏——先留着，万一以后想要能直接改回来 */
.cat-btn-box{display:none}
.cat-btns{display:grid;grid-template-columns:repeat(8,minmax(0,1fr));gap:8px}
.cat-btns a{display:flex;align-items:center;justify-content:center;text-align:center;min-height:46px;padding:6px 8px;border:1px solid var(--line);border-radius:var(--r-sm);background:var(--soft);color:var(--ink);font-size:16px;font-weight:600;line-height:1.2;text-decoration:none}
.cat-btns a:hover{background:var(--red);border-color:var(--red);color:#fff}
/* 广告位 */
.ad-row{display:grid;gap:10px;margin-bottom:10px}
.ad-row-1{grid-template-columns:minmax(0,1fr)}
.ad-row-2{grid-template-columns:repeat(2,minmax(0,1fr))}
.ad-row-3{grid-template-columns:repeat(3,minmax(0,1fr))}
.ad-row-4{grid-template-columns:repeat(4,minmax(0,1fr))}
.ad{position:relative;display:flex;flex-direction:column;justify-content:center;align-items:center;min-height:90px;border-radius:var(--r-sm);text-decoration:none;text-align:center;overflow:hidden}
.ad-empty{border:2px dashed #c9d3de;background:repeating-linear-gradient(45deg,#fafbfd,#fafbfd 10px,#f3f6f9 10px,#f3f6f9 20px);color:var(--muted);padding:8px}
.ad-empty:hover{border-color:var(--red)}
.ad-main{font-size:18px;font-weight:700;color:var(--ink-2)}
.ad-sub{font-size:13px}
.ad-live{background:#fff;border:1px solid var(--line)}
.ad-live{min-height:0}
.ad-live img{display:block;width:100%;height:100%;object-fit:cover}
/* 卖出后：外层是 div，图片自己是链接；右下角「$x/月，去竞价」（业主 2026-09-25） */
.ad-live .ad-link{display:block;width:100%;height:100%}
.ad-bid{position:absolute;right:6px;bottom:4px;z-index:2;font-size:12px;line-height:1.5;font-weight:600;color:var(--red);background:rgba(255,255,255,.92);border-radius:4px;padding:0 6px;text-decoration:none;white-space:nowrap}
.ad-bid:hover{background:#fff;color:var(--red-deep);text-decoration:underline}
.feat-sold .feat-img-link{display:block;width:100%;height:100%}
.feat-sold .feat-name{color:inherit;text-decoration:none}
.feat-sold{display:flex;flex-direction:column;gap:2px;min-width:0}
/* 自动隐藏之后整行都空了的广告行，连空白一起收掉 */
.ad-row:empty{display:none}
.ad-label{position:absolute;right:6px;top:6px;font-size:12px;background:rgba(15,39,66,.72);color:#fff;border-radius:4px;padding:0 6px}
.ad-tall{min-height:250px}
.ad-house{flex-direction:row;gap:18px;justify-content:flex-start;background:linear-gradient(100deg,var(--ink),var(--ink-2) 60%,var(--red-deep));color:#fff;padding:14px 24px;text-align:left}
.ad-house-art{width:54px;height:54px;border-radius:12px;background:rgba(255,255,255,.14);display:flex;align-items:center;justify-content:center;flex:0 0 auto}
.ad-house-art .icon{width:30px;height:30px}
.ad-house-text{display:flex;flex-direction:column;gap:4px}
.ad-house-text b{font-size:20px}
.ad-house-text span{font-size:14px;opacity:.88}
.ad-house-btn{margin-left:auto;background:var(--red);border-radius:var(--r-sm);padding:10px 20px;font-weight:700;flex:0 0 auto}
.ad-house:hover{color:#fff}
/* 三栏、标题行、小列表 */
/* minmax(0,…)：列宽只按比例分，不被里面的内容撑宽。原来首页、州页、城市页的「推荐商家」四格各宽 199 / 182 / 180，
   同一种推荐位在不同页面尺寸不一样（业主 2026-09-25 要规格真实） */
.m-three{display:grid;grid-template-columns:minmax(0,1.3fr) minmax(0,1.2fr) minmax(0,.8fr);gap:14px;margin-bottom:14px}
.m-three .m-box{margin:0}
.box-head{display:flex;align-items:baseline;gap:10px;border-bottom:2px solid var(--red);padding-bottom:6px;margin-bottom:8px}
.box-head h2,.box-head h3{font-size:18px;margin:0}
.box-head h3 a{color:var(--ink);text-decoration:none}
.box-head > a{margin-left:auto;font-size:14px;color:var(--muted);white-space:nowrap}
.mini-list{list-style:none;margin:0;padding:0}
.mini-list li,.chan-list li,.l2-card li{display:flex;flex-direction:column;padding:6px 0;border-bottom:1px dotted var(--line);font-size:15px;min-width:0}
.mini-list a,.chan-list a,.l2-card li a{color:var(--text);text-decoration:none;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.mini-list a:hover,.chan-list a:hover,.l2-card li a:hover{color:var(--red-deep);text-decoration:underline}
.mini-list li span,.chan-list li span,.l2-card li span{font-size:13px;color:var(--muted)}
.mini-cities li,.mini-coop li{flex-direction:row;justify-content:space-between;align-items:baseline;gap:8px}
.mini-coop time{font-size:13px;color:var(--muted);flex:0 0 auto}
.nl-cat{color:var(--red);margin-right:4px}
/* 推荐位 */
.feats{display:grid;grid-template-columns:1fr 1fr;gap:10px}
/* 推荐商家四个座位：一整行、一排四个 260×195 大图，两头对齐（内框 1116 宽正好放下，业主 2026-09-25）。
   窄屏一排放不下四个时自动换行；手机上一排两个，图片按 260:195 等比缩小。 */
.feats-4{grid-template-columns:repeat(auto-fill,260px);justify-content:space-between;row-gap:16px}
@media (max-width:640px){.feats-4{grid-template-columns:repeat(2,minmax(0,1fr))}.feats-4 .feat-img,.feats-4 .feat-big.feat-empty .feat-img{height:auto;min-height:0;aspect-ratio:260/195}}
/* 推荐商家拿出去之后，下面剩两栏 */
.m-three.m-two{grid-template-columns:repeat(2,minmax(0,1fr))}
.m-three.m-two > .m-box:only-child{grid-column:1/-1}
.feat,.feat-big{display:flex;flex-direction:column;gap:2px;text-decoration:none;color:var(--text);min-width:0}
.feat b,.feat-big b{font-size:15px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.feat > span:not(.feat-img),.feat-big > span:not(.feat-img){font-size:13px;color:var(--muted)}
.feat-img{position:relative;display:flex;align-items:center;justify-content:center;height:92px;border-radius:var(--r-sm);background:linear-gradient(135deg,#e9eef4,#d9e2ec);color:#9aa7b4;overflow:hidden}
.feat-big .feat-img{height:195px}
.feat-img img{width:100%;height:100%;object-fit:cover}
.feat-img .icon{width:34px;height:34px}
.feat-img em{position:absolute;left:6px;top:6px;font-style:normal;font-size:12px;background:var(--red);color:#fff;border-radius:4px;padding:1px 6px}
.feat-initial{font-size:40px;font-weight:700;color:var(--ink-2)}
.feat:hover b,.feat-big:hover b{color:var(--red-deep)}
/* 频道块 */
.chan{background:#fff;border:1px solid var(--line);border-radius:var(--r-md);padding:14px 16px;margin-bottom:14px}
.chan-head{display:flex;align-items:center;gap:14px;border-bottom:2px solid var(--red);padding-bottom:8px;margin-bottom:12px}
.chan-head h2{display:flex;align-items:center;gap:8px;font-size:20px;margin:0;white-space:nowrap}
.chan-sub{display:flex;flex-wrap:wrap;gap:4px 14px;font-size:14px;flex:1;min-width:0;max-height:24px;overflow:hidden}
.chan-sub a{color:var(--muted);text-decoration:none}
.chan-sub a:hover{color:var(--red-deep)}
.chan-all{font-size:14px;white-space:nowrap;margin-left:auto}
/* 左右两个大图推荐位一样宽（原来右边 280、左边 260，招租牌都写 260，业主 2026-09-25） */
.chan-body{display:grid;grid-template-columns:260px minmax(0,1fr) minmax(0,1fr) 260px;gap:16px}
/* 没有推荐位的页面（不是主城的城市、社区）只有两列列表 */
.chan-body.chan-nofeat{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}
/* 行业页「同行圈」（业主 2026-09-25）：左招聘求职、右合作信息 */
.peer-cols{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:24px}
.peer-cols h3{font-size:16px;margin:0 0 8px;display:flex;justify-content:space-between;align-items:baseline}
.peer-cols h3 a{font-size:14px;font-weight:400;color:var(--muted)}
.peer-list{list-style:none;margin:0;padding:0}
.peer-list li{padding:6px 0;border-bottom:1px dotted var(--line);display:flex;flex-direction:column}
.peer-list li span{font-size:13px;color:var(--muted)}
@media (max-width:767px){.peer-cols{grid-template-columns:minmax(0,1fr)}}
/* 搜索结果顶上的推荐位（这一级这个大类的左右两个大图推荐位，业主 2026-09-25） */
/* 固定 260 宽，跟频道块里的大图推荐位一样大（原来拉伸到 405 宽，跟规格对不上，业主 2026-09-25） */
.search-feat-row{display:grid;grid-template-columns:repeat(2,260px);gap:16px}
@media (max-width:767px){.search-feat-row{grid-template-columns:minmax(0,1fr)}}
.chan-list h3{font-size:15px;margin:0 0 6px;color:var(--ink-2)}
.chan-list ul{list-style:none;margin:0;padding:0}
.mc-icon{display:inline-flex;width:30px;height:30px;border-radius:8px;background:var(--red-soft);color:var(--red);align-items:center;justify-content:center;flex:0 0 auto}
.mc-icon .icon{width:18px;height:18px}
/* 找商家：16 个大类格子 */
.mc-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));border-top:1px solid var(--line);border-left:1px solid var(--line)}
.mc-cell{border-right:1px solid var(--line);border-bottom:1px solid var(--line);padding:10px 12px;min-width:0}
.mc-head{display:flex;align-items:center;gap:8px;margin:0 0 6px;font-size:17px}
.mc-head a{display:inline-flex;align-items:center;gap:8px;color:var(--ink);text-decoration:none}
.mc-head a:hover b{color:var(--red-deep)}
.mc-n{margin-left:auto;font-size:13px;font-weight:400;color:var(--muted)}
.mc-links{display:flex;flex-wrap:wrap;gap:2px 12px;font-size:14.5px;line-height:1.7;margin:0}
.mc-links a{color:var(--text);text-decoration:none}
.mc-links a:hover{color:var(--red-deep);text-decoration:underline}
.mc-links .mc-more{color:var(--muted)}
/* 行业目录每个大类底下那行「推荐位 2 个 · $8/月起」（业主 2026-09-25） */
.mc-feat{margin:4px 0 0;font-size:13px}
/* 联系我们「发送」按钮上方空一行（业主 2026-09-25） */
.contact-send{margin-top:24px}
.mc-feat a{color:var(--red);font-weight:600;text-decoration:none}
.mc-feat a:hover{color:var(--red-deep);text-decoration:underline}
/* 分块列商家 */
.l2-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;margin-bottom:14px}
.l2-grid.g4{grid-template-columns:repeat(4,minmax(0,1fr))}
.l2-card{background:#fff;border:1px solid var(--line);border-radius:var(--r-md);padding:14px 16px;min-width:0}
.l2-card ul{list-style:none;margin:0;padding:0}
.l2-btns{display:flex;flex-wrap:wrap;gap:8px;list-style:none;margin:0;padding:0}
.l2-btns a{display:inline-flex;align-items:center;gap:6px;min-height:40px;padding:0 14px;border:1px solid var(--line);border-radius:var(--r-pill);background:var(--soft);color:var(--ink);text-decoration:none;font-size:15px;font-weight:600}
.l2-btns a span{font-weight:400;color:var(--muted);font-size:13px}
.l2-btns a:hover{background:var(--red);border-color:var(--red);color:#fff}
.l2-btns a:hover span{color:#fff}
.city-chips{display:flex;flex-wrap:wrap;gap:8px 20px;list-style:none;margin:0;padding:0;font-size:15px}
.city-chips li{display:flex;gap:4px;align-items:baseline}
.city-chips a{color:var(--ink-2)}
.city-chips span{color:var(--muted);font-size:13px}
.all-link{display:flex;justify-content:center;margin:4px 0 16px}
.m-cta{display:flex;align-items:center;gap:16px;background:#fff;border:1px solid var(--line);border-radius:var(--r-md);padding:14px 18px;margin-bottom:14px}
.m-cta h2{font-size:18px;margin:0}
.m-cta p{margin:2px 0 0;color:var(--muted);font-size:15px}
.m-cta .btn{margin-left:auto}
/* 找客户 */
.cards{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}
.card{border:1px solid var(--line);border-radius:var(--r-md);padding:18px;display:flex;flex-direction:column;gap:8px}
.card h3{display:flex;align-items:center;gap:10px;font-size:19px;margin:0}
.card-title-text{min-width:0}
.card p{margin:0;font-size:15.5px;line-height:1.7}
.card .btn{align-self:flex-start}
.card .btn:first-of-type{margin-top:auto}
.price{font-size:14px;font-weight:700}
.price.free{color:var(--ok)}
.price.paid{color:var(--red)}
.table-wrap{overflow-x:auto}
table.slots{width:100%;border-collapse:collapse;font-size:15px}
.slots th,.slots td{text-align:left;padding:10px 12px;border-bottom:1px solid var(--line);vertical-align:top}
.slots th{background:var(--soft);color:var(--ink)}
.slots td:last-child{white-space:nowrap}
.notice{font-size:14px;color:var(--muted);margin:10px 0 0}
.contact-band{display:grid;grid-template-columns:1fr auto;gap:20px;align-items:center;background:linear-gradient(120deg,var(--ink),#1d4470);color:#fff;border-radius:var(--r-md);padding:24px 26px;margin-bottom:14px}
.contact-band h2{color:#fff;font-size:22px;margin:0 0 6px}
.contact-band p{margin:0;color:rgba(255,255,255,.88)}
.contact-band .ways{display:flex;flex-direction:column;gap:8px;font-size:17px}
.contact-band .ways a{color:#fff;font-weight:700}
.faq-mini details{border-bottom:1px solid var(--line);padding:10px 0}
.faq-mini summary{font-weight:700;cursor:pointer;font-size:16px;color:var(--ink)}
.faq-mini p{margin:8px 0 0;font-size:15px}
/* 找合作 */
.types{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;list-style:none;margin:0;padding:0}
.type{display:block;border:1px solid var(--line);border-radius:var(--r-md);padding:14px 16px;text-decoration:none;color:var(--text);height:100%}
.type b{display:block;font-size:17px;margin-bottom:4px;color:var(--ink)}
.type span{font-size:14.5px;color:var(--muted)}
.type:hover{border-color:var(--red)}
.howto{margin:0;padding-left:22px;font-size:16px;line-height:1.9}
.howto-actions{display:flex;gap:10px;flex-wrap:wrap;margin:14px 0 0}
.posts{list-style:none;margin:0;padding:0}
.posts li{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:10px;padding:9px 0;border-bottom:1px dotted var(--line);font-size:15.5px;align-items:baseline}
.posts a{color:var(--text)}
.ptype{color:var(--red);font-size:14px;white-space:nowrap}
.ptype-head{margin:8px 0 0;color:var(--red);font-weight:700}
.pmeta{color:var(--muted);font-size:13px;white-space:nowrap}
.coop-body{font-size:17px;line-height:1.8;margin:0 0 18px}
.own-actions form{display:inline}
@media (max-width:1199px){.chan-body{grid-template-columns:220px minmax(0,1fr) minmax(0,1fr)}.chan-side{display:none}}
@media (max-width:1023px){
  .m-top{grid-template-columns:minmax(0,1fr)}
  .cat-btns{grid-template-columns:repeat(4,minmax(0,1fr))}
  .m-three{grid-template-columns:1fr 1fr}
  .m-three .m-box:last-child{grid-column:1/-1}
  .mc-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .chan-body{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}
  .chan-body > .feat-big{grid-column:1/-1}
  .l2-grid,.l2-grid.g4,.cards,.types{grid-template-columns:1fr 1fr}
}
@media (max-width:767px){
  .dense{padding-top:12px}
  .m-box,.chan{padding:12px}
  .m-top h1{font-size:26px}
  .m-top h1 span{font-size:15px}
  .cat-btns a{font-size:15px;min-height:44px}
  .ad-row-3,.ad-row-4{grid-template-columns:1fr 1fr}
  .ad{min-height:70px}
  .ad-main{font-size:15px}
  .ad-house{padding:12px;gap:10px}
  .ad-house-art{display:none}
  .ad-house-text b{font-size:16px}
  .ad-house-btn{padding:8px 12px;font-size:14px}
  .m-three,.mc-grid,.l2-grid,.l2-grid.g4,.cards,.chan-body,.chan-body.chan-nofeat{grid-template-columns:minmax(0,1fr)}
  .chan-sub{display:none}
  .types{gap:8px}
  .type{padding:10px 12px}
  .contact-band{grid-template-columns:1fr;padding:20px}
  .slots th:nth-child(3),.slots td:nth-child(3){display:none}
  .posts li{grid-template-columns:minmax(0,1fr)}
  .m-cta{flex-direction:column;align-items:flex-start}
  .m-cta .btn{margin-left:0}
}
/* 顶部「国家」「城市」下拉 */
.nav-dd{position:relative;display:inline-flex}
.main-nav .nav-city{display:inline-flex;align-items:center;gap:6px}
.main-nav .nav-city .caret{width:0;height:0;border-left:4px solid transparent;border-right:4px solid transparent;border-top:5px solid currentColor;margin-top:2px}
.dd-panel{position:absolute;top:100%;left:-12px;margin-top:10px;background:#fff;border:1px solid var(--line);border-radius:var(--r-md);box-shadow:var(--sh-md);z-index:1100;min-width:180px;padding:10px 14px;display:flex;flex-direction:column}
.dd-panel[hidden]{display:none}
/* 按钮和面板中间那点空隙也算在面板里，鼠标从按钮移下来不会先关掉再打开 */
.dd-panel::before{content:"";position:absolute;left:0;right:0;top:-12px;height:12px}
.main-nav .dd-panel a{padding:5px 0;border:0;font-size:15px;font-weight:400;color:var(--text)}
.main-nav .dd-panel a:hover{color:var(--red-deep)}
.main-nav .dd-panel a.dd-cur{color:var(--red-deep);font-weight:700}
.main-nav .dd-panel a.dd-all{margin-top:6px;padding-top:8px;border-top:1px solid var(--line);color:var(--muted);font-size:14px}
/* 国家下拉：5 个一行（业主 2026-09-25，开到十国后一列太长） */
#dd-country:not([hidden]){display:grid;grid-template-columns:repeat(5,auto);column-gap:20px;justify-content:start}
#dd-country a.dd-all{grid-column:1/-1}
.dd-cities{width:620px;max-height:60vh;overflow:auto}
/* 一个州一行：州名（浅底色、蓝字、不可点）后面直接接这个州的城市，排不下再折行 */
.dd-state{display:flex;flex-wrap:wrap;align-items:center;gap:2px 14px;padding:7px 0;border-bottom:1px dotted var(--line)}
.dd-state:last-of-type{border-bottom:0}
.dd-state.is-cur{background:var(--red-soft);margin:0 -14px;padding:7px 14px}
/* 州名只是个标签，不可点：屏掉鼠标事件，鼠标移上去没任何反应（不出文本光标、选不中、不变色） */
.main-nav .dd-panel a.dd-st-name{flex:0 0 auto;font-size:13px;font-weight:700;color:var(--ink-2);background:var(--soft);border:1px solid var(--line);border-radius:var(--r-sm);padding:2px 8px;text-decoration:none}
.main-nav .dd-panel a.dd-st-name:hover{color:var(--red-deep);border-color:var(--red);background:#fff}
.dd-state.is-cur .dd-st-name{background:#fff}
/* 浮层里的子城、孙城（跟在父城后面）字号小一点，一眼看出谁挂在谁下面 */
.main-nav .dd-panel a.dd-sub{font-size:14px;color:var(--muted)}
/* 选分类（业主 2026-09-19）：一排四格 —— 主分类 | 副分类 | 更细的类型（占两格，打勾多选）；后加的副分类对齐在第二格 */
.catp-head,.catp-row,.catp-more{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;align-items:start}
.catp-head{font-size:14px;font-weight:600;color:var(--ink);margin-bottom:6px}
.catp-head em{font-style:normal;font-weight:400;color:var(--muted)}
.catp-head .catp-h3{grid-column:3/span 2}
.catp-rows{display:flex;flex-direction:column;gap:10px}
.catp-c3{grid-column:3/span 2;display:flex;flex-wrap:wrap;gap:0 16px;align-items:center;min-height:48px}
.field .catp-c3 .check{font-size:15px;padding:2px 0}
.catp-more{margin:10px 0 0}
.catp-more[hidden]{display:none}
.catp-more .btn{grid-column:2;justify-self:start}
.catp .hint{margin-top:8px}
@media (max-width:767px){
  .catp-head{display:none}
  .catp-row,.catp-more{grid-template-columns:minmax(0,1fr)}
  .catp-c1:empty{display:none}
  .catp-c3{grid-column:auto;min-height:0}
  .catp-row + .catp-row{padding-top:10px;border-top:1px dashed var(--line)}
  .catp-more .btn{grid-column:auto}
}
/* 统一的搜索框（业主 2026-09-19）：关键词 + 国家 / 城市 / 区域三个下拉 */
.hb-search{display:grid;grid-template-columns:minmax(180px,1fr) minmax(360px,1.5fr) auto;gap:8px;align-items:center}
.hb-search input[type=search]{min-height:46px;border:1px solid #9aa7b4;border-radius:var(--r-sm);padding:0 14px;font:inherit;font-size:16px;background:#fff;width:100%}
.hb-search input[type=search]:focus{border-color:var(--focus)}
.hb-where{display:flex;flex-wrap:wrap;gap:8px}
.hb-where select{flex:1 1 120px;min-width:110px;min-height:46px;border:1px solid #9aa7b4;border-radius:var(--r-sm);padding:0 10px;font:inherit;font-size:16px;background:#fff}
.hb-where select[hidden]{display:none}
.hb-search .btn{min-height:46px}
.search-card .hb-search{grid-template-columns:minmax(180px,1fr) minmax(320px,1.4fr) auto}
@media (max-width:767px){
  .hb-search{grid-template-columns:minmax(0,1fr)}
  .hb-where select{flex:1 1 40%}
}
/* 城市卡片、区域按钮：先放一行，点「更多」展开 */
.chip-wrap{display:flex;align-items:flex-start;gap:12px}
.chip-wrap > ul{flex:1;min-width:0;margin:0;padding:0;list-style:none;display:flex;flex-wrap:wrap;gap:10px;max-height:56px;overflow:hidden}
.chip-wrap.is-open > ul{max-height:none}
/* 主城专页第二个框（业主 2026-09-24 主城规则第六节）：下级主城全部露出来、不截成一行；
   不是主城的下级（chip-x）藏着，点【更多城市】/【更多区域】才出来 */
.chip-wrap.chip-mc > ul{max-height:none}
.chip-wrap.chip-mc:not(.is-open) .chip-x:not(.chip-fill){display:none}
.chip-wrap > .city-cards{max-height:var(--city-card-h)}
.chip-more{flex:0 0 auto;border:0;background:none;color:var(--red-deep);font:inherit;font-size:16px;font-weight:700;cursor:pointer;line-height:56px;padding:0 4px;text-decoration:none;white-space:nowrap}
.chip-wrap > .city-cards + .chip-more{line-height:var(--city-card-h)}
.chip-more:hover{text-decoration:underline}
.big-chips{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:10px}
.big-chips a{display:inline-flex;align-items:baseline;gap:6px;min-height:52px;padding:12px 20px;border:1px solid var(--line);border-radius:var(--r-sm);background:#fff;color:var(--ink);text-decoration:none;font-size:17px;font-weight:600}
.big-chips a span{font-size:13px;font-weight:400;color:var(--muted)}
.big-chips a:hover{border-color:var(--red);color:var(--red-deep)}
/* 格子宽度不定死，各自按内容撑开（「加州」窄、「华盛顿州」宽），一排能塞几个就塞几个，
   剩下的零头再平分给这一排，右边不留空档（业主 2026-09-21 两次要求）。
   flex-basis 用 auto = 以内容宽度为准；flex-grow 1 = 分掉零头。
   高度写死一行的高度，容器 max-height 取同一个值 —— 不然下一排会从底下露出一条边
   （业主发现「格子最下面那根线看不到了」就是被容器裁掉的）。 */
.city-cards{display:flex;flex-wrap:wrap;gap:12px;list-style:none;margin:0;padding:0}
.city-cards > li{flex:1 1 auto;min-width:0;display:flex;height:var(--city-card-h)}
.city-card2{flex:1;min-width:0;display:flex;flex-direction:column;justify-content:center;gap:3px;border:1px solid var(--line);border-radius:var(--r-md);padding:10px 14px;text-decoration:none;color:var(--text);background:#fff;overflow:hidden}
.city-card2:hover{border-color:var(--red)}
.city-card2 b{font-size:19px;line-height:1.3;color:var(--ink);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.city-card2 > span{font-size:13px;line-height:1.4;color:var(--muted);white-space:nowrap}
.city-card2 em{font-style:normal;font-size:14px;line-height:1.4;color:var(--red-deep);white-space:nowrap}
@media (max-width:767px){
  .chip-wrap{flex-direction:column;gap:6px}
  .chip-wrap > ul{max-height:120px}
  .chip-wrap > .city-cards{max-height:calc(var(--city-card-h) * 2 + 12px)}
  .chip-more,.chip-wrap > .city-cards + .chip-more{line-height:1.6}
  .city-card2{min-width:0;flex:1 1 100%}
}
/* 行业频道块轮播：一组 4 个大类轮流显示，鼠标停上去暂停 */
.chan-rot{position:relative;overflow:hidden;overflow:clip}
.chan-track{display:flex;align-items:stretch}
.chan-track.is-moving{transition:transform .55s cubic-bezier(.4,0,.2,1)}
/* 轮播框按最高的那一块定高，内容少的大类（休闲娱乐只有两个商家）白框下面会空出一截（业主 2026-09-25 截图）：
   每一块白框都撑满，空的地方留在框里面 */
.chan-slide{flex:0 0 100%;min-width:0;display:flex;flex-direction:column}
.chan-slide > .chan{flex:1 1 auto}
@media (prefers-reduced-motion:reduce){.chan-track.is-moving{transition:none}}

/* ---- 商家中心「广告」分栏 + 广告预览（2026-09-21） ---- */
.ad-cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:16px}
.ad-card{border:1px solid var(--line);border-radius:var(--r-md);padding:16px;background:#fff}
.ad-card-head{display:flex;align-items:baseline;justify-content:space-between;gap:8px;margin-bottom:10px}
.ad-card-head h3{margin:0;font-size:16px}
.ad-card-kind{font-size:12px;color:var(--muted);background:var(--soft);border-radius:var(--r-sm);padding:2px 8px;white-space:nowrap}
.ad-card-meta{display:flex;flex-wrap:wrap;gap:6px 18px;margin:0 0 12px;padding:10px 0;border-top:1px dotted var(--line);border-bottom:1px dotted var(--line)}
.ad-card-meta div{display:flex;gap:6px;align-items:baseline}
.ad-card-meta dt{font-size:13px;color:var(--muted);margin:0}
.ad-card-meta dd{margin:0;font-size:14px}
.ad-card-price{color:var(--red);font-weight:700;font-size:16px}
.ad-free{color:#137333;font-weight:700}
.ad-busy{color:var(--muted)}
.ad-card-thumb{display:block;margin-top:8px;max-width:100%;border:1px solid var(--line);border-radius:var(--r-sm)}
.ad-card-btns{display:flex;gap:8px;flex-wrap:wrap;margin-top:10px}
.ad-card-buy{margin-top:12px;padding-top:12px;border-top:1px dotted var(--line)}
.ad-card-drop{margin-top:10px;text-align:right}
.ad-card .linkish{background:none;border:0;padding:0;color:var(--muted);font:inherit;font-size:13px;cursor:pointer;text-decoration:underline}
.ad-card .linkish:hover{color:var(--red-deep)}

.ad-prev-page{border:1px solid var(--line);border-radius:var(--r-md);background:#fafbfc;padding:12px;max-width:820px;margin:0 auto}
.ad-prev-bar,.ad-prev-body,.ad-prev-chan-main,.ad-prev-chan-side{background:#eceff3;border-radius:var(--r-sm);color:var(--muted);font-size:13px;display:flex;align-items:center;justify-content:center;text-align:center;padding:10px;margin-bottom:8px;min-height:40px}
.ad-prev-body{min-height:64px}
.ad-prev-chan{display:grid;grid-template-columns:minmax(0,1fr) 180px;gap:8px;margin-bottom:8px;align-items:stretch}
.ad-prev-chan-main{min-height:120px;margin:0}
.ad-prev-chan-side{margin:0}
.ad-prev-row{display:grid;gap:8px;margin-bottom:8px}
.ad-prev-row.is-2{grid-template-columns:repeat(2,minmax(0,1fr))}
.ad-prev-row.is-4{grid-template-columns:repeat(4,minmax(0,1fr))}
.ad-prev-slot{border:1px dashed var(--line);border-radius:var(--r-sm);background:repeating-linear-gradient(45deg,#f6f7f9,#f6f7f9 6px,#eef0f3 6px,#eef0f3 12px);display:flex;align-items:center;justify-content:center;overflow:hidden}
.ad-prev-slot span{font-size:12px;color:var(--muted)}
.ad-prev-slot.is-mine{border:2px solid var(--red);background:#fff;box-shadow:0 0 0 3px rgba(200,16,46,.12)}
.ad-prev-slot img{width:100%;height:100%;object-fit:cover;display:block}
.ad-prev-back{margin-top:20px;text-align:center}
@media (max-width:720px){
  .ad-prev-chan{grid-template-columns:minmax(0,1fr)}
  .ad-prev-row.is-4{grid-template-columns:repeat(2,minmax(0,1fr))}
}

/* 预览示意图里「就是这一块」的高亮（推荐位没有固定像素尺寸，整块标红） */
.ad-prev-body.is-mine,.ad-prev-chan-main.is-mine{border:2px solid var(--red);background:#fff;color:var(--ink);font-weight:700;box-shadow:0 0 0 3px rgba(200,16,46,.12)}
.ad-prev-feat{margin-bottom:20px}
.ad-prev-feat-box{display:grid;grid-template-columns:minmax(0,260px);gap:12px;margin-top:8px}
.ad-card-head{display:block}
.ad-card-no{margin:2px 0 0;font-size:13px;color:var(--muted)}

/* 推荐位招租牌：跟广告位招租牌一个样式，字写在正中间（业主 2026-09-21） */
.feat-empty .feat-img{flex-direction:column;justify-content:center;align-items:center;gap:4px;
  border:2px dashed #c9d3de;border-radius:var(--r-sm);
  background:repeating-linear-gradient(45deg,#fafbfd,#fafbfd 10px,#f3f6f9 10px,#f3f6f9 20px);
  color:var(--muted);padding:8px 8px 20px;text-align:center}
.feat-empty:hover .feat-img{border-color:var(--red)}
.feat-empty .ad-main{font-size:16px}
.feat-big.feat-empty .ad-main{font-size:18px}
.feat-empty .ad-sub{line-height:1.4}
/* 四格小卡片只有 92px 高：编号在框内右下角，底部要多留一行，字也小一点，不然编号压在文字上（业主 2026-09-21） */
.feat.feat-empty .feat-img{padding:4px 6px 15px;gap:2px}
.feat.feat-empty .ad-main{font-size:14px;line-height:1.25}
.feat.feat-empty .ad-sub{font-size:12px;line-height:1.25}
/* 空位要跟旁边真的推荐位一样高：虚线框吃掉多出来的高度，下面三行是样例文字，
   位置和真卡片的店名 / 行业·城市 / 电话完全对应（业主 2026-09-21） */
.feat-empty{height:100%}
.feat-empty .feat-img{flex:1 1 auto;height:auto;min-height:92px}
/* 大图招租牌固定 195 高（业主 2026-09-25：170 时旁边列表 4 条比它高 25 像素，下面空一截；实测列表 273、推荐位 248），跟卖出去之后的真推荐位一样（原来跟着旁边列表的长短伸缩，
   同一页上有的大类高、有的矮，业主 2026-09-25 截图） */
.feat-big.feat-empty .feat-img{flex:0 0 auto;height:195px;min-height:195px}
.feat-ph{font-size:13px;color:#b3bcc7}
b.feat-ph{font-size:15px;color:#9aa7b4;font-weight:700}

/* 招租牌右下角那串 10 位编号（业主 2026-09-21）：点一下整串选中并复制。
   只在空位上显示，卖出去的位子不放，免得盖住人家的广告。 */
/* 编号放左下角（业主 2026-09-25）；右下角留给卖出后的「$x/月，去竞价」 */
.slot-id{position:absolute;left:6px;bottom:4px;font-size:11px;line-height:1;color:#aab4c0;
  font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;letter-spacing:.5px;
  user-select:all;-webkit-user-select:all;cursor:text;padding:2px 4px;border-radius:3px}
.slot-id:hover{color:var(--red-deep);background:#fff}
.slot-id.is-copied{color:#fff;background:var(--red)}
.feat-empty{position:relative}

/* 广告位动起来（业主 2026-09-21）。样式配合 site.js 末尾那一段：
   多个广告位的一行由脚本包进 .ad-track，整条轨道向左平移一格；单个广告位一道高光扫过；
   手机排成两排时整行淡出再淡入。不开 JavaScript 就是原来的静止版式。 */
.ad-row.ad-rot{display:block;overflow:hidden}
.ad-track{display:flex;gap:10px}
.ad-track>.ad{flex:0 0 calc((100% - (var(--n) - 1) * 10px) / var(--n))}
.ad-track.is-moving{transition:transform .8s cubic-bezier(.4,0,.2,1)}
.ad-rot .ad:focus-visible{outline-offset:-3px}
.ad-fade{transition:opacity .28s ease}
.ad-fade.is-fading{opacity:0}
/* 高光线（业主 2026-09-21）：一道从垂直方向向右倾斜 30 度的直线光条从左划到右，划过时闪两下，整块牌子同时微闪。
   原来画的是闪电，业主担心有人联想到「天打雷劈」、寓意不好，改成直线，颜色不变。
   直线是内嵌 SVG（用 clip-path 会把外发光一起裁掉）；招租牌底色很浅，靠外发光才看得清，图片广告用同一套。
   颜色：白色内芯 + 蓝色 1px 外框（先画蓝色粗线再叠白色细线，任何拉伸下外框都是 1px）。
   倾斜角度：改 ::after 里 skewX(-30deg) 的 30；负号 = 上端偏右。
   换颜色：改 --bolt-img 里的 stroke（蓝色外框 %231f7bff、白色内芯 %23ffffff）、--bolt-glow（外发光）、--flash（整块微闪）。 */
@keyframes ad-bolt{0%{left:-25%;opacity:0}6%{opacity:1}22%{opacity:.15}30%{opacity:1}62%{opacity:1}70%{opacity:.35}76%{opacity:1}100%{left:108%;opacity:0}}
@keyframes ad-flash{0%,100%{opacity:0}10%{opacity:1}24%{opacity:0}34%{opacity:.85}50%{opacity:0}}
.ad,.feat-img{--bolt-img:url("data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%2012%20100'%20preserveAspectRatio='none'%3E%3Cg%20fill='none'%20stroke-linecap='butt'%3E%3Cpath%20d='M6%2C0%20L6%2C100'%20stroke='%231f7bff'%20stroke-width='7'%20vector-effect='non-scaling-stroke'/%3E%3Cpath%20d='M6%2C0%20L6%2C100'%20stroke='%23ffffff'%20stroke-width='5'%20vector-effect='non-scaling-stroke'/%3E%3C/g%3E%3C/svg%3E");--bolt-glow:rgba(31,123,255,.95);--flash:rgba(90,170,255,.18)}
.ad.is-shine::before,.feat-img.is-shine::before{content:"";position:absolute;inset:0;pointer-events:none;background:var(--flash);animation:ad-flash .95s linear both}
.ad.is-shine::after,.feat-img.is-shine::after{content:"";position:absolute;top:-4%;bottom:-4%;left:-25%;width:12px;pointer-events:none;background:var(--bolt-img) center/100% 100% no-repeat;transform:skewX(-30deg);filter:drop-shadow(0 0 3px var(--bolt-glow)) drop-shadow(0 0 8px var(--bolt-glow));animation:ad-bolt .95s ease-in-out both}
.ad-live.is-shine{--flash:rgba(255,255,255,.3)}
/* 右下角暂停/继续广告滚动的小按钮；手机上要让开底部导航（64px 高） */
.ad-pause{position:fixed;right:16px;bottom:16px;z-index:900;width:34px;height:34px;padding:0;display:flex;align-items:center;justify-content:center;border:1px solid var(--line);border-radius:50%;background:rgba(255,255,255,.92);color:var(--ink-2);box-shadow:0 2px 8px rgba(15,39,66,.14);cursor:pointer;opacity:.72}
.ad-pause:hover,.ad-pause:focus-visible{opacity:1}
.ad-pause svg{fill:currentColor}
@media (max-width:767px){.ad-pause{bottom:76px;right:12px}}
/* 商家资料页：电话右边的小提示（业主 2026-09-21）；窄屏放不下会自己换到下一行 */
.phone-note{margin-left:10px;color:var(--muted)}
/* 账号页（照点评助手 site.css 的 .close-acct / .close-num / .btn-danger）：
   注销是全站唯一一个点下去不能撤销的操作，视觉上必须和「改个名字」不一样。
   提示里的数字用蓝字：红底的一段话里，人最该看清的是「我放弃的到底是多少」。 */
.btn-danger{background:#b91c1c;color:#fff;border-color:#b91c1c}
.btn-danger:hover{background:#991b1b;border-color:#991b1b;color:#fff}
.close-acct{margin-top:22px;padding:16px 18px;border:1px solid var(--line);border-left:4px solid #b91c1c;border-radius:10px;background:#fff7f7}
.close-acct h3{margin:0 0 10px;font-size:1.05rem;color:#b91c1c}
.close-acct p{margin:0 0 10px;line-height:1.7}
.close-num{color:#1d4ed8;font-weight:800;font-variant-numeric:tabular-nums}
.inline-edit{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin:0;padding:12px 0;border-bottom:1px solid var(--line)}
/* 账号页：资料列表、用户名、按钮行之间都有分隔线（业主 2026-09-21）；资料列表原来自带 24px 下边距，
   在这里去掉，分隔线才能连成一条 */
.info-list.acct-info{margin-bottom:0;border-top:none}
.btn-row.acct-actions{padding:14px 0;border-bottom:1px solid var(--line)}
/* 账号资料表两列对齐（业主 2026-09-24）：字段名右对齐 | 字段值左对齐，【更换】【修改】紧跟在值后面。
   每一行用 subgrid 吃整张表的列宽，四行的字段名才能右边对齐。窄屏时按钮放不下就自己折到下一行。 */
.info-list.acct-info{display:grid;grid-template-columns:max-content minmax(0,1fr)}
.panel .info-list.acct-info>div{grid-column:1 / -1;display:grid;grid-template-columns:subgrid;align-items:center;gap:0 16px;min-height:64px}
.acct-info dt{text-align:right}
.acct-info dd{display:flex;align-items:center;gap:8px 14px;flex-wrap:wrap;overflow-wrap:anywhere}
.acct-info dt label{margin:0;font:inherit;color:inherit}
.acct-info #acName{width:240px;max-width:100%}
.acct-help{margin:12px 0 0}
.inline-edit label{margin:0}
.inline-edit input{flex:1;min-width:180px}
.btn-row{display:flex;gap:10px;flex-wrap:wrap;align-items:center}
/* 小列表（最新入驻 / 最近更新 / 服务全美的商家）的一格是一个隐形格子（业主 2026-09-21）：
   四周不画框，但整块都是链接，点店名、点下面那行「分类 · 城市」、点空白处都能跳转。
   格子上下的留白算在链接里（padding 在 a 上），所以点格子里任何地方都有效。 */
.mini-list li.hit,.chan-list li.hit,.l2-card li.hit{display:block;padding:0}
li.hit>a{display:flex;flex-direction:column;padding:6px 8px;margin:0 -8px;border-radius:var(--r-sm);color:var(--text);text-decoration:none;min-width:0;white-space:normal;overflow:visible;outline:1px dashed var(--line);outline-offset:-2px}
li.hit>a b{font-weight:400;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
li.hit>a span{font-size:13px;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
li.hit>a:hover,li.hit>a:focus-visible{text-decoration:none;outline:2px dashed var(--red);outline-offset:-2px}
li.hit>a:hover b{color:var(--red-deep)}
/* 我的帖子：每条帖子下面的三个数字（曝光 / 查看 / 沟通） */
.post-list .biz-meta{gap:4px 16px}
.post-stats{display:flex;flex-wrap:wrap;gap:6px 18px;margin:8px 0 0;font-size:14px;color:var(--muted)}
.post-stats b{color:var(--ink);font-variant-numeric:tabular-nums}
.post-new{margin:12px 0 4px}


/* 招聘求职、房产租售（业主 2026-09-21）：发布表单版式照华人168——每步一条浅色标题栏，字段是「左边标签、右边输入」，
   按钮组式单选 / 多选，金额 + 电议，数字加减，右边跟着滚动的分步导航；配色和圆角用本站自己的。 */
.pf-main{background:#fff;border:1px solid var(--line);border-radius:var(--r-md);padding:0 24px 24px;box-shadow:var(--sh-sm)}
.pf-type-row{display:flex;align-items:center;gap:12px;margin:0 0 16px;padding:14px 20px;background:#fff;border:1px solid var(--line);border-radius:var(--r-md);box-shadow:var(--sh-sm)}
.pf-type-label{font-weight:600;color:var(--ink);flex:0 0 auto}
.pf-type-options{display:flex;flex-wrap:wrap;gap:8px 18px;flex:1 1 auto}
.pf-type-choice{display:inline-flex;align-items:center;gap:7px;min-height:34px;cursor:pointer;color:var(--ink);font-size:15px;line-height:1.4}
.pf-type-choice input{width:16px;height:16px;margin:0;accent-color:var(--red)}
.pf-type-choice span{display:inline-block}
.pf-type-choice input:checked + span{font-weight:700;color:var(--red-deep)}
.pf-type-choice:focus-within span{outline:3px solid var(--focus);outline-offset:2px;border-radius:var(--r-sm)}
.pf-step{padding-bottom:8px}
.pf-bar{display:flex;align-items:center;gap:10px;margin:0 -24px 20px;padding:12px 24px;background:#eaf1f8;border-bottom:1px solid var(--line);font-size:20px;line-height:1.3}
.pf-step:first-child .pf-bar{border-radius:var(--r-md) var(--r-md) 0 0}
.pf-bar span{color:var(--ink);font-weight:700;font-size:19px}
.pf-fold{margin-left:auto;border:1px solid #b7c3cf;background:#fff;border-radius:var(--r-sm);padding:5px 10px;color:var(--ink);font:inherit;font-size:14px;cursor:pointer}
.pf-step.is-folded [data-fold-body]{display:none}
.pf-row{display:grid;grid-template-columns:150px minmax(0,1fr);gap:8px 16px;align-items:start;margin:0 0 18px}
.pf-l{padding-top:9px;text-align:right;color:var(--ink);font-size:16px;font-weight:600;line-height:1.4}
.pf-l .req{color:var(--red);font-style:normal;margin-right:4px}
.pf-c{min-width:0;position:relative}
.pf-in{width:100%;min-height:44px;padding:8px 12px;border:1px solid #b7c3cf;border-radius:var(--r-sm);background:#fff;font:inherit;font-size:16px;color:var(--text)}
.pf-in:focus{border-color:var(--focus)}
.pf-area{min-height:150px;resize:vertical;line-height:1.6}
.pf-editor{border:1px solid #b7c3cf;border-radius:var(--r-sm);background:#fff;overflow:hidden}
.pf-edbar{display:flex;flex-wrap:wrap;gap:6px;padding:8px;background:var(--soft);border-bottom:1px solid var(--line)}
.pf-edbar button{min-height:34px;border:1px solid #b7c3cf;border-radius:var(--r-sm);background:#fff;color:var(--ink);font:inherit;font-size:14px;cursor:pointer;padding:4px 10px}
.pf-edbar button:hover{border-color:var(--ink-2)}
.pf-edbody{min-height:190px;padding:12px;line-height:1.65;outline:none;background:#f7f9fb}
.pf-edbody:empty::before{content:attr(data-placeholder);color:var(--muted)}
.pf-edbody img{display:block;max-width:100%;height:auto;margin:10px 0;border-radius:6px}
.coop-body img{display:block;width:auto;max-width:min(100%,680px);height:auto;margin:12px 0;border-radius:6px}
.pf-edbody p{margin:0 0 10px}
.coop-body p{margin:0 0 12px}
.pf-count{display:block;text-align:right;margin-top:2px;font-size:13px;color:var(--muted)}
.pf-count b{font-weight:400}
.pf-notice{margin:6px 0 0;padding:8px 12px;background:var(--warn-soft);border-radius:var(--r-sm);color:var(--warn);font-size:14px;line-height:1.55}
.pf-hint{display:block;margin:6px 0 0;font-size:13px;color:var(--muted)}
/* 跟 .pf-row 的右列（标签 150px + 间距 16px）对齐，业主 2026-09-21 要求跟「这段时间里」提示文字对齐 */
.pf-legal{margin:8px 0 0;padding-left:166px;font-size:13px;color:var(--muted)}
.pf-sub-rows{margin-top:0}
.pf-num{width:120px}
.pf-date{width:auto;min-width:180px}
.pf-dateparts{display:flex;align-items:center;flex-wrap:wrap;gap:6px;color:var(--ink)}
.pf-dateparts .pf-in{width:76px;text-align:center}
.pf-dateparts .pf-in:first-child{width:92px}
.pf-time{width:130px}
.chips{display:flex;flex-wrap:wrap;gap:8px}
.chip{position:relative;display:inline-block;cursor:pointer}
.chip input{position:absolute;opacity:0;width:1px;height:1px;pointer-events:none}
.chip span{display:inline-block;padding:7px 16px;border:1px solid #b7c3cf;border-radius:var(--r-sm);background:#fff;font-size:15px;line-height:1.4;color:var(--ink-2);transition:background .12s,border-color .12s}
.chip:hover span{border-color:var(--ink-2)}
.chip input:checked + span{background:var(--ink-2);border-color:var(--ink-2);color:#fff}
.chip input:focus-visible + span{outline:3px solid var(--focus);outline-offset:2px}
.tiles{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}
.tile{position:relative;cursor:pointer}
.tile input{position:absolute;opacity:0;width:1px;height:1px}
.tile span{display:block;padding:12px 8px;text-align:center;border:1px solid #b7c3cf;border-radius:var(--r-sm);background:var(--soft);font-size:15px;color:var(--ink-2)}
.tile input:checked + span{border-color:var(--red);background:var(--red-soft);color:var(--red-deep);font-weight:600}
.tile input:focus-visible + span{outline:3px solid var(--focus);outline-offset:2px}
.pf-money{display:flex;flex-wrap:wrap;align-items:center;gap:8px}
/* $ 在输入框内部左边，跟数字之间一条竖虚线（业主 2026-09-21，原来是框外面单独一个符号） */
.pf-amtwrap{display:flex;align-items:stretch;min-height:44px;border:1px solid #b7c3cf;border-radius:var(--r-sm);background:#fff}
.pf-amtwrap:focus-within{border-color:var(--focus)}
.pf-cur{display:flex;align-items:center;padding:0 10px;font-size:17px;color:var(--ink);border-right:1px dashed var(--line)}
.pf-amt{width:110px;border:0;background:transparent;padding:0 10px;font:inherit;font-size:16px;color:var(--text)}
.pf-amt:focus{outline:none}
.pf-unit{width:auto;min-width:96px}
.pf-per{color:var(--muted);font-size:15px}
.pf-money.is-nego .pf-amtwrap{background:var(--soft)}
.pf-money.is-nego .pf-cur,.pf-money.is-nego .pf-amt{color:var(--muted)}
.stepper{display:inline-flex;align-items:center;border:1px solid #b7c3cf;border-radius:var(--r-sm);overflow:hidden}
.stepper .pf-in{width:76px;border:0;border-left:1px solid var(--line);border-right:1px solid var(--line);border-radius:0;text-align:center;-moz-appearance:textfield}
.stepper .pf-in::-webkit-outer-spin-button,.stepper .pf-in::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}
.step-btn{width:44px;height:44px;border:0;background:var(--soft);font-size:22px;line-height:1;color:var(--ink);cursor:pointer}
.step-btn:hover{background:#e3eaf1}
.pf-region{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px}
.quiet{display:flex;flex-wrap:wrap;align-items:center;gap:10px}
.pf-photos input[type=file]{width:100%;padding:10px;border:1px dashed #8fa3b6;border-radius:var(--r-sm);background:var(--soft);font-size:15px}
.pf-thumbs{display:flex;flex-wrap:wrap;gap:8px;margin-top:8px}
.pf-thumbs img{width:84px;height:64px;object-fit:cover;border-radius:6px;border:1px solid var(--line)}
.pf-thumbs img:first-child{outline:2px solid var(--red);outline-offset:1px}
.rooms{display:grid;gap:16px}
.room{padding:16px;border:1px solid var(--line);border-radius:var(--r-md);background:#fbfcfe}
.room-head{display:flex;justify-content:space-between;align-items:center;margin:0 0 12px;color:var(--ink);font-size:17px}
.room .pf-row{margin-bottom:12px}
.room .pf-l{text-align:left;padding-top:0;font-size:15px}
.linklike{border:0;background:none;padding:4px 0;color:var(--red-deep);font:inherit;font-size:14px;text-decoration:underline;cursor:pointer}
.room-add{justify-self:start}
.pf .form-save{margin:20px 0 0;text-align:right}

/* 列表：整块可点，悬停显示红色虚线框（跟广告位一个效果） */
.pl-filter{display:flex;flex-wrap:wrap;gap:8px;margin:14px 0}
.pl-filter .pf-in{width:auto;min-width:150px;flex:0 1 200px}
.pl-filter .pl-search{flex:1 1 260px;min-width:240px}
.pl-list{list-style:none;margin:8px 0 0;padding:0;display:grid;gap:4px}
.pl-item{border-bottom:1px solid var(--line)}
.pl-link{display:flex;gap:14px;align-items:flex-start;padding:12px 8px;color:inherit;text-decoration:none;border:1px solid transparent}
.pl-link:hover,.pl-link:focus-visible{outline:1px dashed var(--red);outline-offset:-1px;color:inherit}
.pl-thumb{width:120px;height:90px;object-fit:cover;border-radius:6px;flex:0 0 auto}
.pl-body{display:grid;gap:2px;min-width:0}
.pl-title{font-size:18px;line-height:1.4;color:var(--ink)}
.pl-pin{font-size:13px;vertical-align:2px}
.pl-pin-bracket{color:var(--red-deep);font-weight:700;white-space:nowrap}
.pl-sum{color:var(--red-deep);font-size:15px}
.pl-meta{color:var(--muted);font-size:14px}
.box-head .post-new{margin-left:auto;display:inline-flex;gap:8px}

/* 详情 */
.pd-photos{display:flex;flex-wrap:wrap;gap:8px;margin:0 0 16px}
.detail-back{display:flex;justify-content:flex-end;margin:-2px 0 10px}
.post-detail-head{margin:0 0 16px;padding-bottom:0}
.post-detail-head h1{margin:0;font-size:30px;line-height:1.28;letter-spacing:0;color:var(--ink)}
.pd-photos img{width:200px;height:150px;object-fit:cover;border-radius:8px;border:1px solid var(--line)}
.room-card{margin:0 0 16px;padding:14px 16px;border:1px solid var(--line);border-radius:var(--r-md)}
.room-card h2{font-size:20px;margin:0 0 6px}
.pd-contact{margin:20px 0 0;padding:16px;border:1px solid var(--line);border-radius:var(--r-md);background:var(--soft)}
.pd-contact h2{font-size:20px;margin:0 0 8px}
.pd-contact ul{list-style:none;margin:0;padding:0;display:grid;gap:6px}
.pd-safety{line-height:1.8}
.post-complaint-open{margin-left:4px;font-weight:600}
.hb-dialog{width:min(560px,calc(100vw - 32px));padding:0;border:1px solid var(--line);border-radius:var(--r-md);box-shadow:var(--sh-lg);background:#fff;color:var(--text)}
.hb-dialog::backdrop{background:rgba(15,39,66,.38)}
.post-complaint-form{padding:22px}
.post-complaint-form h2{margin:0 0 8px;font-size:22px}
.post-cat-links{display:flex;flex-wrap:wrap;gap:8px 14px;margin-right:auto;font-size:18px;line-height:1.35}
.post-cat-links a{color:var(--red);text-decoration:underline;text-underline-offset:3px;font-weight:400}
.post-form-head{margin-bottom:14px}
.dialog-actions{display:flex;justify-content:flex-end;gap:10px;margin-top:16px}
@media (max-width:767px){.post-detail-head h1{font-size:24px;line-height:1.35}}

@media (max-width:860px){
  .pf-main{padding:0 14px 18px}
  .pf-type-row{align-items:flex-start;flex-direction:column}
  .pf-type-options{width:100%;gap:8px 14px}
  .pf-bar{margin:0 -14px 16px;padding:10px 14px}
  .pf-row{grid-template-columns:minmax(0,1fr);gap:4px}
  .pf-l{text-align:left;padding-top:0}
  .pf-legal{padding-left:0}
  .pf-region{grid-template-columns:repeat(2,minmax(0,1fr))}
  .tiles{grid-template-columns:minmax(0,1fr)}
  .pl-thumb{width:96px;height:72px}
  .pd-photos img{width:calc(50% - 4px);height:auto;aspect-ratio:4/3}
}

/* 积分充值（业主 2026-09-22，抄点评助手商家中心同一块，配色换成本站的 --red） */
.credit-row{display:flex;align-items:center;gap:14px;flex-wrap:wrap;margin-bottom:10px;--credit-h:48px}
.credit-bar{flex:0 0 auto;min-height:var(--credit-h);box-sizing:border-box;
  display:flex;align-items:center;gap:12px;flex-wrap:wrap;
  background:var(--red-soft);border:1px solid var(--line);border-radius:12px;padding:0 20px}
/* 余额框只包住数字那么宽（业主 2026-09-24：「哪怕充 10000 才多长」），手机上也不撑满整行，
   【充值】按钮紧挨在右边同一行。原来 min-width:230px、手机 width:100%，按钮被挤到下一行。 */
.mr-box > .credit-row{margin-bottom:18px}
/* 用户中心上下两块（我的广告位 / 我的订单）之间留出空，原来虚线框和下一个标题贴在一起 */
.mr-box + .mr-box{margin-top:32px}
/* 用户中心「我的订单」（业主 2026-09-24）：原来这张表一条样式都没有，手机上五列挤成一个字一行。
   电脑上是普通表格；手机上一单一张卡片，广告位名称当标题，其余每项一行，付款按钮占满一行。 */
.mr-table{width:100%;border-collapse:collapse;font-size:15px}
.mr-table th,.mr-table td{text-align:left;padding:10px 8px;border-bottom:1px solid var(--line);vertical-align:middle}
.mr-table th{font-size:14px;font-weight:600;color:var(--muted);white-space:nowrap}
.mr-table td[data-label]{white-space:nowrap}
.mr-table .mt-act{text-align:right}
.mr-table .mt-act .btn{min-height:40px;padding:0 16px;font-size:15px}
@media (max-width:640px){
  .mr-table thead{display:none}
  .mr-table,.mr-table tbody,.mr-table tr,.mr-table td{display:block;width:100%}
  .mr-table tr{border:1px solid var(--line);border-radius:12px;padding:12px 14px;margin:0 0 12px;background:#fff}
  .mr-table td{border:0;padding:4px 0}
  .mr-table .mt-name{font-weight:700;color:var(--ink);padding-bottom:8px}
  .mr-table td[data-label]{display:flex;justify-content:space-between;gap:12px}
  .mr-table td[data-label]::before{content:attr(data-label);color:var(--muted)}
  .mr-table .mt-act{text-align:left;padding-top:10px}
  .mr-table .mt-act:empty{display:none}
  .mr-table .mt-act .btn{width:100%}
}
.credit-num{display:flex;align-items:baseline;gap:10px}
/* 余额旁边的【充值】按钮和余额框吃同一个 --credit-h，两边一样高、竖向居中（抄点评助手） */
.credit-topup{flex:0 0 auto;margin:0;min-height:var(--credit-h);padding-top:0;padding-bottom:0}
.credit-label{font-size:.9rem;color:var(--ink-2);font-weight:700}
.credit-num strong{font-size:1.6rem;color:var(--red);line-height:1}
/* 冻结中的积分（业主 2026-09-25）：跟余额放在同一个框里，中间一道竖线，数字用深灰，不跟余额抢眼 */
.credit-num.is-held{padding-left:14px;border-left:1px solid var(--line)}
.credit-num.is-held strong{color:var(--ink-2)}
.credit-note{color:var(--muted);font-size:.84rem;line-height:1.7;margin:0 0 18px}
.credit-panel .credit-bar{margin-bottom:12px}
.credit-panel .credit-note{margin-bottom:0}
/* 中文界面在本页付款的那一块（业主 2026-09-24，抄点评助手 site.css 同名一段，--ink-3 换成本站的 --muted）。
   钱包按钮在上、卡号框在下。Apple Pay 按钮用苹果自己的样式画 —— 苹果对这个按钮的样子有规定。 */
.sqpay{margin:16px 0 0;padding:16px;border:1px solid var(--line);border-radius:12px;background:#fff;max-width:520px}
.sqpay-h{margin:0 0 12px;font-weight:700}
.sqpay-wallets{display:flex;flex-direction:column;gap:10px}
.sqpay-wallets:empty{display:none}
.sq-apple{display:block;width:100%;height:48px;cursor:pointer;border-radius:8px;-webkit-appearance:-apple-pay-button;-apple-pay-button-type:plain;-apple-pay-button-style:black}
.sqpay-or{margin:14px 0 8px;text-align:center;color:var(--muted);font-size:.88rem}
#sqCard{min-height:90px}
.sqpay .tier-go{width:100%;margin-top:6px}
.sqpay-msg{margin:10px 0 0;font-size:.9rem;min-height:1.2em}
.sqpay-msg.bad{color:#b91c1c;font-weight:600}

.note-bar{margin:14px 0 0;padding-left:12px;border-left:3px solid var(--warn);font-size:.9rem;line-height:1.7}
.pay-badge{margin:18px 0 0}
.pay-badge img{width:100%;max-width:738px;height:auto;margin-left:auto;margin-right:auto}

.tier-list{display:flex;flex-direction:column;gap:8px;margin:14px 0}
.tier-row{display:flex;align-items:center;gap:12px;padding:12px 14px;
    border:1px solid var(--line);border-radius:12px;background:#fff;
    cursor:pointer;transition:border-color .15s,box-shadow .15s}
.tier-row:hover{border-color:var(--red)}
.tier-row input{flex:none;width:20px;height:20px;margin:0;accent-color:var(--red)}
.tier-amt{font-size:22px;font-weight:800;color:var(--red);min-width:74px}
.tier-cr{font-size:14px;color:var(--muted)}
.tier-row.on,.tier-row:has(input:checked){border-color:var(--red);box-shadow:0 0 0 2px rgba(192,57,43,.18)}
.tier-go{width:100%;justify-content:center;margin-top:6px}
.tier-go:disabled{opacity:.45;cursor:not-allowed;box-shadow:none}

.pay-wallet{display:inline-flex;align-items:center;gap:4px;padding:0 6px;border:1px solid var(--line);border-radius:5px;background:#fff;font-weight:700;color:#111;white-space:nowrap;line-height:1.6;vertical-align:baseline}
.pay-wallet img{width:14px;height:14px;display:block}

/* 智能在线客服（业主 2026-09-25）：右下角按钮 + 对话框。广告动画暂停按钮挪到它上面，不挡着 */
/* 照片在上、按钮在下，一竖列中线对齐（业主 2026-09-25）；整组离右边 44px，照片不压着右边的广告暂停按钮 */
.chat{position:fixed;right:44px;bottom:16px;z-index:950;display:flex;flex-direction:column;align-items:center;gap:6px}
.chat-open{display:flex;align-items:center;gap:8px;height:48px;padding:0 18px;border:0;border-radius:24px;background:var(--red);color:#fff;font-size:16px;font-weight:700;box-shadow:0 6px 20px rgba(15,39,66,.25);cursor:pointer}
.chat-open .icon{width:22px;height:22px}
.chat-avatar{display:block;flex:0 0 auto;border-radius:50%;object-fit:cover;background:#fff;border:2px solid #fff}
.chat-face{display:block;width:96px;height:96px;border-radius:16px;border:3px solid #fff;object-fit:cover;background:#fff;box-shadow:0 6px 18px rgba(15,39,66,.25);cursor:pointer}
.chat.is-open .chat-face{display:none}
.chat-title{display:flex;align-items:center;gap:8px}
.chat-head .chat-avatar{width:32px;height:32px}
.chat.is-open .chat-open{display:none}
.chat-panel{position:absolute;right:-28px;bottom:0;width:380px;max-width:calc(100vw - 32px);height:560px;max-height:calc(100vh - 110px);display:flex;flex-direction:column;background:#fff;border:1px solid var(--line);border-radius:14px;box-shadow:0 12px 40px rgba(15,39,66,.28);overflow:hidden}
.chat-panel[hidden]{display:none}
.chat-head{display:flex;align-items:center;justify-content:space-between;padding:12px 14px;background:var(--red);color:#fff;font-size:16px}
.chat-close{border:0;background:transparent;color:#fff;font-size:26px;line-height:1;cursor:pointer;padding:0 4px}
.chat-log{flex:1;overflow-y:auto;padding:12px;display:flex;flex-direction:column;gap:8px;background:#f6f8fb}
.chat-msg{max-width:88%;padding:8px 12px;border-radius:12px;font-size:15px;line-height:1.6;word-wrap:break-word}
.chat-msg.bot{align-self:flex-start;background:#fff;border:1px solid var(--line)}
.chat-msg.me{align-self:flex-end;background:var(--red);color:#fff;white-space:pre-wrap}
.chat-msg.wait{color:var(--muted)}
.chat-msg .chat-link{color:var(--red);font-weight:600}
.chat-handoff{display:inline-flex;margin-top:8px}
.chat-who,.chat-quick{display:flex;flex-wrap:wrap;gap:6px}
.chat-who[hidden],.chat-quick[hidden]{display:none}
.chat-who button,.chat-quick button{border:1px solid var(--red);background:#fff;color:var(--red);border-radius:16px;padding:5px 12px;font-size:14px;cursor:pointer;text-align:left}
.chat-who button:hover,.chat-quick button:hover{background:var(--red-soft)}
.chat-quick .chat-topic{font-weight:600}
.chat-quick .chat-back{border-color:var(--line);color:var(--muted)}
.chat-form{display:flex;gap:8px;padding:10px;border-top:1px solid var(--line)}
.chat-form textarea{flex:1;resize:none;border:1px solid var(--line);border-radius:10px;padding:8px 10px;font:inherit;font-size:15px}
.chat-form .btn{align-self:stretch}
.chat-note{margin:0;padding:6px 12px 10px;font-size:12px;color:var(--muted);line-height:1.5}
.ad-pause{bottom:76px}
@media (max-width:767px){
  .chat{right:30px;bottom:76px}
  .chat-open{height:44px;padding:0 14px;font-size:15px}
  .chat-face{width:72px;height:72px;border-radius:12px}
  .chat-panel{position:fixed;right:8px;left:8px;bottom:72px;width:auto;max-width:none;height:auto;top:72px;max-height:none}
  .ad-pause{bottom:128px}
}

/* 频道块空推荐位换成多一列列表（业主 2026-09-25 二改）：两边都换 = 四列等宽；只换一边 = 那一边三列列表 + 另一边推荐位。
   窄屏把多出来的那一列（.chan-extra）藏起来，回到原来的列数 */
.chan-body.chan-4list{grid-template-columns:repeat(4,minmax(0,1fr))}
.chan-body.chan-leftlist{grid-template-columns:repeat(3,minmax(0,1fr)) 260px}
.chan-body.chan-rightlist{grid-template-columns:260px repeat(3,minmax(0,1fr))}
@media (max-width:1199px){
  .chan-extra{display:none}
  .chan-body.chan-4list,.chan-body.chan-leftlist{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}
  .chan-body.chan-rightlist{grid-template-columns:220px minmax(0,1fr) minmax(0,1fr)}
}
@media (max-width:1023px){.chan-body.chan-rightlist{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}}
@media (max-width:767px){.chan-body.chan-4list,.chan-body.chan-leftlist,.chan-body.chan-rightlist{grid-template-columns:minmax(0,1fr)}}
.footer-logo{margin-bottom:8px}
.footer-logo .brand-name{color:#fff}
.footer-logo .brand-sub{display:block;color:rgba(255,255,255,.75)}
