/* ============================================================
   获优客 huoyouke.com — 全站共享样式
   设计 token 与首页一致：主色 #1A56DB，深蓝 #0B2A66
   页面为 1440 设计稿等比缩放（.stage/.page + fit.js）
   ============================================================ */
*{box-sizing:border-box;margin:0;padding:0}
:root{
  --primary:#1A56DB;
  --ink:#0B1B33;
  --ink-2:#344054;
  --muted:#667085;
  --faint:#98A2B3;
  --line:#E4E7EC;
  --line-soft:#EEF0F4;
  --bg:#F4F6FA;
  --navy:#0B2A66;
  --navy-line:#1E4A9E;
  --navy-chip:#123C86;
  --on-navy:#9DB8EA;
  --on-navy-2:#A8C3F2;
  --on-navy-3:#8FAEE8;
  --hero-sub:#BFD3F7;
  --hero-soft:#DCE8FF;
  --hero-glow:#8FAEE8;
  --stat-line:#3D6ECF;
  --green:#079455;--green-bg:#E0F5E9;
  --orange:#B54708;--orange-bg:#FFF5E6;
  --red:#B42318;--red-bg:#FEE4E2;
  --blue-bg:#E8EEF9;
  --font:"PingFang SC","Noto Sans SC","Microsoft YaHei","Source Han Sans SC","Hiragino Sans GB","Heiti SC",sans-serif;
  --font-num:"Inter","Segoe UI","Helvetica Neue",Arial,sans-serif;
}
html{scroll-behavior:smooth}
body{background:var(--bg);font-family:var(--font);color:var(--ink);overflow-x:hidden;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}
a{text-decoration:none;color:inherit}
button{font-family:inherit}
img,svg{display:block}
.num{font-family:var(--font-num)}

/* ---------- canvas ---------- */
.stage{position:relative;width:100%;overflow:hidden;background:var(--bg)}
.page{position:relative;width:1440px;transform-origin:top left;background:var(--bg)}

