:root{
  /* Palette lifted from myunmei.com: 亮蓝 #4eb6ff + 橙 #ff9023 on white/grey.
     The bright fills are brand-true but fail text contrast, so links and body copy use
     the darkened siblings below, and bright fills always carry dark ink rather than white. */
  --ink:#142635; --ink2:#41596e; --ink3:#5f7288;
  --brand:#0b4f75; --brand-mid:#0f6a99; --brand-bright:#4eb6ff; --brand-deep:#083f60;
  --accent:#ff9023; --accent-ink:#9a5300; --gold:#9a5300;
  --paper:#fff; --bg:#f7f7f7; --line:#dcdcdc; --line2:#ececec;
  --tint-blue:#eaf5fd; --tint-blue2:#d9effc; --tint-orange:#fdeee0; --tint-orange2:#f8d9b6;
  --ok:#1c6b3f; --ok-bg:#eef6f1; --warn:#9a5300;
  --on-dark:#cfe4f2; --on-dark-dim:#a8c8de; --on-dark-hi:#ffc46b;
  --r:4px; --shadow:0 1px 0 rgba(11,79,117,.06),0 8px 24px -18px rgba(11,79,117,.35);
  --mono:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;
  --sans:"PingFang SC","Hiragino Sans GB","Microsoft YaHei","Source Han Sans SC",system-ui,-apple-system,"Segoe UI",sans-serif;
}
*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{margin:0;background:var(--bg);color:var(--ink);font:16px/1.7 var(--sans);}
main{display:block;min-height:50vh}
[id]{scroll-margin-top:96px}
a{color:var(--brand)}
a:hover{color:var(--accent-ink)}
:focus-visible{outline:3px solid var(--brand-bright);outline-offset:2px;border-radius:2px}
img,svg{max-width:100%}
h1,h2,h3{line-height:1.25;margin:0 0 .5em;letter-spacing:-.01em}
h1{font-size:clamp(26px,4.4vw,42px)}
h2{font-size:clamp(20px,2.6vw,26px)}
h3{font-size:17px}
p{margin:0 0 1em}
.vh{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}
.skip{position:absolute;left:-999px;top:0;background:var(--brand);color:#fff;padding:10px 16px;z-index:99}
.skip:focus{left:8px;top:8px}

/* ---------- header ---------- */
.sitehead{position:sticky;top:0;z-index:30;background:var(--paper);border-bottom:1px solid var(--line)}
.bar{max-width:1280px;margin:0 auto;padding:0 20px;display:flex;align-items:center;gap:16px}
.bar--top{background:var(--brand);color:var(--on-dark);font-size:13px;padding-block:6px;max-width:none}
.bar--top .bar__msg{margin:0;max-width:1240px;margin-inline:auto;padding-inline:20px}
.bar--top a{color:#fff;text-decoration:underline}
.bar--top a:hover{color:var(--on-dark-hi)}
.bar--nav{min-height:64px;flex-wrap:wrap;padding-block:8px}
.brand{display:flex;align-items:center;gap:10px;text-decoration:none;color:var(--ink);font-weight:700}
.brand__logo{width:132px;height:36px;display:block;object-fit:contain}
.wxbox{display:flex;gap:14px;align-items:flex-start;background:var(--paper);border:1px solid var(--line);border-left:3px solid var(--brand-bright);border-radius:var(--r);padding:14px}
.wxbox img{width:104px;height:104px;flex:none;border-radius:4px;background:#fff;padding:3px}
.wxbox p{margin:0;font-size:13.5px;color:var(--ink2);line-height:1.75}
.brand__mark{width:34px;height:34px;display:grid;place-items:center;background:var(--brand-bright);color:#0b2b3f;border-radius:6px;font-size:18px}
.brand__txt{display:flex;flex-direction:column;line-height:1.15}
.brand__txt em{font-style:normal;font-size:11px;font-weight:500;color:var(--ink3);letter-spacing:.04em}
.nav{display:flex;gap:2px;flex-wrap:wrap;margin-left:auto}
.nav a{padding:8px 11px;border-radius:var(--r);text-decoration:none;color:var(--ink2);font-size:15px;white-space:nowrap}
.nav a:hover{background:var(--line2);color:var(--brand)}
.nav a[aria-current="page"]{color:var(--accent-ink);font-weight:600;background:var(--tint-orange)}
.acct{display:flex;gap:8px;align-items:center;flex-wrap:wrap;min-width:0}
.acct__login{font-size:14px;color:var(--ink2);text-decoration:none;padding:6px 8px;border-radius:var(--r);white-space:nowrap}
.acct__login:hover{color:var(--accent-ink);background:var(--line2)}
.acct__who{font-size:13.5px;color:var(--ink2);background:var(--bg);border:1px solid var(--line);border-radius:99px;
  padding:5px 11px;max-width:230px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.acct__out{font-size:13.5px;color:var(--ink3);text-decoration:underline;padding:4px 2px}
.acct__out:hover{color:var(--accent-ink)}
.menuBtn{display:none;margin-left:auto;background:var(--paper);border:1px solid var(--line);border-radius:var(--r);padding:9px 13px;font:inherit;font-weight:600;color:var(--brand);cursor:pointer}

/* ---------- buttons ---------- */
.btn{display:inline-block;padding:11px 18px;border-radius:var(--r);border:1px solid transparent;font:inherit;font-weight:600;
  font-size:15px;text-decoration:none;cursor:pointer;line-height:1.2;text-align:center}
.btn--primary{background:var(--brand-bright);color:#0b2b3f}
.btn--primary:hover{background:#79c8ff;color:#0b2b3f}
.btn--ghost{background:var(--paper);color:var(--brand);border-color:var(--line)}
.btn--ghost:hover{border-color:var(--brand);color:var(--brand)}
.btn:disabled{opacity:.45;cursor:not-allowed}

/* ---------- hero ---------- */
.hero{background:
    radial-gradient(120% 140% at 88% -20%,rgba(78,182,255,.22),transparent 60%),
    linear-gradient(180deg,var(--brand-deep),var(--brand));
  color:var(--on-dark);padding:clamp(32px,6vw,68px) 0 clamp(30px,5vw,56px)}
.hero__inner{max-width:1280px;margin:0 auto;padding:0 20px}
.kicker{font-size:12.5px;letter-spacing:.16em;text-transform:uppercase;color:var(--brand-mid);margin:0 0 12px;font-weight:600}
.hero .kicker,.hero .kicker a{color:var(--on-dark-dim)}
.hero__title{color:#fff;margin:0 0 14px}
.hero__title em{font-style:normal;display:block;color:var(--on-dark-hi);font-weight:600}
.hero__lede{max-width:76ch;color:var(--on-dark);font-size:clamp(15px,1.6vw,17px);margin:0 0 22px}
.hero__actions{display:flex;gap:12px;flex-wrap:wrap;margin-top:6px}
.stats{list-style:none;display:flex;flex-wrap:wrap;gap:10px;margin:0 0 22px;padding:0}
.stats li{background:rgba(255,255,255,.09);border:1px solid rgba(255,255,255,.16);border-radius:var(--r);padding:10px 16px;min-width:118px}
.stats b{display:block;font:600 26px/1.1 var(--mono);color:#fff;letter-spacing:-.02em}
.stats span{font-size:12.5px;color:var(--on-dark-dim)}
.stats--inline li{background:var(--paper);border-color:var(--line)}
.stats--inline b{color:var(--ink)}
.stats--inline span{color:var(--ink3)}

/* ---------- shell ---------- */
main>.hero+.sec,main>header.pagehead,.crumb,.sitefoot{max-width:1280px;margin-inline:auto;padding-inline:20px}
.crumb{padding-block:14px 0;font-size:13.5px;color:var(--ink3)}
.crumb ol{display:flex;flex-wrap:wrap;gap:6px;list-style:none;margin:0;padding:0}
.crumb li::after{content:"/";margin-left:6px;color:var(--line)}
.crumb li:last-child::after{content:""}
.crumb a{color:var(--ink3);text-decoration:none}
.crumb a:hover{color:var(--accent-ink);text-decoration:underline}
.sec{padding:clamp(28px,4.4vw,52px) 20px;max-width:1280px;margin:0 auto}
.sec--alt{background:var(--paper);max-width:none;border-top:1px solid var(--line2);border-bottom:1px solid var(--line2)}
.sec--alt>*{max-width:1240px;margin-inline:auto}
.sec__head{margin-bottom:20px}
.sec__head p{color:var(--ink3);max-width:72ch;margin:0}
.pagehead{padding:clamp(26px,4vw,44px) 20px 8px}
.pagehead__lede{max-width:80ch;color:var(--ink2);font-size:16.5px}
.pagehead__cta{display:flex;gap:10px;flex-wrap:wrap;margin-top:18px}
.note{font-size:13.5px;color:var(--ink2);background:var(--tint-blue);border-left:3px solid var(--line);padding:10px 14px;border-radius:0 var(--r) var(--r) 0}
.warn{font-size:14px;color:var(--warn);background:var(--tint-orange);border-left:3px solid var(--gold);padding:12px 14px;border-radius:0 var(--r) var(--r) 0}

/* ---------- chips & grids ---------- */
.chips{display:flex;flex-wrap:wrap;gap:9px}
.chip{display:inline-flex;align-items:center;gap:8px;background:var(--paper);border:1px solid var(--line);
  border-radius:99px;padding:7px 14px;text-decoration:none;color:var(--ink2);font-size:14.5px}
.chip:hover{border-color:var(--accent-ink);color:var(--accent-ink)}
.chip b{font:600 12.5px/1 var(--mono);color:var(--ink3);background:var(--bg);padding:3px 7px;border-radius:99px}
.chip--ai b{color:#fff;background:var(--brand)}
.chips--plates{gap:10px}
.chip--plate{border-color:var(--line2);background:var(--tint-blue);font-weight:600;color:var(--brand);
  transition:transform .16s ease,box-shadow .16s ease}
.chip--plate:hover{transform:translateY(-1px);border-color:var(--brand-bright);color:var(--brand);
  box-shadow:0 10px 20px -16px rgba(11,79,117,.7)}
.chip--plate b{color:var(--brand);background:var(--paper);border:1px solid var(--line2);font-weight:700}
.chip--more{border-style:dashed}
.chip--cur{border-color:var(--brand);color:var(--ink);font-weight:600}
.chip--cur b{color:#fff;background:var(--brand)}
.grid{display:grid;gap:16px}
.grid--cards{grid-template-columns:repeat(auto-fill,minmax(268px,1fr))}
.grid--tax{grid-template-columns:repeat(auto-fill,minmax(228px,1fr))}
.grid--split{grid-template-columns:minmax(0,1fr)}
@media (min-width:1080px){.grid--two{grid-template-columns:repeat(2,minmax(0,1fr))}}

/* ---------- cards ---------- */
.card{background:var(--paper);border:1px solid var(--line);border-radius:var(--r);padding:16px;display:flex;
  flex-direction:column;gap:9px;box-shadow:var(--shadow)}
.card__name{margin:0;font-size:16.5px;line-height:1.4}
.card__name a{color:var(--ink);text-decoration:none}
.card__name a:hover{color:var(--accent-ink);text-decoration:underline}
.card__meta{margin:0;font-size:13px;color:var(--ink3)}
.card__tags{display:flex;flex-wrap:wrap;gap:6px}
.card__note{margin:0;font-size:13.5px;color:var(--ink2);flex:1}
.card__foot{display:flex;justify-content:space-between;align-items:center;gap:10px;border-top:1px dashed var(--line);padding-top:10px}
.card__more{font-size:13.5px;color:var(--brand);text-decoration:none;display:inline-flex;align-items:center;gap:6px;font-weight:600}
.card__more:hover{color:var(--accent-ink)}
.tag{font-size:12px;padding:3px 8px;border-radius:3px;background:var(--bg);color:var(--ink2);border:1px solid var(--line2);
  max-width:100%;white-space:normal;overflow-wrap:anywhere}
.tag--good{background:var(--ok-bg);color:var(--ok);border-color:#cfe3d6}
.tag--ai{background:var(--tint-blue2);color:var(--brand-mid);border-color:#cfe6f5}
.tag--soft{background:var(--tint-blue);color:var(--gold);border-color:var(--tint-orange2)}

/* ---------- price gate ---------- */
.gate{display:inline-flex;align-items:center;gap:7px;font-size:13.5px;color:var(--gold)}
.gate__lock{width:20px;height:20px;display:grid;place-items:center;background:var(--tint-blue);color:var(--gold);
  border-radius:3px;font-size:11px;border:1px solid #cfe6f5}
.gate--inline .gate__label{font-weight:600}
.gate__val{font:600 16px/1 var(--mono);color:var(--accent-ink)}
.gate.is-open{color:var(--accent-ink)}
.gate.is-open .gate__lock{background:var(--tint-orange);color:var(--accent-ink);border-color:var(--tint-orange2)}
.gate.is-open .gate__label{display:none}
.gate.is-open .gate__val{display:inline}
.gate__val:not([hidden]){display:inline}
.gate.is-empty{color:var(--ink3)}
.gate.is-empty .gate__lock{background:var(--bg);color:var(--ink3);border-color:var(--line)}
.gate.is-empty .gate__label{font-weight:400;font-size:13px}

/* ---------- facets ---------- */
.facets{background:var(--paper);border:1px solid var(--line);border-radius:var(--r);padding:16px;margin:18px 20px}
.facets__search{display:flex;flex-direction:column;gap:6px;margin-bottom:14px}
.facets__search label{font-size:13.5px;font-weight:600;color:var(--ink2)}
.facets__search input{padding:11px 13px;border:1px solid var(--line);border-radius:var(--r);font:inherit;background:var(--bg)}
.facet legend{font-weight:700;font-size:13.5px;color:var(--brand);padding:0}
.facet label{display:flex;align-items:center;gap:7px;font-size:14px;color:var(--ink2);cursor:pointer;padding:3px 0}
.facet input{accent-color:var(--accent);width:16px;height:16px}
.facets__foot{display:flex;gap:10px;align-items:center;flex-wrap:wrap;border-top:1px solid var(--line2);padding-top:14px}
.facets__hint{font-size:13px;color:var(--ink3)}
.resultsBar{display:flex;justify-content:space-between;gap:14px;flex-wrap:wrap;align-items:center;
  padding:6px 20px 14px;max-width:1280px;margin:0 auto}
.resultsBar p{margin:0;font-size:14px;color:var(--ink2)}
.sortby{display:inline-flex;align-items:center;gap:8px;font-size:14px;color:var(--ink2)}
select,input,textarea{font:inherit;color:var(--ink);background:var(--paper)}
.sortby select{padding:8px 10px;border:1px solid var(--line);border-radius:var(--r)}
.grid--cards{padding:0 20px;max-width:1280px;margin:0 auto}
.pager{display:flex;gap:6px;align-items:center;flex-wrap:wrap;padding:26px 20px;max-width:1280px;margin:0 auto}
.pg{padding:8px 13px;border:1px solid var(--line);border-radius:var(--r);background:var(--paper);
  text-decoration:none;color:var(--ink2);font-size:14px}
.pg:hover{border-color:var(--brand);color:var(--brand)}
.pg--cur{background:var(--brand);color:#fff;border-color:var(--brand);font-weight:600}
.pg--off{opacity:.4;pointer-events:none}
.pager__sum{font-size:13px;color:var(--ink3);margin-left:8px}

/* ---------- detail ---------- */
.detail{max-width:1280px;margin:0 auto;padding:0 20px}
.detail__head{background:var(--paper);border:1px solid var(--line);border-radius:var(--r);
  padding:clamp(20px,3.4vw,34px);margin-top:18px}
.detail__head .kicker a{color:var(--ink3);text-decoration:none}
.detail__head .kicker a:hover{color:var(--accent-ink);text-decoration:underline}
.detail__fact{font:14px/1.85 var(--mono);color:var(--ink2);background:var(--bg);border-left:3px solid var(--accent);
  padding:12px 15px;border-radius:0 var(--r) var(--r) 0;margin:0 0 20px;overflow-wrap:anywhere}
.detail__cta{display:flex;gap:12px;align-items:center;flex-wrap:wrap}
.detail__cta .gate{font-size:15px}
.detail__fields{margin-top:18px}
.field{display:grid;grid-template-columns:132px minmax(0,1fr);gap:14px;padding:13px 16px;background:var(--paper);
  border:1px solid var(--line);border-bottom:0}
.field:last-child{border-bottom:1px solid var(--line)}
.field dt{font-size:13.5px;color:var(--ink3);font-weight:600;margin:0}
.field dd{margin:0;font-size:15px;overflow-wrap:anywhere}
.field dd a{color:var(--brand)}

/* ---------- quote ---------- */
.quoteWrap{display:grid;gap:18px;grid-template-columns:minmax(0,1fr);padding:20px;max-width:1280px;margin:0 auto}
.quoteForm,.quoteOut{background:var(--paper);border:1px solid var(--line);border-radius:var(--r);padding:clamp(16px,2.4vw,24px)}
.qf__lab{display:block;font-weight:700;margin-bottom:8px}
#need{width:100%;padding:12px 14px;border:1px solid var(--line);border-radius:var(--r);background:var(--bg);resize:vertical;min-height:96px}
.qf__hint{font-size:13px;color:var(--ink3);margin:8px 0 14px}
.qf__grid{border:0;padding:0;margin:0 0 14px;display:grid;gap:12px;grid-template-columns:repeat(auto-fit,minmax(168px,1fr))}
.qf__grid label{display:flex;flex-direction:column;gap:6px;font-size:13.5px;font-weight:600;color:var(--ink2)}
.qf__grid select,.qf__grid input{padding:9px 10px;border:1px solid var(--line);border-radius:var(--r);font-weight:400}
.qf__foot{display:flex;gap:10px;align-items:center;flex-wrap:wrap}
.qf__mode{font-size:12.5px;color:var(--ink3)}
.quoteOut__empty{color:var(--ink3);font-size:14.5px}
.qSum{display:flex;flex-wrap:wrap;gap:10px;margin:0 0 16px;padding:0;list-style:none}
.qSum li{background:var(--bg);border:1px solid var(--line2);border-radius:var(--r);padding:8px 12px;font-size:13.5px;color:var(--ink2)}
.qSum b{font-family:var(--mono);color:var(--ink);font-size:16px;display:block}
.qTable{width:100%;border-collapse:collapse;font-size:14px}
.qTable caption{text-align:left;font-weight:700;padding-bottom:10px;color:var(--ink2)}
.qTable th,.qTable td{border-bottom:1px solid var(--line2);padding:11px 10px;text-align:left;vertical-align:top}
.qTable thead th{background:var(--bg);font-size:13px;color:var(--ink3);border-bottom:1px solid var(--line)}
.qTable tbody th{font-weight:600}
.qTable td.num{font-family:var(--mono);white-space:nowrap}
.qTotal{margin-top:14px;padding:14px 16px;background:var(--tint-orange);border:1px solid var(--tint-orange2);border-radius:var(--r)}
.qTotal b{font:600 22px/1.2 var(--mono);color:var(--accent-ink)}
.samples{display:flex;flex-wrap:wrap;gap:9px}
.sample{background:var(--paper);border:1px dashed var(--line);border-radius:99px;padding:8px 15px;font:inherit;
  font-size:14px;color:var(--ink2);cursor:pointer;text-align:left}
.sample:hover{border-color:var(--accent-ink);color:var(--accent-ink)}
.relaxed{font-size:13px;color:var(--gold);background:var(--tint-orange);border-radius:var(--r);padding:8px 12px;margin:0 0 12px}

/* ---------- tables / dist / tax ---------- */
.tbl{width:100%;border-collapse:collapse;background:var(--paper);font-size:14.5px;border:1px solid var(--line)}
.tbl caption{text-align:left;padding:12px 14px;font-weight:700;color:var(--ink2);border-bottom:1px solid var(--line2)}
.tbl th,.tbl td{padding:11px 14px;border-bottom:1px solid var(--line2);text-align:left}
.tbl thead th{background:var(--bg);font-size:13px;color:var(--ink3)}
.tbl tbody th{font-weight:600}
.tbl tbody tr:last-child th,.tbl tbody tr:last-child td{border-bottom:0}
.tbl a{color:var(--brand);font-weight:600}
.distgrid{display:grid;gap:14px;grid-template-columns:repeat(auto-fit,minmax(232px,1fr));padding:6px 20px 22px;max-width:1280px;margin:0 auto}
.dist{background:var(--paper);border:1px solid var(--line);border-radius:var(--r);padding:14px 16px}
.dist h3{margin:0 0 8px;font-size:14px;color:var(--ink3);text-transform:uppercase;letter-spacing:.08em}
.dist__list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:3px}
.dist__list li{display:flex;justify-content:space-between;gap:10px;font-size:14px;color:var(--ink2)}
.dist__list a{text-decoration:none;color:var(--ink);display:flex;justify-content:space-between;gap:10px;width:100%}
.dist__list a:hover{color:var(--accent-ink)}
.dist__list b{font:600 13px/1.6 var(--mono);color:var(--ink3)}
.taxcard{background:var(--paper);border:1px solid var(--line);border-radius:var(--r);padding:16px;
  text-decoration:none;color:var(--ink);display:flex;flex-direction:column;gap:4px}
.taxcard:hover{border-color:var(--accent-ink)}
.taxcard__n{font:600 24px/1 var(--mono);color:var(--accent-ink)}
.taxcard__l{font-weight:700;font-size:16px}
.taxcard__d{font-size:13px;color:var(--ink3)}

/* ---------- lists ---------- */
.ticks{list-style:none;padding:0;margin:0 0 1em}
.ticks li{padding:9px 0 9px 26px;border-bottom:1px solid var(--line2);position:relative;font-size:15px}
.ticks li::before{content:"✓";position:absolute;left:2px;color:var(--ok);font-weight:700}
.steps{counter-reset:s;list-style:none;padding:0;margin:0}
.steps li{counter-increment:s;display:grid;grid-template-columns:32px minmax(0,1fr);gap:12px;padding:12px 0;border-bottom:1px solid var(--line2)}
.steps li::before{content:counter(s);font:600 14px/28px var(--mono);width:28px;height:28px;background:var(--brand);
  color:#fff;border-radius:50%;text-align:center;grid-row:span 2}
.steps b{display:block;font-size:15.5px}
.steps span{font-size:14px;color:var(--ink2)}
.faq{margin:0}
.faq__i{background:var(--paper);border:1px solid var(--line);border-radius:var(--r);padding:14px 18px;margin-bottom:10px}
.faq dt{font-weight:700;font-size:16px;margin:0 0 6px}
.faq dd{margin:0;color:var(--ink2);font-size:14.5px}
.article{max-width:820px;margin:0 auto;padding:0 20px 40px;font-size:16.5px}
.article h2{margin-top:1.7em;padding-top:.6em;border-top:1px solid var(--line2)}
.article p{color:var(--ink2)}
.article .tbl{font-size:14px}
.contact{display:grid;gap:20px;grid-template-columns:minmax(0,1fr);padding:0 20px 40px;max-width:1280px;margin:0 auto}
.contact dl{margin:0;background:var(--paper);border:1px solid var(--line);border-radius:var(--r)}
.contact dl>div{padding:16px 18px;border-bottom:1px solid var(--line2)}
.contact dl>div:last-child{border-bottom:0}
.contact dt{font-size:13px;color:var(--ink3);margin:0 0 4px}
.contact dd{margin:0;font-size:16px}
.cform{background:var(--paper);border:1px solid var(--line);border-radius:var(--r);padding:22px;display:flex;flex-direction:column;gap:12px}
.cform h2{margin:0}
.cform label{display:flex;flex-direction:column;gap:6px;font-size:13.5px;font-weight:600;color:var(--ink2)}
.cform input,.cform textarea{padding:11px 13px;border:1px solid var(--line);border-radius:var(--r);font-weight:400;background:var(--bg)}
.cform .btn{align-self:flex-start}
.cform__note{font-size:13px;color:var(--gold);margin:0}

/* ---------- footer ---------- */.sitefoot{background:var(--brand);color:var(--on-dark);margin-top:44px;padding:0 20px}
.footgrid{max-width:1240px;margin:0 auto;display:grid;gap:24px;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));padding:34px 0}
.footcol__h{font-size:13px;letter-spacing:.1em;text-transform:uppercase;color:var(--on-dark-dim);margin:0 0 12px}
.footcol__list{display:flex;flex-direction:column;gap:7px}
.footcol__list a{color:var(--on-dark);text-decoration:none;font-size:14px;display:flex;justify-content:space-between;gap:10px}
.footcol__list a:hover{color:var(--on-dark-hi)}
.footcol__list b{font:600 12px/1.6 var(--mono);color:var(--on-dark-dim)}
.footcol--qr p{font-size:13px;color:var(--on-dark-dim);margin:8px 0 0;max-width:30ch}
.footqr{width:104px;height:104px;border-radius:6px;background:#fff;padding:4px;object-fit:contain}
.more{display:inline-block;margin-top:10px;font-size:13.5px;color:var(--brand);font-weight:600;text-decoration:none}
.more:hover{color:var(--brand-mid);text-decoration:underline}
.sitefoot .more{color:var(--on-dark-dim);font-weight:500}
.sitefoot .more:hover{color:var(--on-dark-hi)}
.footbase{max-width:1240px;margin:0 auto;border-top:1px solid rgba(255,255,255,.14);padding:20px 0 30px;font-size:13.5px;color:var(--on-dark-dim)}
.footbase p{margin:0 0 8px}
.footbase a{color:var(--on-dark)}
.footbase code{font-family:var(--mono);background:rgba(255,255,255,.1);padding:1px 5px;border-radius:3px}
.legal{color:var(--on-dark-dim);font-size:12.5px}

/* ---------- header roles / registration ---------- */
.acct__roles{display:flex;gap:2px;align-items:center}
.btn--reg{background:var(--accent);color:#142635}
.btn--reg:hover{background:#ffab56;color:#142635}
.btn--link{background:none;border:0;color:var(--ink3);text-decoration:underline;padding:8px 4px;font-weight:500}
.btn--link:hover{color:var(--accent-ink)}

/* ---------- tier table (home) ---------- */
.dtable{width:100%;border-collapse:collapse;background:var(--paper);border:1px solid var(--line);font-size:14.5px}
.dtable caption{text-align:left;font-weight:700;padding:12px 14px;color:var(--ink2);border-bottom:1px solid var(--line2)}
.dtable th,.dtable td{padding:10px 14px;border-bottom:1px solid var(--line2);text-align:left;vertical-align:top}
.dtable thead th{background:var(--bg);font-size:13px;color:var(--ink3)}
.dtable tbody th{font-weight:600;white-space:nowrap}
.dtable td.num{font:600 16px/1.4 var(--mono);color:var(--accent-ink)}
.dtable tbody tr:last-child th,.dtable tbody tr:last-child td{border-bottom:0}
.dtable{display:block;overflow-x:auto}
@media (min-width:760px){.dtable{display:table}}

/* ---------- numbered steps ---------- */
.steps--num li{grid-template-columns:32px minmax(0,1fr)}
.steps--num li::before{display:none}
.steps span.steps__n{grid-row:1/3;width:28px;height:28px;background:var(--brand);color:#fff;border-radius:50%;
  font:600 14px/28px var(--mono);text-align:center}
.steps--num h3,.steps--num p{grid-column:2;margin:0}
.steps--num h3{font-size:15.5px}
.steps--num p{font-size:14px;color:var(--ink2);margin-top:2px}
.sec--steps{background:var(--paper);max-width:none;border-top:1px solid var(--line2);border-bottom:1px solid var(--line2)}
.sec--steps>*{max-width:1240px;margin-inline:auto}

/* ---------- cards: muted tier, ops, pick ---------- */
.tag--muted{background:#efefef;color:var(--ink2);border-color:#dedede}
.card__ops{display:inline-flex;align-items:center;gap:10px}
.pick{display:none;background:var(--paper);border:1px solid var(--line);border-radius:var(--r);
  padding:6px 10px;font:inherit;font-size:13px;font-weight:600;color:var(--brand);cursor:pointer;white-space:nowrap}
.pick:hover{border-color:var(--accent-ink);color:var(--accent-ink)}
.pick[aria-pressed="true"]{background:var(--tint-orange);border-color:var(--accent-ink);color:var(--accent-ink)}
.js .pick{display:inline-block}

/* ---------- freshness on detail ---------- */
.fresh{font-weight:600}
.fresh--warn{color:var(--warn)}
.fresh--ok{color:var(--ok)}
.freshnote{margin:14px 0 0;font-size:13.5px;padding:10px 14px;border-radius:0 var(--r) var(--r) 0;border-left:3px solid var(--line)}
.freshnote--ok{background:var(--ok-bg);color:#1a5c37;border-left-color:var(--ok)}
.freshnote--warn{background:var(--tint-orange);color:var(--warn);border-left-color:var(--gold)}

/* ---------- selection tray ---------- */
.tray{position:fixed;z-index:40;inset-inline:12px;bottom:12px;max-width:1240px;margin-inline:auto;
  background:var(--brand);color:var(--on-dark);border-radius:8px;box-shadow:0 18px 40px -22px rgba(6,18,32,.7);padding:12px 14px}
.tray[hidden]{display:none}
/* On phones the tray sits over the page bottom, so keep the last card clear of it. */
body.trayOpen{padding-bottom:210px}
.tray__sum{margin:0 0 8px;font-size:13.5px;color:var(--on-dark)}
.tray__sum b{font-family:var(--mono);color:#fff}
.tray__msg{color:var(--on-dark-hi);font-weight:600}
.tray__list{list-style:none;display:flex;flex-wrap:wrap;gap:6px;margin:0 0 10px;padding:0;max-height:88px;overflow:auto}
.tray__list li{display:inline-flex;align-items:center;gap:6px;background:rgba(255,255,255,.12);
  border:1px solid rgba(255,255,255,.18);border-radius:99px;padding:3px 6px 3px 11px;font-size:13px}
.tray__x{background:none;border:0;color:var(--on-dark);font:inherit;font-size:15px;line-height:1;cursor:pointer;padding:0 4px}
.tray__x:hover{color:#fff}
.tray__ops{display:flex;gap:8px;flex-wrap:wrap;align-items:center}
.tray .btn--ghost{background:transparent;color:var(--on-dark);border-color:rgba(255,255,255,.3)}
.tray .btn--ghost:hover{background:rgba(255,255,255,.12);color:#fff;border-color:#fff}
.tray .btn--link{color:var(--on-dark-dim)}
.tray .btn--link:hover{color:var(--on-dark-hi)}
@media (min-width:900px){.tray{inset-inline:auto 20px;bottom:20px;width:430px}body.trayOpen{padding-bottom:0}}

/* ---------- compare dialog ---------- */
.cmp{border:0;padding:0;max-width:min(1080px,94vw);width:100%;background:var(--paper);border-radius:8px;
  color:var(--ink);box-shadow:0 30px 60px -30px rgba(6,18,32,.6)}
.cmp::backdrop{background:rgba(10,24,40,.55)}
.cmp__bar{display:flex;justify-content:space-between;align-items:center;gap:14px;padding:16px 18px;border-bottom:1px solid var(--line2)}
.cmp__bar h2{margin:0;font-size:18px}
.cmp__scroll{overflow:auto;max-height:66vh}
.cmp__table{width:100%;border-collapse:collapse;font-size:14px}
.cmp__table th,.cmp__table td{border-bottom:1px solid var(--line2);padding:10px 12px;text-align:left;vertical-align:top;min-width:150px}
.cmp__table thead th{background:var(--bg);position:sticky;top:0}
.cmp__table tbody th{color:var(--ink3);font-weight:600;font-size:13px;white-space:nowrap}
.cmp__table small{font-family:var(--mono);color:var(--ink3);font-weight:400}
.cmp__note{margin:0;padding:12px 18px 16px;font-size:13px;color:var(--ink3);background:var(--bg)}

/* ---------- quote gaps & ops ---------- */
.qMode{font-size:13.5px;color:var(--brand);background:var(--tint-blue2);border-radius:var(--r);padding:8px 12px;margin:0 0 12px}
.qGap{background:var(--tint-orange);border:1px solid var(--tint-orange2);border-radius:var(--r);padding:12px 16px;margin:0 0 16px}
.qGap h3{margin:0 0 6px;font-size:14.5px;color:var(--warn)}
.qGap ul{margin:0;padding-left:20px;font-size:14px;color:var(--ink2)}
.qGap li{margin-bottom:4px}
.qOps{display:flex;gap:10px;flex-wrap:wrap;align-items:center;margin:16px 0 0}
.qOps .btn{align-self:auto}

/* ---------- 资源板块条（放在页头最上方） ---------- */
.platebar{display:flex;gap:8px;overflow-x:auto;padding:9px 20px;background:var(--tint-blue);
  border-top:1px solid var(--line2);scrollbar-width:thin}
.plate{display:inline-flex;align-items:center;gap:6px;white-space:nowrap;padding:7px 13px;border:1px solid var(--line);
  border-radius:99px;background:var(--paper);text-decoration:none;color:var(--ink2);font-size:14px;
  transition:transform .16s ease,box-shadow .16s ease,border-color .16s ease}
.plate:hover{border-color:var(--brand-bright);color:var(--brand);transform:translateY(-1px);
  box-shadow:0 8px 16px -12px rgba(11,79,117,.6)}
.plate em{font-style:normal;font-size:11px;color:var(--ink3)}
.plate--live{border-color:var(--brand-bright);background:var(--tint-blue2);font-weight:600}
.plate--live em{color:var(--brand)}

/* ---------- 板块清单：卡片指标、筛选项与状态行 ---------- */
.card--plate .card__metrics{display:flex;flex-wrap:wrap;gap:7px;margin:9px 0 0}
.metric{display:inline-flex;align-items:baseline;gap:5px;padding:4px 9px;border-radius:8px;
  background:var(--tint-blue2);border:1px solid var(--line2);font-size:12px;color:var(--ink2)}
.metric b{font-size:14px;font-weight:700;color:var(--brand)}
.metric--off{background:var(--paper);border-style:dashed;color:var(--ink3)}
.card__more--off{color:var(--ink3);border-color:var(--line);cursor:default}
.libFootNote{margin:18px 0 0;padding:12px 14px;background:var(--tint-blue);border:1px solid var(--line);
  border-radius:var(--r);font-size:12.5px;line-height:1.85;color:var(--ink2)}
.sec--filter{padding-bottom:4px}
.plib__filter{display:grid;gap:12px}
.plib__selects{display:grid;gap:10px;grid-template-columns:repeat(auto-fit,minmax(168px,1fr))}
.plib__selects>div{display:flex;flex-direction:column;gap:4px;min-width:0}
.plib__selects label{font-size:12px;color:var(--ink3)}
.plib__selects select{padding:8px 10px;border:1px solid var(--line);border-radius:8px;background:var(--paper);
  font:inherit;font-size:14px;color:var(--ink);min-width:0}
.plib__selects select:focus-visible,.plib__filter input:focus-visible{outline:2px solid var(--brand-bright);outline-offset:2px}
.plib__count{margin:12px 0 0;font-size:13px;color:var(--ink2)}
.takeaways{list-style:none;margin:0;padding:0;display:grid;gap:10px}
.takeaways li{display:grid;gap:3px;padding:11px 13px;background:var(--paper);border:1px solid var(--line);
  border-left:3px solid var(--brand-bright);border-radius:var(--r)}
.takeaways b{font-size:14.5px;color:var(--ink)}
.takeaways span{font-size:13.5px;color:var(--ink2);line-height:1.75}
.detail--plate .specgrid b.is-open{color:var(--brand)}
.detail--plate .specgrid b{font-variant-numeric:tabular-nums}

/* ---------- hero 插画与两栏 ---------- */
.hero__inner{display:grid;gap:26px}
.hero__art{display:flex;justify-content:center}
.hero__art svg{width:min(340px,78vw);height:auto}
.ha__cloud{fill:none;stroke:var(--brand-bright);stroke-width:3;stroke-linejoin:round}
.ha__wave{fill:none;stroke:var(--accent);stroke-width:3.4;stroke-linecap:round}
.ha__links path{fill:none;stroke:var(--on-dark-dim);stroke-width:1.4;opacity:.65;stroke-dasharray:3 5}
.ha__node rect:first-child{fill:rgba(255,255,255,.09);stroke:var(--on-dark-dim);stroke-width:1}
.ha__node rect:not(:first-child){fill:var(--on-dark-dim);opacity:.8}
.ha__node--hi rect:first-child{stroke:var(--accent);fill:rgba(255,144,35,.16)}
.ha__node--hi rect:not(:first-child){fill:var(--on-dark-hi);opacity:1}

/* ---------- AI 卖点色块 ---------- */
.aiband{display:grid;gap:22px;color:var(--on-dark);padding:clamp(26px,4vw,46px) clamp(16px,3vw,32px);
  background:linear-gradient(105deg,var(--brand-deep),#0e6ea3 55%,#1a8fc9);border-radius:var(--r);
  max-width:1240px;margin:26px auto}
.aiband__in{min-width:0}
.aiband h2{color:#fff;font-size:clamp(21px,2.7vw,30px)}
.aiband p{color:var(--on-dark);font-size:16px}
.aiband .kicker{color:var(--on-dark-hi);letter-spacing:.2em}
.aiband__pts{list-style:none;margin:0 0 18px;padding:0;display:grid;gap:8px}
.aiband__pts li{position:relative;padding-left:22px;font-size:15px;color:#fff}
.aiband__pts li::before{content:"";position:absolute;left:0;top:8px;width:11px;height:11px;border-radius:50%;
  background:var(--accent)}

/* ---------- 大号按钮 ---------- */
.btn--lg{padding:14px 26px;font-size:17px;border-radius:6px}

/* ---------- 卡片上的发布条件摘要 ---------- */
.card__spec{list-style:none;display:grid;grid-template-columns:1fr 1fr;gap:6px 12px;
  margin:0 0 12px;padding:10px 0 0;border-top:1px dashed var(--line)}
.card__spec li{display:flex;flex-direction:column;min-width:0}
.card__spec span{font-size:11.5px;color:var(--ink3)}
.card__spec b{font-size:13.5px;font-weight:600;overflow-wrap:anywhere}

/* ---------- 详情页发布条件与示意 ---------- */
.specgrid{list-style:none;display:grid;gap:10px;grid-template-columns:repeat(auto-fill,minmax(215px,1fr));
  margin:0 0 14px;padding:0}
.specgrid li{background:var(--paper);border:1px solid var(--line);border-left:3px solid var(--brand-bright);
  border-radius:var(--r);padding:10px 13px}
.specgrid span{display:block;font-size:12px;color:var(--ink3);margin-bottom:3px}
.specgrid b{font-size:15px;font-weight:600;overflow-wrap:anywhere}
.specgrid__off{border-left-color:var(--line);background:var(--bg)}
.specgrid__off b{color:var(--ink3);font-weight:500}
.srcnote{margin:0;background:var(--paper);border:1px solid var(--line);border-radius:var(--r);padding:10px 13px}
.srcnote summary{cursor:pointer;font-size:13.5px;font-weight:600;color:var(--brand)}
.srcnote p{margin:9px 0 0;font-size:13.5px;color:var(--ink2);line-height:1.8}
.diagram{margin:0 0 14px;background:var(--paper);border:1px solid var(--line);border-radius:var(--r);padding:14px}
.diagram svg{display:block;width:100%;max-width:520px;height:auto}
.dg__t{font:600 11px var(--sans);fill:var(--ink2)}
.dg__c{font:10.5px var(--sans);fill:var(--ink3)}
.diagram figcaption{margin-top:10px;font-size:12.5px;color:var(--ink3);line-height:1.7}
.casecard{display:grid;gap:3px;max-width:520px;padding:13px 15px;border:1px solid var(--line);
  border-left:3px solid var(--accent);border-radius:var(--r);background:var(--paper);text-decoration:none}
.casecard:hover{border-color:var(--brand-bright);background:var(--tint-blue)}
.casecard__k{font-size:11.5px;letter-spacing:.1em;text-transform:uppercase;color:var(--accent-ink);font-weight:700}
.casecard__h{font-size:16px;font-weight:600;color:var(--brand);overflow-wrap:anywhere}
.casecard__d{font-size:13px;color:var(--ink3)}

/* ---------- 报价工作台：需求与报价单分隔 ---------- */
.stepbar{display:flex;align-items:baseline;gap:10px;margin:0 0 14px;flex-wrap:wrap}
.stepbar__n{display:grid;place-items:center;width:26px;height:26px;border-radius:50%;background:var(--brand);
  color:#fff;font:600 14px/1 var(--mono);flex:none}
.stepbar h2{margin:0;font-size:20px}
.stepbar p{margin:0;font-size:13.5px;color:var(--ink3)}
.sheetWrap{max-width:1280px;margin:30px auto 0;padding:22px 20px;background:var(--paper);
  border:1px solid var(--line);border-top:4px solid var(--brand-bright);border-radius:var(--r)}
.qPager{display:flex;gap:6px;align-items:center;flex-wrap:wrap;padding:14px 0 0}
.copyArea{width:100%;min-height:150px;margin-top:10px;padding:11px 13px;border:1px solid var(--brand-bright);
  border-radius:var(--r);background:var(--tint-blue);font:13px/1.7 var(--mono);color:var(--ink)}
.qPager .pg{border:1px solid var(--line);cursor:pointer;font:inherit}
.qPager .pg--cur{color:#fff}
.libFootNote{max-width:1280px;margin:0 auto;padding:0 20px;font-size:13.5px;color:var(--ink3)}
.toTop{display:inline-flex;gap:6px;margin:16px 20px 0;padding:9px 15px;border:1px solid var(--line);border-radius:99px;
  background:var(--paper);text-decoration:none;color:var(--brand);font-size:14px}
.toTop:hover{border-color:var(--brand-bright);background:var(--tint-blue)}

/* ---------- 筛选面板：分组竖排，选项成列 ---------- */
.facets{display:grid;gap:2px}
.facet{border-top:1px solid var(--line2);padding:12px 0;margin:0}
.facet legend{float:none;display:block;width:100%;margin-bottom:4px}
.facet__in{display:grid;grid-template-columns:repeat(auto-fill,minmax(158px,1fr));gap:2px 16px;clear:none;padding-top:4px}

/* ---------- 页脚折叠 ---------- */
.fold summary{cursor:pointer;list-style:none;display:flex;align-items:center;justify-content:space-between;gap:10px}
.fold summary::-webkit-details-marker{display:none}
.fold summary::after{content:"";width:7px;height:7px;border-right:2px solid var(--on-dark-dim);
  border-bottom:2px solid var(--on-dark-dim);transform:rotate(45deg);transition:transform .18s ease;flex:none}
.fold:not([open]) summary::after{transform:rotate(-45deg)}
.fold[open] .footcol__list{animation:foldin .22s ease}
@keyframes foldin{from{opacity:0;transform:translateY(-6px)}}

/* ---------- 动效（尊重系统减少动态偏好） ---------- */
@media (prefers-reduced-motion:no-preference){
  .card{transition:transform .18s ease,box-shadow .18s ease,border-color .18s ease}
  .card:hover{transform:translateY(-2px);box-shadow:0 12px 26px -20px rgba(11,79,117,.7);border-color:var(--brand-bright)}
  .chip{transition:transform .14s ease,border-color .14s ease,background .14s ease}
  .chip:hover{transform:translateY(-1px);border-color:var(--brand-bright)}
  .ha__links path{animation:haflow 3.4s linear infinite}
  .aiband .ha__node{animation:hafade .55s ease backwards}
  .aiband .ha__node:nth-of-type(2){animation-delay:.08s}
  .aiband .ha__node:nth-of-type(3){animation-delay:.16s}
  .aiband .ha__node:nth-of-type(4){animation-delay:.24s}
  .aiband .ha__node:nth-of-type(5){animation-delay:.32s}
  .hero__art .ha__node{animation:hafade .55s ease backwards}
}
@keyframes haflow{to{stroke-dashoffset:-64}}
@keyframes hafade{from{opacity:0;transform:translateY(7px)}}

/* ---------- responsive ---------- */
@media (min-width:900px){
  .hero__inner{grid-template-columns:minmax(0,1.15fr) minmax(0,.85fr);align-items:center}
  .aiband{grid-template-columns:minmax(0,1.2fr) minmax(0,.8fr);align-items:center}
}
@media (min-width:760px){
  .quoteWrap{grid-template-columns:minmax(0,1.05fr) minmax(0,1fr);align-items:start}
  .contact{grid-template-columns:minmax(0,340px) minmax(0,1fr)}
}
@media (min-width:1080px){
  .grid--cards{grid-template-columns:repeat(3,minmax(0,1fr))}
}
@media (max-width:899px){
  .menuBtn{display:block}
  .nav{display:none;width:100%;flex-direction:column;order:5;margin-left:0;border-top:1px solid var(--line2);padding-top:8px}
  .nav.is-open{display:flex}
  .nav a{padding:12px 10px;font-size:16px}
  .acct{margin-left:auto;flex-wrap:wrap;row-gap:6px}
  .acct .btn--ghost{display:none}
  .bar--nav{min-height:58px}
}
@media (max-width:599px){
  .grid--cards,.grid--tax{grid-template-columns:1fr}
  .field{grid-template-columns:1fr;gap:4px}
  .field dt{font-size:12.5px}
  .stats li{flex:1 1 calc(50% - 5px);min-width:0}
  .resultsBar{flex-direction:column;align-items:flex-start}
  .brand__txt em{display:none}
  .acct .btn--primary,.acct .btn--reg{padding:10px 14px;font-size:15px}
  .btn--lg{padding:12px 20px;font-size:16px}
  .card__spec{grid-template-columns:1fr}
  .acct__who{max-width:132px}
  .qf__grid{grid-template-columns:1fr 1fr}
  .qTable{font-size:13px}
  .qTable th,.qTable td{padding:9px 7px}
}
@media print{.sitehead,.sitefoot,.facets,.pager,.tray,.cmp{display:none}}
@media (prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}}