/* ---------- top bar ---------- */
.topbar{height:36px;background:var(--navy);padding:0 120px;display:flex;align-items:center;justify-content:space-between}
.topbar__slogan{font-size:12px;color:var(--on-navy-2);line-height:1}
.topbar__links{display:flex;align-items:center;gap:20px}
.topbar__links a{font-size:12px;color:var(--on-navy-2);line-height:1}
.topbar__links .is-strong{font-weight:500;color:#fff}
.topbar__links a:hover{color:#fff}

/* ---------- header ---------- */
.header{height:78px;background:#fff;padding:0 120px;display:flex;align-items:center;justify-content:space-between}
.logo{display:flex;align-items:center;gap:10px}
.logo__text{font-size:22px;font-weight:700;line-height:1.2}
.nav{display:flex;align-items:center;gap:26px}
.nav a{font-size:15px;color:var(--ink-2);line-height:1;white-space:nowrap}
.nav a:hover{color:var(--primary)}
.nav a.is-active{font-weight:500;color:var(--primary)}
.nav a[data-jk-nav][hidden]{display:none!important}
.header__actions{display:flex;align-items:center;gap:10px}
.search-field{display:flex;align-items:center;gap:8px;width:232px;height:40px;padding:0 16px;border-radius:20px;background:var(--bg);border:1px solid var(--line);transition:border-color .2s,background .2s}
.search-field:focus-within{border-color:var(--primary);background:#fff}
.search-field input{flex:1;min-width:0;border:0;outline:0;background:transparent;font-family:inherit;font-size:13px;color:var(--ink)}
.search-field input::placeholder{color:#98A2B3}
.btn-primary{display:inline-flex;align-items:center;justify-content:center;width:98px;height:40px;border:0;border-radius:20px;background:var(--primary);color:#fff;font-size:14px;font-weight:500;cursor:pointer;transition:background .2s}
.btn-primary:hover{background:#1547B8}
.rule{height:1px;background:var(--line)}

/* ---------- hero (首页) ---------- */
.hero{position:relative;overflow:hidden;padding:64px 120px 58px;display:flex;flex-direction:column;align-items:flex-start;gap:26px;
  background:linear-gradient(to bottom,#0A2659 0%,#1440A8 58%,#1A57DB 100%)}
.hero>*:not(.hero__glow){position:relative;z-index:1}
.hero__glow{position:absolute;left:870px;top:10px;width:520px;height:520px;z-index:0;
  background:radial-gradient(closest-side,rgba(255,255,255,.16),rgba(255,255,255,0))}
.hero__badge{display:inline-flex;align-items:center;gap:8px;padding:7px 14px;border-radius:999px;
  background:rgba(255,255,255,.12);border:1px solid rgba(255,255,255,.26)}
.hero__badge span{font-size:13px;line-height:1.15;color:var(--hero-soft)}
.hero__title{font-size:44px;font-weight:700;line-height:60px;color:#fff}
.hero__sub{font-size:16px;line-height:28px;color:var(--hero-sub);width:760px}
.hero .hero__search{display:flex;align-items:center;width:800px;height:62px;padding:8px;border-radius:10px;background:#fff;z-index:30}
.hero__scope{display:flex;align-items:center;justify-content:center;gap:6px;width:134px;height:46px;flex:0 0 134px;background:none;border:0;cursor:pointer}
.hero__scope span{font-size:14px;font-weight:500;color:var(--ink-2);line-height:1}
.hero__split{width:1px;height:26px;flex:0 0 1px;background:var(--line)}
.hero__input{flex:1;display:flex;align-items:center;height:46px;padding:0 18px;min-width:0}
.hero__input input{width:100%;border:0;outline:0;background:transparent;font-family:inherit;font-size:14px;color:var(--ink)}
.hero__input input::placeholder{color:#98A2B3}
.hero__btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;width:118px;height:46px;flex:0 0 118px;
  border:0;border-radius:8px;background:var(--primary);color:#fff;font-size:15px;font-weight:500;cursor:pointer;transition:background .2s}
.hero__btn:hover{background:#1547B8}
.hot{display:flex;align-items:center;gap:18px}
.hot__label{font-size:13px;line-height:1;color:var(--hero-glow)}
.hot a{font-size:13px;line-height:1;color:var(--hero-soft)}
.hot a:hover{color:#fff;text-decoration:underline;text-underline-offset:3px}
.stats{display:flex;align-items:center;gap:30px}
.stat{display:flex;flex-direction:column;gap:4px}
.stat__value{font-family:var(--font-num);font-size:28px;font-weight:700;line-height:1.2;color:#fff}
.stat__label{font-size:13px;line-height:1.3;color:var(--on-navy)}
.stat__split{width:1px;height:34px;background:var(--stat-line)}

/* ---------- section shell (首页) ---------- */
.section{padding:60px 120px;display:flex;flex-direction:column;gap:26px;background:var(--bg)}
.section--white{padding:64px 120px;gap:28px;background:#fff}
.section__head{display:flex;flex-direction:column;gap:9px}
.section__head--row{flex-direction:row;align-items:flex-end;justify-content:space-between;width:100%}
.section__text{display:flex;flex-direction:column;gap:9px}
.eyebrow{font-size:13px;font-weight:500;line-height:1.25;color:var(--primary)}
.section__title{font-size:30px;font-weight:700;line-height:1.34}
.section__sub{font-size:15px;line-height:26px;color:var(--muted);width:820px}
.btn-outline{display:inline-flex;align-items:center;justify-content:center;width:138px;height:42px;flex:0 0 138px;
  border:1px solid var(--primary);border-radius:21px;background:#fff;color:var(--primary);font-size:13px;font-weight:500;cursor:pointer;transition:background .2s,color .2s}
.btn-outline:hover{background:var(--primary);color:#fff}

/* ---------- quick grid / category / news (首页) ---------- */
.quick-grid{display:flex;flex-wrap:wrap;gap:16px;align-items:stretch}
.quick-card{flex:0 0 288px;width:288px;display:flex;flex-direction:column;gap:13px;padding:22px;border-radius:12px;
  background:#fff;border:1px solid var(--line);transition:border-color .2s,box-shadow .2s,transform .2s}
.quick-card:hover{border-color:#C7D7F8;box-shadow:0 8px 24px rgba(11,27,51,.08);transform:translateY(-2px)}
.quick-card__title{font-size:16px;font-weight:600;line-height:1.5;color:var(--ink)}
.quick-card__desc{font-size:13px;line-height:22px;color:var(--muted)}
.quick-card__count{margin-top:auto;font-size:12px;line-height:1.4;color:var(--primary)}
.quick-empty{width:100%;padding:44px 0;text-align:center;font-size:14px;color:#98A2B3}
.cat-cols{display:flex;gap:24px;align-items:flex-start}
.cat-col{flex:1;min-width:0;display:flex;flex-direction:column;gap:20px}
.cat-card{display:flex;flex-direction:column;gap:14px;padding:20px 22px;border-radius:12px;background:#fff;
  border:1px solid var(--line);box-shadow:0 2px 14px rgba(11,27,51,.04);
  transition:box-shadow .35s,border-color .35s}
.cat-card.is-flash{border-color:var(--primary);box-shadow:0 0 0 2px var(--primary),0 8px 24px rgba(26,86,219,.18)}
.cat-card__head{display:flex;align-items:center;justify-content:space-between}
.cat-card__group{display:flex;align-items:center;gap:10px}
.cat-card__bar{width:3px;height:17px;border-radius:2px}
.cat-card__title{font-size:17px;font-weight:600;line-height:1.4;color:var(--ink)}
.cat-card__more{font-size:13px;line-height:1.3;color:var(--primary);white-space:nowrap}
.cat-card__more:hover{text-decoration:underline;text-underline-offset:3px}
.cat-card__rule{height:1px;background:var(--line-soft)}
.art-list{display:flex;gap:16px}
.art-list__titles{flex:1;min-width:0}
.art-list__dates{flex:0 0 auto}
.art-list__titles>div,.art-list__dates>div{line-height:32px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.art-list__titles>div{font-size:14px;color:var(--ink-2)}
.art-list__titles>div:hover{color:var(--primary)}
.art-list__dates>div{font-family:var(--font-num);font-size:12px;color:#98A2B3;text-align:right}
.official-row{display:flex;gap:20px;align-items:stretch}
.official-card{flex:1;min-width:0;display:flex;align-items:center;gap:16px;padding:24px;border-radius:12px;
  background:#fff;border:1px solid var(--line);transition:border-color .2s,box-shadow .2s}
.official-card:hover{border-color:#C7D7F8;box-shadow:0 8px 24px rgba(11,27,51,.08)}
.official-card__body{display:flex;flex-direction:column;gap:7px;min-width:0}
.official-card__title{font-size:17px;font-weight:600;line-height:1.4;color:var(--ink)}
.official-card__desc{font-size:13px;line-height:22px;color:var(--muted)}
.official-card__link{font-size:13px;font-weight:500;line-height:1.35;color:var(--primary)}
.official-card:hover .official-card__link{text-decoration:underline;text-underline-offset:3px}
.news-cols{display:flex;gap:24px;align-items:flex-start}
.news-col{flex:1;min-width:0;display:flex;flex-direction:column;gap:18px}
.news-col__head{display:flex;align-items:center;justify-content:space-between}
.news-col__title{font-size:20px;font-weight:600;line-height:1.3;color:var(--ink)}
.news-col__more{font-size:13px;line-height:1.3;color:var(--primary)}
.news-col__more:hover{text-decoration:underline;text-underline-offset:3px}
.feature{display:flex;flex-direction:column;gap:12px;padding:24px;border-radius:12px;background:#F7F9FC;border:1px solid var(--line);transition:border-color .2s,background .2s}
.feature:hover{border-color:#C7D7F8;background:#F2F6FF}
.feature__title{font-size:18px;font-weight:600;line-height:28px;color:var(--ink)}
.feature__excerpt{font-size:14px;line-height:24px;color:var(--muted)}
.feature__meta{display:flex;align-items:center;gap:12px}
.feature__date{font-family:var(--font-num);font-size:12px;line-height:1.3;color:#98A2B3}
.tag{display:inline-flex;align-items:center;padding:3px 10px;border-radius:4px;background:#EBF1FF;font-size:12px;line-height:1.35;color:var(--primary);white-space:nowrap}
.news-row{display:flex;align-items:center;justify-content:space-between;padding:14px 0}
.news-row__title{flex:1;min-width:0;padding-right:16px;font-size:14px;line-height:1.4;color:var(--ink-2)}
.news-row:hover .news-row__title{color:var(--primary)}
.news-row__date{font-family:var(--font-num);font-size:12px;line-height:1.3;color:#98A2B3;white-space:nowrap}
.news-rule{height:1px;background:var(--line-soft)}

/* ---------- footer ---------- */
.footer{padding:56px 120px 34px;background:var(--navy);display:flex;flex-direction:column;gap:30px}
.footer__top{display:flex;justify-content:space-between;align-items:flex-start}
.footer__brand{width:320px;display:flex;flex-direction:column;gap:16px}
.footer__logo{display:flex;align-items:center;gap:10px}
.footer__logo-text{font-size:22px;font-weight:700;line-height:1.2;color:#fff}
.footer__tagline{font-size:13px;line-height:22px;color:var(--on-navy)}
.footer__chips{display:flex;gap:8px}
.chip{padding:4px 10px;border-radius:4px;background:var(--navy-chip);font-size:11px;line-height:1.35;color:var(--on-navy-2);white-space:nowrap}
.footer__col{width:180px;display:flex;flex-direction:column;gap:13px}
.footer__col-title{font-size:14px;font-weight:600;line-height:1.3;color:#fff}
.footer__col a{font-size:13px;line-height:1.3;color:var(--on-navy)}
.footer__col a:hover{color:#fff}
.footer__rule{height:1px;background:var(--navy-line)}
.footer__bottom{display:flex;align-items:center;justify-content:space-between;gap:24px}
.footer__bottom span{font-size:12px;line-height:1.35;color:var(--on-navy-3)}

/* ============================================================
   二级 / 三级页通用组件
   ============================================================ */

/* 深蓝渐变页头（面包屑 + 标题 + 元信息） */
.pagehead{padding:30px 120px;display:flex;flex-direction:column;gap:13px;
  background:linear-gradient(to bottom,#0A2659 0%,#1440A8 62%,#1A57DB 100%)}
.pagehead--flat{background:linear-gradient(100deg,#0A2659 0%,#1440A8 62%,#1A57DB 100%)}
.pagehead .crumb{font-size:13px;color:var(--on-navy)}
.pagehead .crumb a{color:var(--on-navy)}
.pagehead .crumb a:hover{color:#fff}
.pagehead .crumb .sep{margin:0 8px;color:var(--on-navy-3)}
.pagehead .crumb .cur{color:#fff}
.pagehead h1{font-size:30px;font-weight:700;color:#fff}
.pagehead .meta{font-size:13px;color:var(--hero-sub)}

/* 主体两栏 */
.layout{display:flex;gap:24px;padding:28px 120px 56px;align-items:flex-start}
.layout__main{flex:1;min-width:0;display:flex;flex-direction:column;gap:16px}
.layout__side{flex:0 0 320px;width:320px;display:flex;flex-direction:column;gap:16px}

/* 卡片 */
.card{background:#fff;border:1px solid var(--line);border-radius:12px}
.card--pad{padding:20px 22px}
.card__head{display:flex;align-items:center;justify-content:space-between;gap:12px}
.card__title{font-size:16px;font-weight:600;color:var(--ink)}
.card__meta{font-size:12px;color:var(--faint)}

/* 分组标题（accent bar） */
.group-title{display:flex;align-items:center;gap:10px;padding:8px 0 2px}
.group-title .bar{width:3px;height:16px;border-radius:2px;background:var(--primary)}
.group-title h2{font-size:18px;font-weight:600;color:var(--ink)}

/* 筛选卡 */
.filter-card{display:flex;flex-direction:column;gap:14px;padding:18px 20px}
.filter-row{display:flex;align-items:flex-start;gap:12px}
.filter-row .label{flex:0 0 72px;font-size:13px;line-height:30px;color:var(--muted)}
.filter-row .opts{display:flex;flex-wrap:wrap;gap:8px;flex:1}
.fchip{display:inline-flex;align-items:center;height:30px;padding:0 14px;border-radius:15px;background:var(--bg);
  border:1px solid var(--line);font-size:13px;color:var(--ink-2);cursor:pointer;transition:all .15s;white-space:nowrap}
.fchip:hover{border-color:#C7D7F8;color:var(--primary)}
.fchip.is-on{background:var(--blue-bg);border-color:var(--primary);color:var(--primary);font-weight:500}
.filter-search{display:flex;align-items:center;gap:8px;height:36px;padding:0 14px;border-radius:8px;background:var(--bg);border:1px solid var(--line)}
.filter-search input{flex:1;min-width:0;border:0;outline:0;background:transparent;font-family:inherit;font-size:13px;color:var(--ink)}
.filter-search input::placeholder{color:var(--faint)}

/* 徽标 */
.badge{display:inline-flex;align-items:center;justify-content:center;height:24px;padding:0 10px;border-radius:12px;font-size:12px;white-space:nowrap}
.badge--green{background:var(--green-bg);color:var(--green)}
.badge--orange{background:var(--orange-bg);color:var(--orange)}
.badge--red{background:var(--red-bg);color:var(--red)}
.badge--blue{background:var(--blue-bg);color:var(--primary)}
.badge--gray{background:#F2F4F7;color:var(--muted)}

/* 数据表格 */
.table{width:100%;border-collapse:collapse;background:#fff;border-radius:12px;overflow:hidden;border:1px solid var(--line)}
.table__head{display:flex;align-items:center;gap:16px;padding:0 22px;height:46px;background:#F7F9FC;
  font-size:13px;font-weight:500;color:var(--muted)}
.table__body{display:flex;flex-direction:column}
.trow{display:flex;align-items:center;gap:16px;padding:0 22px;height:60px;border-top:1px solid var(--line-soft);font-size:13px;color:var(--ink-2)}
.trow:hover{background:#FAFBFD}
.trow .t-title{font-size:14px;font-weight:600;color:var(--ink)}
.trow a.t-link{color:var(--primary);font-weight:500;white-space:nowrap}
.trow a.t-link:hover{text-decoration:underline;text-underline-offset:3px}
.cw-fill{flex:1;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.cw-88{flex:0 0 88px}.cw-104{flex:0 0 104px}.cw-116{flex:0 0 116px}.cw-168{flex:0 0 168px}.cw-72{flex:0 0 72px}.cw-96{flex:0 0 96px}
.table-foot{display:flex;align-items:center;justify-content:space-between;padding:16px 22px;border-top:1px solid var(--line-soft);font-size:13px;color:var(--muted)}
.pager{display:flex;align-items:center;gap:8px;font-size:13px}
.pager .pg-cur{display:inline-flex;align-items:center;justify-content:center;width:32px;height:32px;border-radius:8px;background:var(--primary);color:#fff}
.pager a{color:var(--ink-2)}
.pager a:hover{color:var(--primary)}
.pager .pg-dis{color:var(--faint)}

/* 侧栏卡 */
.side-card{background:#fff;border:1px solid var(--line);border-radius:12px;padding:20px 22px;display:flex;flex-direction:column;gap:14px}
.side-card__head{display:flex;align-items:center;justify-content:space-between}
.side-card__title{font-size:16px;font-weight:600;color:var(--ink)}
.side-card__meta{font-size:12px;color:var(--faint)}
.dist-list{display:flex;gap:16px}
.dist-list .names{font-size:13px;line-height:30px;color:var(--ink-2)}
.dist-list .vals{margin-left:auto;font-size:13px;line-height:30px;font-weight:500;color:var(--primary);text-align:right}
.rank-list{display:flex;gap:14px}
.rank-list .names{flex:1;font-size:13px;line-height:30px;color:var(--ink-2)}
.rank-list .names div:hover{color:var(--primary)}
.rank-list .cities{font-size:12px;line-height:30px;color:var(--faint)}
.side-guide{background:var(--blue-bg);border-radius:12px;padding:22px;display:flex;flex-direction:column;gap:10px}
.side-guide .t{font-size:15px;font-weight:600;color:var(--ink)}
.side-guide .d{font-size:13px;line-height:22px;color:var(--ink-2)}
.side-guide .btn{display:flex;align-items:center;justify-content:center;height:38px;border-radius:8px;background:var(--primary);
  color:#fff;font-size:13px;font-weight:500;cursor:pointer;border:0}
.side-guide .btn:hover{background:#1547B8}

/* 搜索结果页 */
.search-head{background:#fff;padding:26px 120px 24px;display:flex;flex-direction:column;gap:16px}
.search-bar{display:flex;align-items:center;width:880px;height:56px;padding:6px;background:#fff;border:1px solid var(--primary);border-radius:10px}
.search-bar .scope{display:flex;align-items:center;gap:6px;width:128px;height:44px;padding-left:12px;background:none;border:0;cursor:pointer}
.search-bar .scope span{font-size:14px;font-weight:500;color:var(--ink-2)}
.search-bar .vline{width:1px;height:24px;background:var(--line)}
.search-bar .input{flex:1;display:flex;align-items:center;height:44px;padding:0 16px;min-width:0}
.search-bar .input input{width:100%;border:0;outline:0;background:transparent;font-family:inherit;font-size:15px;font-weight:500;color:var(--ink)}
.search-bar .go{display:flex;align-items:center;justify-content:center;width:96px;height:44px;border:0;border-radius:8px;background:var(--primary);color:#fff;font-size:15px;font-weight:500;cursor:pointer}
.search-bar .go:hover{background:#1547B8}
.result-meta{display:flex;align-items:center;justify-content:space-between}
.result-meta .count{font-size:14px;color:var(--muted)}
.result-tabs{display:flex;gap:26px;font-size:14px}
.result-tabs a{color:var(--muted)}
.result-tabs a.is-on{font-weight:600;color:var(--primary)}
.result-card{display:flex;flex-direction:column;gap:10px;padding:18px 22px}
.result-card .title-row{display:flex;align-items:center;gap:10px}
.result-card .title-row .name{font-size:16px;font-weight:600;color:var(--primary)}
.result-card .title-row .name:hover{text-decoration:underline;text-underline-offset:3px}
.result-card .qual{font-size:13px;font-weight:500;color:var(--primary)}
.result-card .meta{font-size:13px;color:var(--muted)}
.result-card .desc{font-size:13px;line-height:22px;color:var(--muted)}
.more-btn{display:flex;align-items:center;justify-content:center;height:46px;background:#fff;border:1px solid var(--line);
  border-radius:8px;font-size:14px;font-weight:500;color:var(--primary);cursor:pointer;transition:all .15s}
.more-btn:hover{border-color:var(--primary);background:#F7FAFF}
.art-row{display:flex;align-items:center;justify-content:space-between;padding:14px 20px;background:#fff;border:1px solid var(--line);border-radius:10px}
.art-row .t{flex:1;min-width:0;font-size:14px;color:var(--ink-2);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.art-row:hover .t{color:var(--primary)}
.art-row .d{font-family:var(--font-num);font-size:12px;color:var(--faint);margin-left:16px}
.kw-list{font-size:14px;line-height:30px}
.kw-list div{color:var(--primary)}
.kw-list div:hover{text-decoration:underline;text-underline-offset:3px}

/* 文章详情 */
.article-card{padding:32px 36px;display:flex;flex-direction:column;gap:20px}
.article-card .a-tag-row{display:flex;gap:8px}
.article-card h1{font-size:26px;font-weight:700;line-height:1.45;color:var(--ink)}
.article-card .a-meta{display:flex;align-items:center;gap:16px;font-size:13px;color:var(--faint)}
.article-card .a-rule{height:1px;background:var(--line-soft)}
.article-card .a-body{display:flex;flex-direction:column;gap:16px}
.article-card .a-body h2{font-size:18px;font-weight:600;color:var(--ink);margin-top:8px}
.article-card .a-body p{font-size:15px;line-height:30px;color:var(--ink-2)}
.article-card .a-body blockquote{padding:14px 18px;border-left:3px solid var(--primary);background:#F7F9FC;border-radius:0 8px 8px 0;font-size:14px;line-height:26px;color:var(--ink-2)}
.a-side-nav{position:sticky;top:24px}
.a-side-nav .toc{display:flex;flex-direction:column;gap:2px}
.a-side-nav .toc a{padding:8px 12px;border-radius:8px;font-size:13px;color:var(--ink-2)}
.a-side-nav .toc a:hover{background:var(--bg);color:var(--primary)}
.a-side-nav .toc a.is-on{background:var(--blue-bg);color:var(--primary);font-weight:500}

/* 机构详情 */
.org-hero{display:flex;align-items:center;gap:20px;padding:24px}
.org-hero .avatar{display:flex;align-items:center;justify-content:center;width:72px;height:72px;border-radius:16px;background:var(--blue-bg);
  font-size:26px;font-weight:700;color:var(--primary);flex:0 0 72px}
.org-hero .info{flex:1;display:flex;flex-direction:column;gap:8px}
.org-hero .name-row{display:flex;align-items:center;gap:10px}
.org-hero .name-row h1{font-size:22px;font-weight:700;color:var(--ink)}
.org-hero .sub{font-size:13px;color:var(--muted)}
.org-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px 40px;padding:20px 24px}
.org-grid .item{display:flex;gap:8px;font-size:14px}
.org-grid .item .k{flex:0 0 96px;color:var(--faint)}
.org-grid .item .v{color:var(--ink-2)}
.qual-row{display:flex;align-items:center;gap:16px;padding:0 22px;height:56px;border-top:1px solid var(--line-soft);font-size:13px}
.tabbar{display:flex;gap:28px;border-bottom:1px solid var(--line);background:#fff;padding:0 24px}
.tabbar a{position:relative;padding:16px 2px;font-size:15px;color:var(--muted)}
.tabbar a.is-on{font-weight:600;color:var(--primary)}
.tabbar a.is-on::after{content:"";position:absolute;left:0;right:0;bottom:-1px;height:2px;background:var(--primary);border-radius:2px}
.tabbar a:hover{color:var(--primary)}

/* 表单（会员注册 / 反馈） */
.form-card{padding:28px 32px;display:flex;flex-direction:column;gap:20px}
.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px 24px}
.form-item{display:flex;flex-direction:column;gap:8px}
.form-item.full{grid-column:1/-1}
.form-item label{font-size:13px;font-weight:500;color:var(--ink-2)}
.form-item label .req{color:var(--red);margin-left:2px}
.form-item input,.form-item select,.form-item textarea{height:42px;padding:0 14px;border:1px solid var(--line);border-radius:8px;
  background:#fff;font-family:inherit;font-size:14px;color:var(--ink);outline:0;transition:border-color .15s}
.form-item textarea{height:auto;padding:12px 14px;resize:vertical;line-height:24px}
.form-item input:focus,.form-item select:focus,.form-item textarea:focus{border-color:var(--primary)}
.form-item input::placeholder,.form-item textarea::placeholder{color:var(--faint)}
.form-item .hint{font-size:12px;color:var(--faint)}
.agree{display:flex;align-items:flex-start;gap:8px;font-size:13px;color:var(--muted);line-height:22px}
.agree input{margin-top:4px}
.agree a{color:var(--primary)}
.submit-row{display:flex;gap:12px}
.btn-big{display:inline-flex;align-items:center;justify-content:center;height:46px;padding:0 32px;border:0;border-radius:8px;
  background:var(--primary);color:#fff;font-size:15px;font-weight:500;cursor:pointer;transition:background .2s}
.btn-big:hover{background:#1547B8}
.btn-ghost{display:inline-flex;align-items:center;justify-content:center;height:46px;padding:0 28px;border:1px solid var(--line);
  border-radius:8px;background:#fff;color:var(--ink-2);font-size:15px;cursor:pointer}
.btn-ghost:hover{border-color:var(--primary);color:var(--primary)}
.reg-side{background:linear-gradient(160deg,#0A2659,#1A57DB);border-radius:12px;padding:28px;display:flex;flex-direction:column;gap:16px;color:#fff}
.reg-side .t{font-size:18px;font-weight:600}
.reg-side .li{display:flex;gap:10px;font-size:13px;line-height:22px;color:var(--hero-soft)}
.reg-side .li .dot{flex:0 0 6px;width:6px;height:6px;border-radius:3px;background:#7FA8F5;margin-top:8px}

/* 会员中心 */
.member-wrap{display:flex;gap:24px;padding:28px 120px 56px;align-items:flex-start}
.member-side{flex:0 0 220px;display:flex;flex-direction:column;gap:8px;background:#fff;border:1px solid var(--line);border-radius:12px;padding:16px}
.member-side .u{display:flex;align-items:center;gap:12px;padding:6px 6px 14px;border-bottom:1px solid var(--line-soft);margin-bottom:8px}
.member-side .u .av{display:flex;align-items:center;justify-content:center;width:44px;height:44px;border-radius:22px;background:var(--blue-bg);color:var(--primary);font-size:17px;font-weight:600}
.member-side .u .n{display:flex;flex-direction:column;gap:3px}
.member-side .u .n b{font-size:15px;color:var(--ink)}
.member-side .u .n span{font-size:12px;color:var(--faint)}
.member-side a{padding:11px 14px;border-radius:8px;font-size:14px;color:var(--ink-2)}
.member-side a:hover{background:var(--bg);color:var(--primary)}
.member-side a.is-on{background:var(--blue-bg);color:var(--primary);font-weight:500}
.member-main{flex:1;min-width:0;display:flex;flex-direction:column;gap:16px}
.kpi-row{display:flex;gap:16px}
.kpi{flex:1;display:flex;flex-direction:column;gap:6px;padding:20px 22px}
.kpi .v{font-family:var(--font-num);font-size:26px;font-weight:700;color:var(--ink)}
.kpi .k{font-size:13px;color:var(--muted)}
.kpi .v em{font-style:normal;font-size:13px;font-weight:500;color:var(--faint)}
.flow-row{display:flex;align-items:center;gap:8px;padding:0 22px;height:56px;border-top:1px solid var(--line-soft);font-size:13px}
.plus{color:var(--green);font-weight:500}
.minus{color:var(--red);font-weight:500}
.demand-card{display:flex;flex-direction:column;gap:10px;padding:18px 22px}
.demand-card .d-title-row{display:flex;align-items:center;gap:10px}
.demand-card .d-title{flex:1;font-size:15px;font-weight:600;color:var(--ink)}
.demand-card .d-meta{display:flex;gap:18px;font-size:13px;color:var(--muted)}
.demand-card .d-desc{font-size:13px;line-height:22px;color:var(--muted)}
.demand-card .d-foot{display:flex;align-items:center;gap:14px;font-size:13px;color:var(--faint)}
.demand-card .d-foot .offers{color:var(--primary);font-weight:500}

/* 静态介绍页 */
.doc-card{padding:32px 36px;display:flex;flex-direction:column;gap:18px}
.doc-card h2{font-size:17px;font-weight:600;color:var(--ink)}
.doc-card p{font-size:15px;line-height:30px;color:var(--ink-2)}
.doc-card li{font-size:15px;line-height:30px;color:var(--ink-2);margin-left:22px}
.doc-card .std-row{display:flex;gap:16px;align-items:flex-start;padding:14px 0;border-top:1px solid var(--line-soft)}
.doc-card .std-row:first-of-type{border-top:0}
.doc-card .std-row .std-badge{flex:0 0 108px}
.contact-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:16px}
.contact-item{display:flex;flex-direction:column;gap:6px;padding:22px}
.contact-item .k{font-size:13px;color:var(--faint)}
.contact-item .v{font-size:16px;font-weight:600;color:var(--ink)}
.contact-item .d{font-size:13px;color:var(--muted)}

/* 权益对比表（会员注册页） */
.plan-row{display:flex;gap:16px}
.plan-card{flex:1;display:flex;flex-direction:column;gap:12px;padding:24px;border:1px solid var(--line);border-radius:12px;background:#fff}
.plan-card.is-hot{border-color:var(--primary);box-shadow:0 8px 24px rgba(26,86,219,.10)}
.plan-card .p-name{display:flex;align-items:center;justify-content:space-between;font-size:16px;font-weight:600;color:var(--ink)}
.plan-card .p-price{font-family:var(--font-num);font-size:28px;font-weight:700;color:var(--primary)}
.plan-card .p-price em{font-style:normal;font-size:13px;font-weight:400;color:var(--faint)}
.plan-card .p-li{display:flex;gap:8px;font-size:13px;line-height:22px;color:var(--ink-2)}
.plan-card .p-li .ok{color:var(--green);font-weight:600}

/* ============================================================
   头部用户区（登录 / 注册 / 已登录的头像菜单）
   未登录与已登录两态由 assets/api.js 的全局模块切换；
   页面里先输出「登录 / 注册」，脚本再按登录状态升级为头像菜单。
   ============================================================ */
.hdr-user{position:relative;display:flex;align-items:center;gap:8px}
.hdr-user__login{display:inline-flex;align-items:center;height:40px;padding:0 12px;border-radius:20px;font-size:14px;font-weight:500;color:var(--ink-2);white-space:nowrap;transition:background .2s,color .2s}
.hdr-user__login:hover{background:var(--blue-bg);color:var(--primary)}
.hdr-user__reg{display:inline-flex;align-items:center;justify-content:center;height:40px;padding:0 16px;border:1px solid var(--primary);border-radius:20px;background:#fff;color:var(--primary);font-size:14px;font-weight:500;white-space:nowrap;transition:background .2s,color .2s}
.hdr-user__reg:hover{background:var(--primary);color:#fff}
/* v3.15 页头常驻「发布需求」主入口：api.js 注入到 .header__actions（登录/注册左侧）。
   暖橙是全站唯一强调色，只给发布需求这一个动作，保证它是页头最跳的按钮 */
.hdr-pub{display:inline-flex;align-items:center;justify-content:center;gap:7px;height:40px;
  padding:0 18px;border:0;border-radius:20px;background:#FF6A00;color:#fff;font-family:inherit;
  font-size:14px;font-weight:600;cursor:pointer;white-space:nowrap;transition:background .2s}
.hdr-pub:hover{background:#F25C00}
.hdr-pub svg{flex:0 0 auto}
.hdr-user__me{display:flex;align-items:center;gap:8px;height:40px;padding:0 12px 0 4px;border:1px solid var(--line);border-radius:20px;background:#fff;font-family:inherit;font-size:14px;color:var(--ink);cursor:pointer;transition:border-color .2s,background .2s}
.hdr-user__me:hover,.hdr-user.is-open .hdr-user__me{border-color:var(--primary);background:var(--blue-bg)}
.hdr-user__avatar{display:flex;align-items:center;justify-content:center;flex:0 0 30px;width:30px;height:30px;border-radius:15px;background:var(--primary);color:#fff;font-size:13px;font-weight:600}
.hdr-user__name{max-width:104px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.hdr-user__caret{flex:0 0 10px;transition:transform .2s}
.hdr-user.is-open .hdr-user__caret{transform:rotate(180deg)}
.hdr-user__menu{position:absolute;right:0;top:calc(100% + 8px);z-index:1200;min-width:170px;padding:6px;display:flex;flex-direction:column;background:#fff;border:1px solid var(--line);border-radius:10px;box-shadow:0 12px 32px rgba(11,27,51,.14)}
.hdr-user__menu[hidden]{display:none}
.hdr-user__menu a{display:block;padding:8px 12px;border-radius:6px;font-size:13px;color:var(--ink-2);white-space:nowrap}
.hdr-user__menu a:hover{background:#F2F6FF;color:var(--primary)}
.hdr-user__menu .hdr-user__sep{height:1px;margin:5px 8px;background:var(--line-soft)}
.hdr-user__menu .hdr-user__out{color:var(--red)}
.hdr-user__menu .hdr-user__out:hover{background:var(--red-bg);color:var(--red)}
.hdr-user__sum{display:flex;flex-direction:column;gap:3px;padding:9px 12px 10px}
.hdr-user__sum b{font-size:14px;font-weight:600;color:var(--ink)}
.hdr-user__sum span{font-size:12px;color:var(--muted)}

/* 未登录时个人中心类页面顶部的说明条 */
.jk-guest-bar{display:flex;align-items:center;gap:14px;margin:20px 120px -16px;padding:12px 16px;border:1px solid #B9CBE9;border-radius:10px;background:var(--blue-bg);font-size:13px;line-height:1.6;color:var(--primary)}
.jk-guest-bar > span:first-child{flex:1;min-width:0}
.jk-guest-bar .sp{flex:0 0 0}
.jk-guest-bar b{font-weight:600}
.jk-guest-bar .go{flex:0 0 auto;height:32px;padding:0 16px;border:0;border-radius:16px;background:var(--primary);color:#fff;font-family:inherit;font-size:13px;font-weight:500;cursor:pointer;white-space:nowrap}
.jk-guest-bar .go:hover{background:#1547B8}

/* 因登录 IP 策略被踢下线（v3.11）：这不是「没登录」，而是「登录被拒」，用警示色区分，
   并且文案必须说清原因 —— 只显示「请重新登录」的话，用户会一直重试、一直失败。 */
.jk-guest-bar.is-warn{border-color:#F2C879;background:#FFF8EC;color:#B54708}
.jk-guest-bar.is-warn .go{background:#B54708}
.jk-guest-bar.is-warn .go:hover{background:#93400A}

/* ============================================================
   会员登录弹层（头部「登录」、注册页「立即登录」共用）
   原样式只写在 register.html 里，现在全站头部都能唤起，故上移到公共样式表
   ============================================================ */
.jk-modal{position:fixed;inset:0;background:rgba(11,27,51,.45);z-index:10001;display:flex;align-items:center;justify-content:center}
.jk-modal .box{width:380px;background:#fff;border-radius:14px;padding:26px 26px 22px;display:flex;flex-direction:column;gap:16px;box-shadow:0 24px 60px rgba(11,27,51,.28)}
.jk-modal h3{font-size:18px;font-weight:700;color:var(--ink)}
.jk-modal p{font-size:13px;color:var(--muted);margin-top:-8px;line-height:1.6}
.jk-modal .fld{display:flex;flex-direction:column;gap:8px}
.jk-modal .fld label{font-size:13px;font-weight:500;color:var(--ink-2)}
.jk-modal .fld input{width:100%;height:44px;padding:0 14px;border:1px solid var(--line);border-radius:8px;font-family:inherit;font-size:14px;color:var(--ink);outline:0}
.jk-modal .fld input:focus{border-color:var(--primary)}
.jk-modal .acts{display:flex;gap:12px}
.jk-modal .acts button{flex:1;height:44px;border-radius:8px;font-family:inherit;font-size:14px;font-weight:500;cursor:pointer}
.jk-modal .ghost{border:1px solid var(--line);background:#fff;color:var(--ink-2)}
.jk-modal .solid{border:0;background:var(--primary);color:#fff}
.jk-modal .solid[disabled]{opacity:.6;cursor:default}
.jk-modal .msg{font-size:12px;color:var(--red);min-height:16px;margin-top:-8px}
.jk-modal .modal-foot{font-size:13px;color:var(--muted);text-align:center}
.jk-modal .modal-foot a{color:var(--primary);font-weight:500}
/* 发布需求弹窗（v3.15）：字段比登录多，加宽盒身、补 textarea / select / 双列排布 */
.jk-modal .box.wide{width:560px;max-height:86vh;overflow:auto;padding:28px 30px 24px}
.jk-modal .fld textarea{width:100%;min-height:88px;padding:11px 14px;border:1px solid var(--line);border-radius:8px;
  font-family:inherit;font-size:14px;line-height:1.6;color:var(--ink);outline:0;resize:vertical}
.jk-modal .fld textarea:focus{border-color:var(--primary)}
.jk-modal .fld select{width:100%;height:44px;padding:0 12px;border:1px solid var(--line);border-radius:8px;
  font-family:inherit;font-size:14px;color:var(--ink);outline:0;background:#fff;cursor:pointer}
.jk-modal .fld select:focus{border-color:var(--primary)}
.jk-modal .fld-row{display:flex;gap:12px}
.jk-modal .fld-row .fld{flex:1;min-width:0}
.jk-modal .fld .opt{font-weight:400;color:var(--muted);font-size:12px;margin-left:4px}
.jk-modal .form-note{font-size:12px;color:var(--muted);line-height:1.7;background:var(--bg);border-radius:8px;padding:10px 14px}

/* ===== 会员私有页的未登录门（v3.13）========================================= */
/*  我的需求 / 收藏机构 / 发票中心 的 HTML 里原本躺着设计稿示例行，数据由接口回填。
     这些接口自 v3.13 起未登录一律 401，若不主动接管，访客看到的就是假数据。
     assets/api.js 的 memberPageGate() 会用这段样式替换掉示例行。 */
.jk-gate-row{display:flex;align-items:center;justify-content:center;gap:14px;flex-wrap:wrap;
  padding:34px 20px;color:#667085;font-size:14px;line-height:1.7;text-align:center}
.jk-gate-text{color:#667085}
.jk-gate-btn{border:0;border-radius:18px;background:#1A56DB;color:#fff;font-family:inherit;
  font-size:13px;font-weight:500;padding:8px 18px;cursor:pointer}
.jk-gate-btn:hover{background:#1648B8}

/* 登录后数据为空的空态（v3.13）：与登录门同一套视觉语言，但不带按钮 */
.jk-empty-row{display:flex;align-items:center;justify-content:center;gap:8px;
  padding:28px 20px;color:#667085;font-size:14px;line-height:1.7;text-align:center}
.jk-empty-row a{color:#1A56DB}
