/* ============================================================
   厦门市创业创新协会官网  v1.0
   设计基调：墨绿 + 鎏金 + 米白，公信力优先，克制的东方现代感
   ============================================================ */
:root {
  --ink: #10201c;
  --ink-2: #24332e;
  --ink-3: #3a4b45;
  --muted: #6f7d78;
  --line: #e7e2d6;
  --line-2: #f0ece2;
  --cream: #fbf9f3;
  --cream-2: #f5f1e7;
  --gold: #a8853f;
  --gold-2: #c9a86a;
  --gold-3: #f0e2c4;
  --teal: #2c5a50;
  --teal-2: #3d7a6c;
  --red: #b4453a;
  --radius: 14px;
  --radius-sm: 8px;
  --shadow: 0 1px 2px rgba(16, 32, 28, .04), 0 12px 32px -18px rgba(16, 32, 28, .28);
  --shadow-lg: 0 24px 60px -30px rgba(16, 32, 28, .35);
  --font: "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei", "Noto Sans SC", system-ui, -apple-system, sans-serif;
  --serif: "Songti SC", "Noto Serif SC", "Source Han Serif SC", Georgia, serif;
}

* { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; scroll-behavior: smooth; }
body {
  margin: 0; font-family: var(--font); color: var(--ink);
  background: #fff; font-size: 15px; line-height: 1.75;
  -webkit-font-smoothing: antialiased;
}
img { max-width: 100%; display: block; }
a { color: var(--teal); text-decoration: none; transition: color .18s; }
a:hover { color: var(--gold); }
h1, h2, h3, h4 { margin: 0; font-weight: 600; line-height: 1.35; letter-spacing: -.01em; }
p { margin: 0 0 1em; }
ul, ol { margin: 0 0 1em; padding-left: 1.3em; }
mark { background: #fdf0cf; color: var(--ink); padding: 0 2px; border-radius: 2px; }
hr { border: 0; border-top: 1px solid var(--line); margin: 28px 0; }

.container { width: min(1200px, 92%); margin: 0 auto; }
.container-narrow { width: min(880px, 92%); margin: 0 auto; }

/* 内容 + 侧栏两栏（v1.21.10）
   原先 agent-join / pay 把两栏写在视图的内联 style 上，媒体查询压不过内联样式，
   窄屏会硬挤成两列。收成一个类，900px 以下自动堆叠。 */
.g-main-side { display: grid; grid-template-columns: minmax(0,1.6fr) minmax(0,1fr); gap: 22px; align-items: start; }
@media (max-width: 900px) {
  .g-main-side { grid-template-columns: minmax(0,1fr); gap: 18px; }
}

/* ---------------- 顶部 ---------------- */
.topbar {
  background: var(--ink); color: #c8d2ce; font-size: 12.5px; letter-spacing: .02em;
}
.topbar .container { display: flex; align-items: center; justify-content: space-between; height: 38px; }
.topbar a { color: #c8d2ce; }
.topbar a:hover { color: var(--gold-2); }
.topbar-links { display: flex; gap: 18px; align-items: center; }
.topbar-links .dot { opacity: .3; }
.topbar-links .hl { color: var(--gold-2); }

.header { background: rgba(255,255,255,.94); backdrop-filter: saturate(160%) blur(10px); border-bottom: 1px solid var(--line-2); position: sticky; top: 0; z-index: 60; }
.header-inner { display: flex; align-items: center; justify-content: space-between; height: 78px; gap: 24px; }
.logo { display: flex; align-items: center; gap: 12px; }
.logo-mark {
  width: 42px; height: 42px; border-radius: 10px; flex: 0 0 auto;
  background: linear-gradient(140deg, var(--teal), var(--ink));
  color: var(--gold-2); display: grid; place-items: center;
  font-family: var(--serif); font-size: 20px; letter-spacing: -.04em;
  box-shadow: inset 0 0 0 1px rgba(201,168,106,.35);
}
.logo-text b { display: block; font-size: 17px; letter-spacing: .02em; font-weight: 600; color: var(--ink); }
.logo-text span { display: block; font-size: 10.5px; letter-spacing: .16em; color: var(--muted); text-transform: uppercase; }

.nav { display: flex; align-items: center; gap: 2px; }
/* v1.21.3：一级菜单增至 9 项（新增「创新服务」），左右内边距由 13px 收到 11px，
   9 项总宽约 719px，在 1200 容器里仍放得下；下划线跟着收，避免压到文字。 */
.nav > a, .nav > .nav-item > a {
  display: block; padding: 10px 11px; font-size: 14.5px; color: var(--ink-2);
  border-radius: 8px; white-space: nowrap; position: relative;
}
.nav > a:hover, .nav > .nav-item > a:hover { color: var(--gold); background: var(--cream); }
.nav > a.active, .nav > .nav-item > a.active { color: var(--gold); font-weight: 600; }
.nav > a.active::after, .nav > .nav-item > a.active::after {
  content: ""; position: absolute; left: 11px; right: 11px; bottom: 2px; height: 2px;
  background: linear-gradient(90deg, var(--gold-2), transparent);
}
.nav-item { position: relative; }
.nav-drop {
  position: absolute; top: 100%; left: 0; min-width: 168px; background: #fff;
  border: 1px solid var(--line); border-radius: 12px; box-shadow: var(--shadow);
  padding: 6px; opacity: 0; visibility: hidden; transform: translateY(6px);
  transition: .2s ease; z-index: 70;
  /* v1.21.4：下拉按视口限高并内部滚动。
     原来不限高，「创业服务」长到 17 行 / 5 组后，最后一组在 1366×768 上
     直接落到窗口外，鼠标移不过去，等于没有入口。160px 是顶栏 + 导航的实测高度。 */
  max-height: calc(100vh - 160px); overflow-y: auto; overscroll-behavior: contain;
}
.nav-drop::-webkit-scrollbar { width: 6px; }
.nav-drop::-webkit-scrollbar-thumb { background: #d8dcd4; border-radius: 3px; }
.nav-drop::-webkit-scrollbar-track { background: transparent; }
.nav-item:hover .nav-drop { opacity: 1; visibility: visible; transform: translateY(0); }
.nav-drop a { display: block; padding: 8px 12px; font-size: 13.5px; color: var(--ink-2); border-radius: 7px; }
.nav-drop a:hover { background: var(--cream); color: var(--gold); }

/* 下拉分组标题：让「创业服务」这类多系统合并的菜单，能看出每条属于哪个模块 */
.nav-drop-head {
  padding: 10px 12px 4px; font-size: 11px; letter-spacing: .1em;
  color: var(--gold); font-weight: 600; white-space: nowrap;
}
.nav-drop-head:not(:first-child) {
  margin-top: 4px; border-top: 1px solid var(--line); padding-top: 12px;
}

.header-actions { display: flex; align-items: center; gap: 10px; }
.nav-toggle { display: none; }

/* ---------------- 按钮 ---------------- */
.btn {
  display: inline-flex; align-items: center; justify-content: center; gap: 7px;
  height: 42px; padding: 0 20px; border-radius: 999px; font-size: 14px; font-weight: 500;
  border: 1px solid transparent; cursor: pointer; transition: .2s; white-space: nowrap;
  font-family: inherit; background: transparent; color: var(--ink);
}
.btn-primary { background: linear-gradient(135deg, var(--ink), var(--teal)); color: #fff; box-shadow: 0 10px 24px -14px rgba(16,32,28,.8); }
.btn-primary:hover { color: #fff; transform: translateY(-1px); box-shadow: 0 14px 28px -14px rgba(16,32,28,.75); }
.btn-gold { background: linear-gradient(135deg, var(--gold-2), var(--gold)); color: #fff; }
.btn-gold:hover { color: #fff; transform: translateY(-1px); }
.btn-outline { border-color: var(--line); color: var(--ink-2); background: #fff; }
.btn-outline:hover { border-color: var(--gold-2); color: var(--gold); }
.btn-ghost { color: var(--ink-2); }
.btn-ghost:hover { background: var(--cream); color: var(--gold); }
.btn-sm { height: 34px; padding: 0 14px; font-size: 13px; }
.btn-xs { height: 28px; padding: 0 10px; font-size: 12px; border-radius: 7px; }
.btn-block { width: 100%; }
.btn-danger { background: #fdf1ef; color: var(--red); border-color: #f6dcd7; }
.btn-danger:hover { background: var(--red); color: #fff; }
.btn[disabled], .btn.disabled { opacity: .5; cursor: not-allowed; }

/* ---------------- 首页主视觉 ---------------- */
.hero { position: relative; overflow: hidden; background: radial-gradient(120% 140% at 12% 0%, #1b3b33 0%, #10201c 46%, #0b1512 100%); color: #eef3f0; }
.hero::before {
  content: ""; position: absolute; inset: 0; opacity: .5;
  background-image: linear-gradient(rgba(201,168,106,.10) 1px, transparent 1px),
                    linear-gradient(90deg, rgba(201,168,106,.10) 1px, transparent 1px);
  background-size: 64px 64px;
  mask-image: radial-gradient(80% 70% at 30% 20%, #000 0%, transparent 75%);
}
.hero::after {
  content: ""; position: absolute; right: -160px; top: -180px; width: 560px; height: 560px;
  border-radius: 50%; background: radial-gradient(circle, rgba(201,168,106,.22), transparent 62%);
}
.hero-inner { position: relative; z-index: 2; padding: 72px 0 64px; display: grid; grid-template-columns: minmax(0,1.25fr) minmax(0,.95fr); gap: 48px; align-items: center; }
.hero-tag { display: inline-flex; align-items: center; gap: 8px; font-size: 12.5px; letter-spacing: .12em; color: var(--gold-2); border: 1px solid rgba(201,168,106,.4); border-radius: 999px; padding: 5px 14px; margin-bottom: 22px; }
.hero h1 { font-size: clamp(28px, 3.6vw, 46px); letter-spacing: -.02em; line-height: 1.25; font-family: var(--serif); font-weight: 600; }
.hero h1 em { font-style: normal; color: var(--gold-2); }
.hero-sub { margin-top: 18px; color: #b9c6c1; font-size: 15.5px; max-width: 34em; }
.hero-actions { margin-top: 32px; display: flex; gap: 12px; flex-wrap: wrap; }
.hero .btn-outline { background: transparent; border-color: rgba(255,255,255,.28); color: #e8efec; }
.hero .btn-outline:hover { border-color: var(--gold-2); color: var(--gold-2); }
.hero-search { margin-top: 26px; display: flex; max-width: 520px; background: rgba(255,255,255,.08); border: 1px solid rgba(255,255,255,.16); border-radius: 999px; padding: 5px; }
.hero-search input { flex: 1; background: transparent; border: 0; outline: 0; color: #fff; padding: 0 16px; font-size: 14px; font-family: inherit; }
.hero-search input::placeholder { color: #94a49f; }

.hero-panel { background: rgba(255,255,255,.055); border: 1px solid rgba(201,168,106,.28); border-radius: 18px; padding: 22px; backdrop-filter: blur(8px); }
.hero-panel h4 { font-size: 13px; letter-spacing: .1em; color: var(--gold-2); font-weight: 500; margin-bottom: 14px; }
.hero-q { display: flex; gap: 10px; align-items: flex-start; padding: 10px 0; border-bottom: 1px dashed rgba(255,255,255,.12); font-size: 13.5px; color: #d6e0dc; }
.hero-q:last-of-type { border-bottom: 0; }
.hero-q i { font-style: normal; color: var(--gold-2); font-family: var(--serif); }
.hero-q:hover { color: #fff; }
.hero-stat { display: flex; gap: 26px; margin-top: 16px; padding-top: 16px; border-top: 1px solid rgba(255,255,255,.12); }
.hero-stat b { display: block; font-size: 22px; font-family: var(--serif); color: var(--gold-2); }
.hero-stat span { font-size: 11.5px; color: #93a39d; letter-spacing: .06em; }

/* ---------------- 通用区块 ---------------- */
.section { padding: 68px 0; }
.section-cream { background: var(--cream); }
.section-tight { padding: 44px 0; }
.section-head { display: flex; align-items: flex-end; justify-content: space-between; gap: 24px; margin-bottom: 32px; }
.section-head .eyebrow { font-size: 11.5px; letter-spacing: .18em; color: var(--gold); text-transform: uppercase; margin-bottom: 8px; }
.section-head h2 { font-size: clamp(22px, 2.2vw, 29px); font-family: var(--serif); }
.section-head p { color: var(--muted); font-size: 14px; margin: 8px 0 0; }
.section-head .more { font-size: 13.5px; color: var(--muted); white-space: nowrap; }
.section-head .more:hover { color: var(--gold); }

.grid { display: grid; gap: 20px; }
.grid-2 { grid-template-columns: repeat(2, minmax(0,1fr)); }
.grid-3 { grid-template-columns: repeat(3, minmax(0,1fr)); }
.grid-4 { grid-template-columns: repeat(4, minmax(0,1fr)); }
.grid-5 { grid-template-columns: repeat(5, minmax(0,1fr)); }

.card { background: #fff; border: 1px solid var(--line); border-radius: var(--radius); padding: 22px; transition: .22s; }
.card:hover { border-color: var(--gold-3); box-shadow: var(--shadow); transform: translateY(-2px); }
.card h3 { font-size: 16.5px; margin-bottom: 8px; }
.card .meta { font-size: 12.5px; color: var(--muted); }
.card-flat { background: #fff; border: 1px solid var(--line); border-radius: var(--radius); }
.card-top-line { border-top: 2px solid var(--gold-2); }

.eyebrow { font-size: 11.5px; letter-spacing: .18em; color: var(--gold); text-transform: uppercase; }
.text-muted { color: var(--muted); }
.text-sm { font-size: 13px; }
.text-xs { font-size: 12px; }
.mt-0 { margin-top: 0; } .mt-8 { margin-top: 8px; } .mt-16 { margin-top: 16px; } .mt-24 { margin-top: 24px; } .mt-32 { margin-top: 32px; }
.mb-0 { margin-bottom: 0; } .mb-8 { margin-bottom: 8px; } .mb-16 { margin-bottom: 16px; } .mb-24 { margin-bottom: 24px; }
.flex { display: flex; } .between { justify-content: space-between; } .center { align-items: center; } .wrap { flex-wrap: wrap; }
.gap-8 { gap: 8px; } .gap-12 { gap: 12px; } .gap-16 { gap: 16px; }
.w-100 { width: 100%; }
.text-right { text-align: right; }

/* 卡片列表 */
.news-list { display: grid; gap: 0; }
.news-item { display: grid; grid-template-columns: 92px minmax(0,1fr) auto; gap: 20px; align-items: center; padding: 20px 0; border-bottom: 1px solid var(--line-2); }
.news-item:first-child { padding-top: 0; }
.news-date { text-align: center; border-right: 1px solid var(--line); padding-right: 16px; }
.news-date b { display: block; font-size: 24px; font-family: var(--serif); color: var(--ink); line-height: 1.1; }
.news-date span { font-size: 11.5px; color: var(--muted); letter-spacing: .04em; }
.news-body h3 { font-size: 16px; margin-bottom: 6px; }
.news-body h3 a { color: var(--ink); }
.news-body h3 a:hover { color: var(--gold); }
.news-body p { margin: 0; font-size: 13.5px; color: var(--muted); }
.news-arrow { color: var(--line); font-size: 18px; }
.news-item:hover .news-arrow { color: var(--gold); }

.article-card { overflow: hidden; padding: 0; display: flex; flex-direction: column; }
.article-card .thumb { aspect-ratio: 16/9; background: linear-gradient(135deg, var(--cream-2), #eee7d8); overflow: hidden; }
.article-card .thumb img { width: 100%; height: 100%; object-fit: cover; transition: .5s; }
.article-card:hover .thumb img { transform: scale(1.04); }
.article-card .body { padding: 18px 20px 20px; flex: 1; display: flex; flex-direction: column; }
.article-card h3 { font-size: 15.5px; line-height: 1.55; margin-bottom: 8px; }
.article-card h3 a { color: var(--ink); }
.article-card:hover h3 a { color: var(--gold); }
.article-card p { font-size: 13px; color: var(--muted); margin: 0 0 12px; }
.article-card .foot { margin-top: auto; font-size: 12px; color: var(--muted); display: flex; justify-content: space-between; }

/* 服务入口 */
.service-tile { position: relative; padding: 24px; border-radius: var(--radius); border: 1px solid var(--line); background: #fff; overflow: hidden; }
.service-tile::after { content: ""; position: absolute; right: -30px; bottom: -40px; width: 110px; height: 110px; border-radius: 50%; background: var(--cream-2); transition: .3s; }
.service-tile:hover::after { transform: scale(1.5); }
.service-tile .ic { width: 40px; height: 40px; border-radius: 10px; display: grid; place-items: center; background: var(--cream-2); color: var(--teal); font-size: 18px; margin-bottom: 14px; position: relative; z-index: 1; }
.service-tile h3 { font-size: 16px; margin-bottom: 6px; position: relative; z-index: 1; }
.service-tile p { font-size: 13px; color: var(--muted); margin: 0; position: relative; z-index: 1; }

/* 政策卡 */
.policy-card { padding: 20px 22px; }
.policy-card .top { display: flex; gap: 8px; align-items: center; margin-bottom: 10px; flex-wrap: wrap; }
.policy-card h3 { font-size: 15.5px; margin-bottom: 8px; }
.policy-card h3 a { color: var(--ink); }
.policy-card h3 a:hover { color: var(--gold); }
.policy-card .dl { display: flex; gap: 6px; align-items: center; font-size: 12.5px; color: var(--muted); }
.policy-card .dl.urgent { color: var(--red); }

/* 徽标 */
.badge { display: inline-flex; align-items: center; height: 22px; padding: 0 9px; border-radius: 6px; font-size: 11.5px; line-height: 1; letter-spacing: .02em; background: var(--cream-2); color: var(--ink-3); white-space: nowrap; }
.badge-gold { background: #fbf1dc; color: #8a6a2a; }
.badge-green { background: #e9f3ee; color: #27614f; }
.badge-red { background: #fceeeb; color: #a13a30; }
.badge-blue { background: #eaf0f7; color: #2f5580; }
.badge-gray { background: #f2f2ee; color: #6b6b62; }
.badge-dark { background: var(--ink); color: var(--gold-2); }

/* ---------------- 页面头部 ---------------- */
.page-head { background: linear-gradient(180deg, var(--cream), #fff); border-bottom: 1px solid var(--line-2); padding: 42px 0 34px; }
.page-head .crumb { font-size: 12.5px; color: var(--muted); margin-bottom: 12px; }
.page-head .crumb a { color: var(--muted); }
.page-head .crumb a:hover { color: var(--gold); }
.page-head h1 { font-size: clamp(24px, 2.6vw, 32px); font-family: var(--serif); }
.page-head p { color: var(--muted); margin: 10px 0 0; font-size: 14px; max-width: 52em; }
.page-head .head-actions { margin-top: 18px; display: flex; gap: 10px; flex-wrap: wrap; }

/* ============ 业务识别色（v1.21.9） ============
   40 个业务内页此前共用同一张米白 page-head，政策/导师/赛事/地图/会员
   长得一模一样。现在视图只需挂一个 data-accent 属性，识别色、顶栏、
   右下角宋体水印字全部由这里的 CSS 派生；没挂属性的页面（登录、搜索、
   单页等功能页）保持原样。两种首页模板（经典/门户）下内页共用这份样式。 */
.page-head { position: relative; overflow: hidden; }
.page-head > .container { position: relative; z-index: 1; }
.page-head[data-accent] { background: linear-gradient(180deg, var(--ph-tint, var(--cream)), #fff 84%); }
.page-head[data-accent]::before {
  content: ""; position: absolute; left: 0; right: 0; top: 0; height: 3px; z-index: 2;
  background: linear-gradient(90deg, var(--ph), var(--ph-2, var(--ph)) 55%, transparent);
}
.page-head[data-accent]::after {
  content: var(--ph-glyph, "");
  position: absolute; right: 2.5%; bottom: -.16em; z-index: 0;
  font-family: var(--serif); font-weight: 700; line-height: 1;
  font-size: clamp(88px, 11vw, 148px);
  color: var(--ph); opacity: .085;
  pointer-events: none; user-select: none;
}
.page-head[data-accent] .crumb a:hover { color: var(--ph); }
.page-head[data-accent="policy"]     { --ph:#1658a0; --ph-2:#7ba3d4; --ph-tint:#eef3fa; --ph-glyph:"策"; }
.page-head[data-accent="mentor"]     { --ph:#2c6e5f; --ph-2:#8ab8ac; --ph-tint:#edf5f2; --ph-glyph:"导"; }
.page-head[data-accent="event"]      { --ph:#b4453a; --ph-2:#d99a92; --ph-tint:#faf0ee; --ph-glyph:"赛"; }
.page-head[data-accent="map"]        { --ph:#1f6f8b; --ph-2:#8cbecd; --ph-tint:#edf5f7; --ph-glyph:"图"; }
.page-head[data-accent="member"]     { --ph:#a8853f; --ph-2:#d4bc8b; --ph-tint:#faf6ec; --ph-glyph:"会"; }
.page-head[data-accent="project"]    { --ph:#6b4fa0; --ph-2:#b3a2d4; --ph-tint:#f4f1fa; --ph-glyph:"项"; }
.page-head[data-accent="news"]       { --ph:#3a4b45; --ph-2:#9aa9a3; --ph-tint:#f2f4f3; --ph-glyph:"资"; }
.page-head[data-accent="ai"]         { --ph:#a8853f; --ph-2:#d4bc8b; --ph-tint:#faf6ec; --ph-glyph:"AI"; }
@media (max-width: 760px) {
  .page-head[data-accent]::after { font-size: 72px; right: 4%; opacity: .07; }
}

/* ---------------- 内容详情 ---------------- */
.article-wrap { display: grid; grid-template-columns: minmax(0,1fr) 300px; gap: 44px; padding: 48px 0 72px; }
.article-main h1 { font-size: clamp(23px, 2.4vw, 30px); font-family: var(--serif); line-height: 1.45; margin-bottom: 16px; }
.article-meta { display: flex; flex-wrap: wrap; gap: 16px; font-size: 12.5px; color: var(--muted); padding-bottom: 18px; border-bottom: 1px solid var(--line-2); margin-bottom: 26px; }
.prose { font-size: 15.5px; line-height: 1.95; color: #23302c; }
.prose h3 { font-size: 18px; margin: 28px 0 12px; padding-left: 12px; border-left: 3px solid var(--gold-2); }
.prose h4 { font-size: 16px; margin: 22px 0 10px; }
.prose p { margin: 0 0 14px; }
.prose ul, .prose ol { margin: 0 0 16px; padding-left: 1.4em; }
.prose li { margin-bottom: 6px; }
.prose img { border-radius: 10px; margin: 18px 0; }
.prose table { width: 100%; border-collapse: collapse; margin: 18px 0; font-size: 14px; }
.prose th, .prose td { border: 1px solid var(--line); padding: 10px 12px; text-align: left; }
.prose th { background: var(--cream); font-weight: 600; }
.prose blockquote { margin: 18px 0; padding: 14px 18px; background: var(--cream); border-left: 3px solid var(--gold-2); color: var(--ink-3); font-size: 14px; border-radius: 0 8px 8px 0; }
.prose a { border-bottom: 1px solid var(--gold-3); }
.prose th p, .prose td p { margin: 0; }
.prose th img, .prose td img { display: inline-block; margin: 4px 0; }
/* 宽表格横向滚动容器（rich() 自动给 table 包一层，采集来的政策表格用得上） */
.tbl-wrap { margin: 18px 0; overflow-x: auto; -webkit-overflow-scrolling: touch; }
.tbl-wrap table { margin: 0; }
.tbl-wrap::-webkit-scrollbar { height: 6px; }
.tbl-wrap::-webkit-scrollbar-thumb { background: #d8d2c4; border-radius: 3px; }
@media (max-width: 820px) {
  .prose table { font-size: 13px; }
  .prose th, .prose td { padding: 8px 10px; }
}

/* .prose 的小号版：卡片里放服务内容、权益清单时用，避免正文尺寸把卡片撑爆 */
.prose-sm { font-size: 13px; line-height: 1.75; color: var(--ink-3); }
.prose-sm ul, .prose-sm ol { margin: 0; padding-left: 1.15em; }
.prose-sm li { margin-bottom: 4px; }
.prose-sm p { margin: 0 0 6px; }
.prose-sm p:last-child, .prose-sm ul:last-child, .prose-sm ol:last-child { margin-bottom: 0; }
.prose-sm strong, .prose-sm b { color: var(--ink-2); }

.side-card { background: #fff; border: 1px solid var(--line); border-radius: var(--radius); padding: 20px; margin-bottom: 18px; }
.side-card h4 { font-size: 14px; margin-bottom: 14px; padding-bottom: 10px; border-bottom: 1px solid var(--line-2); }
.side-list { list-style: none; padding: 0; margin: 0; }
.side-list li { padding: 9px 0; border-bottom: 1px dashed var(--line-2); font-size: 13.5px; }
.side-list li:last-child { border: 0; }
.side-list a { color: var(--ink-2); display: block; }
.side-list a:hover { color: var(--gold); }

.notice-box { background: #fdf8ec; border: 1px solid #f0e2c4; border-radius: 10px; padding: 14px 16px; font-size: 13px; color: #7a5f28; line-height: 1.7; }
.notice-box b { color: #6b5120; }

/* ---------------- 表单 ---------------- */
.form-row { margin-bottom: 16px; }
.form-row label { display: block; font-size: 13px; color: var(--ink-2); margin-bottom: 6px; font-weight: 500; }
.form-row .help { font-size: 12px; color: var(--muted); margin-top: 5px; }
.form-row .req { color: var(--red); margin-left: 2px; }
.input, .select, .textarea {
  width: 100%; border: 1px solid var(--line); border-radius: var(--radius-sm);
  padding: 10px 13px; font-size: 14px; font-family: inherit; color: var(--ink);
  background: #fff; outline: 0; transition: .18s;
}
.input:focus, .select:focus, .textarea:focus { border-color: var(--gold-2); box-shadow: 0 0 0 3px rgba(201,168,106,.14); }
.textarea { resize: vertical; min-height: 90px; line-height: 1.7; }
.select { appearance: none; background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='6'%3E%3Cpath d='M0 0l5 6 5-6z' fill='%236f7d78'/%3E%3C/svg%3E"); background-repeat: no-repeat; background-position: right 14px center; padding-right: 34px; }
.form-grid { display: grid; grid-template-columns: minmax(0,1fr) minmax(0,1fr); gap: 0 18px; }
.form-grid .full { grid-column: 1 / -1; }
.checkline { display: flex; gap: 18px; flex-wrap: wrap; font-size: 13.5px; }
.checkline label { display: inline-flex; align-items: center; gap: 6px; margin: 0; font-weight: 400; }
.form-actions { display: flex; gap: 12px; align-items: center; margin-top: 22px; }

.filter-bar { display: flex; gap: 10px; flex-wrap: wrap; align-items: center; margin-bottom: 24px; padding: 14px 16px; background: var(--cream); border-radius: 10px; }
.filter-bar .select, .filter-bar .input { width: auto; min-width: 140px; height: 36px; padding: 0 12px; font-size: 13px; }
.filter-bar .select { padding-right: 30px; }

/* ---------------- 列表/表格 ---------------- */
.table { width: 100%; border-collapse: collapse; font-size: 13.5px; }
.table th, .table td { padding: 12px 14px; text-align: left; border-bottom: 1px solid var(--line-2); vertical-align: middle; }
.table th { background: var(--cream); font-weight: 600; font-size: 12.5px; color: var(--ink-3); letter-spacing: .02em; white-space: nowrap; }
.table tbody tr:hover { background: #fcfbf7; }
.table td .row-actions { display: flex; gap: 8px; }

/* ---------------- 分页 ---------------- */
.pager { display: flex; gap: 6px; justify-content: center; align-items: center; margin-top: 34px; flex-wrap: wrap; }
.pager-btn { min-width: 36px; height: 36px; padding: 0 12px; display: inline-flex; align-items: center; justify-content: center; border: 1px solid var(--line); border-radius: 8px; font-size: 13px; color: var(--ink-2); background: #fff; }
a.pager-btn:hover { border-color: var(--gold-2); color: var(--gold); }
.pager-btn.active { background: var(--ink); color: #fff; border-color: var(--ink); }
.pager-btn.disabled { opacity: .4; }
.pager-gap { color: var(--muted); padding: 0 4px; }

/* ---------------- 统计 ---------------- */
.stat-row { display: grid; grid-template-columns: repeat(4, minmax(0,1fr)); gap: 1px; background: var(--line); border: 1px solid var(--line); border-radius: var(--radius); overflow: hidden; }
.stat-cell { background: #fff; padding: 24px 22px; }
.stat-cell b { display: block; font-size: 30px; font-family: var(--serif); color: var(--ink); line-height: 1.2; }
.stat-cell b em { font-style: normal; font-size: 14px; color: var(--muted); margin-left: 4px; }
.stat-cell span { font-size: 12.5px; color: var(--muted); letter-spacing: .04em; }

/* ---------------- 地图 ---------------- */
.map-shell { position: relative; border-radius: var(--radius); overflow: hidden; border: 1px solid var(--line); background: var(--cream); }
#map { width: 100%; height: 620px; background: var(--cream-2); }
.map-side { position: absolute; top: 16px; left: 16px; width: 290px; max-height: calc(100% - 32px); background: rgba(255,255,255,.97); border-radius: 12px; box-shadow: var(--shadow); display: flex; flex-direction: column; overflow: hidden; z-index: 5; }
.map-side-head { padding: 14px 16px 10px; border-bottom: 1px solid var(--line-2); }
.map-side-head b { font-size: 14px; }
.map-layers { padding: 10px 12px; display: flex; flex-wrap: wrap; gap: 6px; border-bottom: 1px solid var(--line-2); max-height: 132px; overflow: auto; }
.layer-chip { display: inline-flex; align-items: center; gap: 6px; font-size: 12px; padding: 4px 9px; border-radius: 999px; border: 1px solid var(--line); cursor: pointer; background: #fff; color: var(--ink-2); user-select: none; }
.layer-chip i { width: 8px; height: 8px; border-radius: 50%; display: inline-block; }
.layer-chip.on { border-color: var(--gold-2); background: #fdf8ec; color: #7a5f28; }
.map-list { overflow: auto; padding: 8px; flex: 1; }
.map-item { padding: 10px 10px; border-radius: 8px; cursor: pointer; border: 1px solid transparent; }
.map-item:hover, .map-item.on { background: var(--cream); border-color: var(--gold-3); }
.map-item b { display: block; font-size: 13px; font-weight: 600; }
.map-item span { font-size: 11.5px; color: var(--muted); }
.map-legend { position: absolute; right: 16px; bottom: 16px; background: rgba(255,255,255,.95); border-radius: 10px; padding: 10px 14px; font-size: 11.5px; color: var(--muted); box-shadow: var(--shadow); z-index: 5; }
.map-fallback { position: absolute; inset: 0; display: grid; place-items: center; background: linear-gradient(160deg, #f7f4ec, #eee9dc); }
.map-fallback svg { width: 100%; height: 100%; }

/* ---------------- 闽创100AI ---------------- */
.ai-hero { background: radial-gradient(120% 120% at 80% 0%, #1d3d35, #10201c 60%); color: #e9f0ed; padding: 54px 0 44px; }
.ai-hero h1 { font-family: var(--serif); font-size: clamp(24px, 3vw, 34px); }
.ai-hero p { color: #a9bab4; margin-top: 12px; }
.chat-shell { background: #fff; border: 1px solid var(--line); border-radius: var(--radius); box-shadow: var(--shadow); overflow: hidden; display: flex; flex-direction: column; height: 620px; }
.chat-head { padding: 14px 20px; border-bottom: 1px solid var(--line-2); display: flex; align-items: center; justify-content: space-between; background: var(--cream); }
.chat-head b { font-size: 14px; }
.chat-body { flex: 1; overflow: auto; padding: 22px; background: linear-gradient(180deg, #fdfcf8, #fff); }
.msg { display: flex; gap: 12px; margin-bottom: 20px; }
.msg .ava { width: 32px; height: 32px; border-radius: 9px; flex: 0 0 auto; display: grid; place-items: center; font-size: 12px; font-weight: 600; }
.msg.ai .ava { background: var(--ink); color: var(--gold-2); }
.msg.me .ava { background: var(--cream-2); color: var(--teal); }
.bubble { background: #fff; border: 1px solid var(--line-2); border-radius: 12px; padding: 13px 16px; font-size: 14.5px; line-height: 1.8; max-width: 76%; }
.msg.me { flex-direction: row-reverse; }
.msg.me .bubble { background: var(--teal); color: #fff; border-color: var(--teal); }
/* .msg .refs 已废弃：答案不再挂「参考资料」列表（v1.16.8）。若日后恢复出处展示，样式见 git 历史。 */
.chat-input { border-top: 1px solid var(--line-2); padding: 12px 16px; display: flex; gap: 10px; align-items: flex-end; background: #fff; }
.chat-input textarea { flex: 1; border: 1px solid var(--line); border-radius: 10px; padding: 10px 12px; font-family: inherit; font-size: 14px; resize: none; height: 44px; outline: 0; }
.chat-input textarea:focus { border-color: var(--gold-2); }
.quick-q { display: flex; gap: 8px; flex-wrap: wrap; padding: 0 16px 12px; }
.quick-q button { font-size: 12.5px; padding: 5px 11px; border-radius: 999px; border: 1px solid var(--line); background: #fff; cursor: pointer; color: var(--ink-2); font-family: inherit; }
.quick-q button:hover { border-color: var(--gold-2); color: var(--gold); }

.ai-fab { position: fixed; right: 26px; bottom: 26px; z-index: 80; display: flex; align-items: center; gap: 10px; height: 50px; padding: 0 20px; border-radius: 999px; background: linear-gradient(135deg, var(--ink), var(--teal)); color: #fff; box-shadow: 0 18px 36px -16px rgba(16,32,28,.65); font-size: 14px; }
.ai-fab:hover { color: var(--gold-2); transform: translateY(-2px); }

/* ---------------- 导师 / 会员卡 ---------------- */
.mentor-card { display: flex; gap: 16px; padding: 20px; }
.mentor-ava { width: 64px; height: 64px; border-radius: 14px; background: linear-gradient(140deg, var(--cream-2), #e8e1d1); flex: 0 0 auto; overflow: hidden; display: grid; place-items: center; font-family: var(--serif); font-size: 22px; color: var(--gold); }
.mentor-ava img { width: 100%; height: 100%; object-fit: cover; }
.mentor-card h3 { font-size: 16px; margin-bottom: 3px; }
.mentor-card .tagline { font-size: 12.5px; color: var(--muted); margin-bottom: 8px; }
.tag-list { display: flex; gap: 6px; flex-wrap: wrap; margin-top: 8px; }
.tag { font-size: 11.5px; padding: 3px 9px; border-radius: 5px; background: var(--cream); color: var(--ink-3); border: 1px solid var(--line-2); }

.member-card { padding: 20px; display: flex; flex-direction: column; gap: 10px; }
.member-logo { width: 46px; height: 46px; border-radius: 10px; background: var(--cream-2); display: grid; place-items: center; font-family: var(--serif); color: var(--teal); overflow: hidden; }
.member-logo img { width: 100%; height: 100%; object-fit: cover; }
.member-card h3 { font-size: 15.5px; }
.member-card .svc { font-size: 13px; color: var(--muted); }

/* ---------------- 认证/中心 ---------------- */
.center-wrap { display: grid; grid-template-columns: 232px minmax(0,1fr); gap: 32px; padding: 36px 0 72px; }
.center-nav { background: #fff; border: 1px solid var(--line); border-radius: var(--radius); padding: 10px; height: fit-content; position: sticky; top: 96px; }
.center-nav .who { padding: 12px; border-bottom: 1px solid var(--line-2); margin-bottom: 8px; }
.center-nav .who b { display: block; font-size: 14.5px; }
.center-nav .who span { font-size: 12px; color: var(--muted); }
.center-nav a { display: flex; align-items: center; justify-content: space-between; padding: 9px 12px; border-radius: 8px; font-size: 13.5px; color: var(--ink-2); }
.center-nav a:hover { background: var(--cream); color: var(--gold); }
.center-nav a.active { background: var(--ink); color: #fff; }
.center-nav a.active .badge { background: rgba(255,255,255,.16); color: #fff; }
/* 侧栏分组标题（v1.12.1：按身份分组，通用 / 会员与 GEO / 创业与陪跑 / 服务商） */
.center-nav-head { padding: 12px 12px 4px; font-size: 11px; letter-spacing: .1em; color: var(--muted); font-weight: 600; }
.center-nav-head:not(:first-child) { margin-top: 4px; border-top: 1px solid var(--line-2); padding-top: 12px; }
.center-body { min-width: 0; }
.panel { background: #fff; border: 1px solid var(--line); border-radius: var(--radius); margin-bottom: 20px; overflow: hidden; }
.panel-head { padding: 16px 22px; border-bottom: 1px solid var(--line-2); display: flex; align-items: center; justify-content: space-between; gap: 14px; background: #fff; }
.panel-head h3 { font-size: 15.5px; }
.panel-head .sub { font-size: 12.5px; color: var(--muted); margin-top: 3px; }
.panel-body { padding: 22px; }
.panel-body.tight { padding: 0; }

.progress-steps { display: flex; gap: 0; margin-bottom: 22px; }
.step { flex: 1; text-align: center; font-size: 12px; color: var(--muted); position: relative; padding-top: 26px; }
.step::before { content: ""; position: absolute; top: 8px; left: 50%; width: 10px; height: 10px; border-radius: 50%; background: var(--line); transform: translateX(-50%); z-index: 2; }
.step::after { content: ""; position: absolute; top: 12px; left: -50%; width: 100%; height: 2px; background: var(--line); }
.step:first-child::after { display: none; }
.step.done { color: var(--teal); }
.step.done::before { background: var(--teal); }
.step.done::after { background: var(--teal); }
.step.on { color: var(--gold); font-weight: 600; }
.step.on::before { background: var(--gold); box-shadow: 0 0 0 4px rgba(201,168,106,.18); }

.empty { text-align: center; padding: 54px 20px; color: var(--muted); font-size: 13.5px; }
.empty b { display: block; font-size: 15px; color: var(--ink-2); margin-bottom: 6px; }

/* ---------------- 页面底部 ---------------- */
.footer { background: var(--ink); color: #9aa8a3; padding: 56px 0 0; font-size: 13px; }
.footer-grid { display: grid; grid-template-columns: minmax(0,1.4fr) minmax(0,1fr) minmax(0,1fr) minmax(0,1.1fr); gap: 40px; padding-bottom: 40px; }
.footer h4 { color: #dfe7e4; font-size: 13.5px; margin-bottom: 16px; letter-spacing: .04em; }
.footer a { color: #9aa8a3; display: block; padding: 5px 0; font-size: 13px; }
.footer a:hover { color: var(--gold-2); }
.footer .brand b { color: #fff; font-size: 16px; font-family: var(--serif); display: block; margin-bottom: 10px; }
.footer .brand p { line-height: 1.9; font-size: 12.5px; color: #8b9a95; }
.footer-bottom { border-top: 1px solid rgba(255,255,255,.09); padding: 18px 0; display: flex; justify-content: space-between; gap: 20px; flex-wrap: wrap; font-size: 12px; color: #7c8a85; }
.footer-bottom a { display: inline; color: #7c8a85; }
.footer-social { display: flex; flex-wrap: wrap; gap: 4px 14px; margin: 0 0 12px; font-size: 11.5px; color: #8b9a95; }
.footer-qr { display: flex; align-items: center; gap: 10px; margin: 6px 0 14px; }
.footer-qr img { width: 74px; height: 74px; border-radius: 8px; background: #fff; padding: 4px; object-fit: contain; }
.footer-qr span { font-size: 11.5px; color: #8b9a95; line-height: 1.65; }

.footer-disclaimer { background: rgba(255,255,255,.04); border-radius: 8px; padding: 12px 14px; font-size: 11.5px; line-height: 1.8; color: #8b9a95; margin-top: 16px; }

/* ---------------- 工具 ---------------- */
.toast { position: fixed; left: 50%; top: 26px; transform: translateX(-50%); background: var(--ink); color: #fff; padding: 11px 20px; border-radius: 999px; font-size: 13.5px; z-index: 200; box-shadow: var(--shadow-lg); opacity: 0; pointer-events: none; transition: .25s; }
.toast.show { opacity: 1; }
.toast.err { background: var(--red); }

.alert { padding: 12px 16px; border-radius: 9px; font-size: 13.5px; margin-bottom: 18px; }
.alert-success { background: #eaf5ef; color: #24614e; border: 1px solid #cfe8db; }
.alert-error { background: #fceeeb; color: #a13a30; border: 1px solid #f6dad4; }
.alert-info { background: #f0f3f8; color: #2f5580; border: 1px solid #dde5f0; }

.resp-table { overflow-x: auto; }

/* ---------------- 行内弹层（评价 / 快捷操作） ---------------- */
.inline-pop { position: relative; display: inline-block; }
.inline-pop > summary { list-style: none; cursor: pointer; }
.inline-pop > summary::-webkit-details-marker { display: none; }
.inline-pop[open] > summary { background: var(--ink); color: #fff; border-color: var(--ink); }
.inline-pop .pop-body {
  position: absolute; right: 0; top: calc(100% + 8px); z-index: 40;
  width: 268px; background: #fff; border: 1px solid var(--line);
  border-radius: 12px; padding: 14px; box-shadow: 0 18px 42px rgba(16, 32, 28, 0.16);
}
.inline-pop .pop-body::before {
  content: ""; position: absolute; right: 20px; top: -6px;
  width: 10px; height: 10px; background: #fff; border-left: 1px solid var(--line);
  border-top: 1px solid var(--line); transform: rotate(45deg);
}
.inline-pop .pop-body label { display: block; font-size: 12px; color: var(--muted); margin-bottom: 6px; }
.inline-pop .pop-body .textarea { margin-bottom: 10px; font-size: 12.5px; }
.rate-row { display: flex; gap: 6px; margin-bottom: 10px; }
.rate-item {
  flex: 1; text-align: center; font-size: 12px; padding: 5px 0;
  border: 1px solid var(--line); border-radius: 7px; cursor: pointer;
  display: flex; align-items: center; justify-content: center; gap: 3px;
}
.rate-item input { margin: 0; }
.rate-item:has(input:checked) { background: #fdf6e6; border-color: var(--gold-3); color: #8a6a2a; }

/* ---------------- 创业服务地图（前台，v1.3.0） ---------------- */
.org-card {
  display: flex; flex-direction: column; gap: 10px;
  background: #fff; border: 1px solid var(--line); border-radius: var(--radius);
  padding: 20px; transition: transform .2s, box-shadow .2s, border-color .2s;
}
.org-card:hover { border-color: var(--gold-3); box-shadow: var(--shadow); transform: translateY(-2px); }
.org-card-top { display: flex; align-items: center; justify-content: space-between; gap: 8px; }
.org-card h3 { font-size: 16px; line-height: 1.45; }
.org-card h3 a { color: var(--ink); }
.org-card h3 a:hover { color: var(--gold); }
.org-card p { font-size: 13px; color: var(--muted); margin: 0; flex: 1; }
.org-card-foot { display: flex; align-items: center; justify-content: space-between; gap: 10px; padding-top: 10px; border-top: 1px dashed var(--line-2); }

.zone-card {
  position: relative; display: flex; align-items: center; gap: 18px;
  padding: 22px 24px; border-radius: var(--radius); color: #fff; overflow: hidden;
  background: linear-gradient(115deg, var(--z1, #2c5a50) 0%, #14251f 96%);
}
.zone-card::after {
  content: ""; position: absolute; right: -40px; top: -60px; width: 200px; height: 200px;
  border-radius: 50%; background: radial-gradient(circle, rgba(255,255,255,.18), transparent 66%);
}
.zone-card-ic {
  flex: 0 0 auto; width: 46px; height: 46px; border-radius: 12px; display: grid; place-items: center;
  background: rgba(255,255,255,.15); font-size: 22px; position: relative; z-index: 1;
}
.zone-card-body { flex: 1; min-width: 0; position: relative; z-index: 1; }
.zone-card-body h3 { font-size: 17px; color: #fff; }
.zone-card-body p { font-size: 12.5px; color: rgba(255,255,255,.78); margin: 5px 0 0; }
.zone-card-num { text-align: right; position: relative; z-index: 1; }
.zone-card-num b { display: block; font-size: 26px; font-family: var(--serif); line-height: 1.1; }
.zone-card-num span { font-size: 11.5px; color: rgba(255,255,255,.72); }

.detail-layout { display: grid; grid-template-columns: minmax(0, 1fr) 320px; gap: 26px; align-items: start; }
.detail-main { min-width: 0; }
.block-title { font-size: 17px; margin-bottom: 12px; padding-left: 11px; border-left: 3px solid var(--gold-2); font-family: var(--serif); }
.service-line { display: flex; gap: 8px; font-size: 13.5px; color: var(--ink-2); background: var(--cream); border-radius: 8px; padding: 9px 12px; }
.service-line span { color: var(--gold); }
.side-card h3 { font-size: 14px; margin-bottom: 14px; padding-bottom: 10px; border-bottom: 1px solid var(--line-2); }
.side-list > div { display: flex; justify-content: space-between; align-items: flex-start; gap: 10px; padding: 9px 0; border-bottom: 1px dashed var(--line-2); font-size: 13.5px; }
.side-list > div:last-child { border-bottom: 0; }
.side-list span { color: var(--muted); flex: 0 0 auto; }
.side-list b { font-weight: 500; text-align: right; }

.apply-layout { display: grid; grid-template-columns: minmax(0, 1fr) 320px; gap: 26px; align-items: start; }
.apply-list { margin: 0; padding-left: 1.15em; font-size: 13.5px; color: var(--ink-3); }
.apply-list li { margin-bottom: 8px; }
.apply-steps { list-style: none; margin: 0; padding: 0; counter-reset: st; }
.apply-steps li { position: relative; padding: 0 0 16px 30px; border-left: 1px dashed var(--line); margin-left: 9px; }
.apply-steps li:last-child { border-left-color: transparent; padding-bottom: 0; }
.apply-steps li::before {
  counter-increment: st; content: counter(st);
  position: absolute; left: -10px; top: -2px; width: 20px; height: 20px; border-radius: 50%;
  background: var(--cream-2); color: var(--gold); font-size: 11.5px; display: grid; place-items: center;
  border: 1px solid var(--gold-3);
}
.apply-steps b { display: block; font-size: 13.5px; }
.apply-steps span { font-size: 12px; color: var(--muted); }

/* ---------------- 创业服务地图（官网版） ---------------- */
.mp-hero { padding: 30px 0 6px; }
.mp-hero h1 { font-size: clamp(24px, 2.8vw, 34px); margin: 0 0 8px; }
.mp-hero p { margin: 0; color: var(--muted); font-size: 13.5px; max-width: 62em; }

.mp-zones { display: grid; grid-template-columns: minmax(0,1fr) minmax(0,1fr); gap: 18px; margin-top: 22px; }
.mp-zone {
  position: relative; display: grid; grid-template-columns: minmax(0,1fr) auto; align-items: center; gap: 18px;
  padding: 24px 26px; border-radius: 16px; color: #fff; text-decoration: none; overflow: hidden;
  background: linear-gradient(115deg, var(--z1, #2c5a50) 0%, var(--z2, #1d3c35) 100%);
  box-shadow: 0 16px 34px rgba(16, 32, 28, 0.14);
}
.mp-zone::after {
  content: ""; position: absolute; right: -46px; top: -56px; width: 190px; height: 190px;
  border-radius: 50%; background: rgba(255, 255, 255, 0.13);
}
.mp-zone .z-ic { font-size: 30px; line-height: 1; margin-bottom: 8px; }
.mp-zone h3 { margin: 0 0 6px; font-size: 19px; color: #fff; letter-spacing: .5px; }
.mp-zone p { margin: 0; font-size: 12.5px; line-height: 1.75; opacity: .92; max-width: 30em; }
.mp-zone .z-num { position: relative; z-index: 1; text-align: right; }
.mp-zone .z-num b { display: block; font-family: var(--serif); font-size: 34px; line-height: 1; }
.mp-zone .z-num span { font-size: 11.5px; opacity: .85; }

.mp-cats {
  display: grid; grid-template-columns: repeat(4, minmax(0,1fr)); margin-top: 20px;
  background: #fff; border: 1px solid var(--line); border-radius: 14px; overflow: hidden;
}
.mp-cat {
  padding: 22px 12px 20px; text-align: center; text-decoration: none; color: inherit;
  border-right: 1px solid var(--line); border-bottom: 1px solid var(--line); transition: background .18s;
}
.mp-cat:nth-child(4n) { border-right: 0; }
.mp-cat:nth-last-child(-n+4) { border-bottom: 0; }
.mp-cat:hover { background: var(--cream); }
.mp-cat .ci { font-size: 24px; line-height: 1; display: block; }
.mp-cat .cn { display: block; font-family: var(--serif); font-size: 22px; margin: 8px 0 2px; color: var(--ink); }
.mp-cat .cl { font-size: 12px; color: var(--muted); }

.mp-head { display: flex; justify-content: space-between; align-items: flex-end; gap: 16px; margin: 34px 0 14px; flex-wrap: wrap; }
.mp-head h2 { font-size: 20px; margin: 0 0 4px; }
.mp-head p { margin: 0; font-size: 12.5px; color: var(--muted); }

.mp-wrap {
  display: grid; grid-template-columns: 336px minmax(0,1fr); height: 600px;
  border: 1px solid var(--line); border-radius: 16px; overflow: hidden; background: #fff;
  box-shadow: 0 12px 30px rgba(16, 32, 28, 0.07);
}
.mp-side { display: flex; flex-direction: column; min-height: 0; border-right: 1px solid var(--line); }
.mp-search { display: flex; gap: 8px; padding: 12px; border-bottom: 1px solid var(--line); }
.mp-search input {
  flex: 1; height: 36px; padding: 0 12px; font-size: 13px; color: var(--ink);
  border: 1px solid var(--line); border-radius: 9px; background: var(--cream); outline: none;
}
.mp-search input:focus { border-color: var(--teal); background: #fff; }
.mp-search button {
  height: 36px; padding: 0 14px; border: 0; border-radius: 9px; cursor: pointer;
  background: var(--ink); color: #fff; font-size: 12.5px;
}
.mp-chips {
  display: flex; flex-wrap: wrap; gap: 6px; padding: 10px 12px;
  border-bottom: 1px solid var(--line); max-height: 138px; overflow: auto;
}
.mp-chip {
  display: inline-flex; align-items: center; gap: 4px; cursor: pointer;
  font-size: 11.5px; line-height: 1; padding: 6px 10px; border-radius: 999px;
  border: 1px solid var(--line); background: #fff; color: var(--muted); white-space: nowrap;
}
.mp-chip.on { background: var(--c, #2c5a50); border-color: transparent; color: #fff; }
.mp-chip.zone { border-style: dashed; }
.mp-list { flex: 1; min-height: 0; overflow: auto; padding: 6px; }
.mp-item {
  display: block; padding: 10px 12px; border-radius: 10px; text-decoration: none; color: inherit;
  border-bottom: 1px dashed var(--line);
}
.mp-item:last-child { border-bottom: 0; }
.mp-item:hover, .mp-item.on { background: var(--cream); }
.mp-item b { display: block; font-size: 13.5px; font-weight: 600; }
.mp-item span { display: block; font-size: 11.5px; color: var(--muted); margin-top: 3px; line-height: 1.6; }
.mp-count { padding: 8px 12px; font-size: 11.5px; color: var(--muted); border-bottom: 1px solid var(--line); background: var(--cream); }
.mp-map { position: relative; min-height: 0; z-index: 0; }
.mp-map #mpMap { position: absolute; inset: 0; background: #eef1ec; }
.mp-legend {
  position: absolute; right: 12px; bottom: 12px; z-index: 500;
  background: rgba(255, 255, 255, .95); border: 1px solid var(--line); border-radius: 10px;
  padding: 7px 11px; font-size: 11.5px; color: var(--muted); box-shadow: 0 6px 16px rgba(0, 0, 0, .08);
}
.mp-empty { padding: 34px 14px; text-align: center; font-size: 12.5px; color: var(--muted); }
.leaflet-container { font: inherit; }
.leaflet-popup-content { margin: 10px 12px; font-size: 12.5px; line-height: 1.7; }
.leaflet-popup-content b { font-size: 13.5px; }

/* ---------------- 响应式 ---------------- */
@media (max-width: 1080px) {
  .hero-inner { grid-template-columns: minmax(0,1fr); gap: 34px; padding: 54px 0 46px; }
  .grid-4 { grid-template-columns: repeat(2, minmax(0,1fr)); }
  .grid-5 { grid-template-columns: repeat(3, minmax(0,1fr)); }
  .article-wrap { grid-template-columns: minmax(0,1fr); gap: 30px; }
  .center-wrap { grid-template-columns: minmax(0,1fr); }
  .center-nav { position: static; display: flex; overflow-x: auto; gap: 4px; }
  .center-nav .who { display: none; }
  .center-nav-head { display: none; }
  .center-nav a { white-space: nowrap; }
  .footer-grid { grid-template-columns: minmax(0,1fr) minmax(0,1fr); gap: 28px; }
  .stat-row { grid-template-columns: repeat(2, minmax(0,1fr)); }
  .mp-wrap { grid-template-columns: 292px minmax(0,1fr); height: 540px; }
  .mp-zone h3 { font-size: 17px; }
  .mp-zone .z-num b { font-size: 28px; }
}
@media (max-width: 820px) {
  .header-inner { height: 66px; }
  .nav { display: none; position: absolute; top: 66px; left: 0; right: 0; background: #fff; flex-direction: column; align-items: stretch; padding: 10px; border-bottom: 1px solid var(--line); box-shadow: var(--shadow); gap: 0; }
  .nav.open { display: flex; }
  .nav > a, .nav > .nav-item > a { padding: 12px 14px; }
  .nav-drop { position: static; opacity: 1; visibility: visible; transform: none; box-shadow: none; border: 0; padding: 0 0 0 14px; display: none; max-height: none; overflow: visible; }
  .nav-item.open .nav-drop { display: block; }
  .nav-toggle { display: inline-flex; }
  .topbar .container { height: auto; padding: 6px 0; flex-wrap: wrap; gap: 4px; }
  .topbar-links { gap: 10px; font-size: 11.5px; }
  .grid-3, .grid-2, .grid-4 { grid-template-columns: minmax(0,1fr); }
  .grid-5 { grid-template-columns: repeat(2, minmax(0,1fr)); }
  .section { padding: 46px 0; }
  .section-head { flex-direction: column; align-items: flex-start; gap: 8px; }
  .news-item { grid-template-columns: 62px minmax(0,1fr); gap: 14px; }
  .news-arrow { display: none; }
  .form-grid { grid-template-columns: minmax(0,1fr); }
  .detail-layout { grid-template-columns: minmax(0,1fr); gap: 18px; }
  .apply-layout { grid-template-columns: minmax(0,1fr); gap: 18px; }
  .zone-card { padding: 18px; gap: 14px; }
  .map-side { position: static; width: auto; max-height: none; border-radius: 0; box-shadow: none; }
  #map { height: 380px; }
  .map-shell { display: flex; flex-direction: column-reverse; }
  .chat-shell { height: 70vh; }
  .msg .bubble { max-width: 88%; }
  .footer-grid { grid-template-columns: minmax(0,1fr); }
  .ai-fab { right: 14px; bottom: 14px; height: 46px; padding: 0 16px; font-size: 13px; }
  .article-main h1 { font-size: 21px; }
  .container { width: 93%; }
  .mp-zones { grid-template-columns: minmax(0,1fr); }
  .mp-cats { grid-template-columns: repeat(2, minmax(0,1fr)); }
  .mp-cat { border-right: 1px solid var(--line) !important; }
  .mp-cat:nth-child(2n) { border-right: 0 !important; }
  .mp-cat:nth-last-child(-n+4) { border-bottom: 1px solid var(--line); }
  .mp-cat:nth-last-child(-n+2) { border-bottom: 0; }
  .mp-wrap { grid-template-columns: minmax(0,1fr); height: auto; }
  .mp-side { border-right: 0; border-bottom: 1px solid var(--line); max-height: 400px; }
  .mp-map { height: 360px; }
  .mp-head { margin-top: 26px; }
}

/* ============================================================
   GEO 对外介绍页（/geo） v1.12.3
   独立于会员中心工作台：对外的说明型页面，强调「可被 AI 读懂」的结构化信息
   ============================================================ */
.ta-r { text-align: right; } .ta-c { text-align: center; }

/* ---------------- Hero ---------------- */
.geo-hero {
  position: relative; overflow: hidden;
  background: linear-gradient(135deg, #0b1a17 0%, #14302a 52%, #1d3a31 100%);
  color: #eef3f0;
  padding: 74px 0 78px;
}
.geo-hero-bg {
  position: absolute; inset: 0; pointer-events: none;
  background:
    radial-gradient(560px 320px at 82% 18%, rgba(201,168,106,.22), transparent 68%),
    radial-gradient(420px 260px at 12% 88%, rgba(61,122,108,.30), transparent 70%);
}
.geo-hero-bg::after {
  content: ""; position: absolute; inset: 0;
  background-image: linear-gradient(rgba(255,255,255,.045) 1px, transparent 1px),
                    linear-gradient(90deg, rgba(255,255,255,.045) 1px, transparent 1px);
  background-size: 46px 46px;
  mask-image: radial-gradient(circle at 50% 40%, #000 0%, transparent 78%);
  -webkit-mask-image: radial-gradient(circle at 50% 40%, #000 0%, transparent 78%);
}
.geo-hero-inner {
  position: relative; display: grid; grid-template-columns: minmax(0,1.08fr) minmax(0,.92fr);
  gap: 54px; align-items: center;
}
.geo-eyebrow {
  display: inline-block; font-size: 11.5px; letter-spacing: .2em; text-transform: uppercase;
  color: var(--gold-2); border: 1px solid rgba(201,168,106,.38); border-radius: 999px;
  padding: 5px 14px; margin-bottom: 20px;
}
.geo-hero h1 {
  font-family: var(--serif); font-size: clamp(26px, 3.2vw, 40px); line-height: 1.42;
  color: #fff; letter-spacing: -.01em; margin-bottom: 18px;
}
.geo-lead { color: #b9c8c3; font-size: 15px; line-height: 1.95; max-width: 560px; }
.geo-lead strong { color: var(--gold-2); font-weight: 600; }
.geo-hero-cta { display: flex; gap: 12px; flex-wrap: wrap; margin: 26px 0 22px; }
.geo-btn-light { background: transparent; border-color: rgba(255,255,255,.28); color: #e6eeea; }
.geo-btn-light:hover { background: rgba(255,255,255,.08); border-color: var(--gold-2); color: var(--gold-2); }
.geo-hero-trust { display: flex; align-items: center; gap: 12px; font-size: 12.5px; color: #8fa49d; flex-wrap: wrap; }
.geo-hero-trust i { width: 3px; height: 3px; border-radius: 50%; background: rgba(201,168,106,.6); }

/* AI 答案示意卡 */
.geo-hero-demo {
  background: rgba(255,255,255,.055); border: 1px solid rgba(255,255,255,.14);
  border-radius: 16px; padding: 16px 18px 18px; backdrop-filter: blur(8px);
  box-shadow: 0 30px 70px -40px rgba(0,0,0,.85);
}
.geo-demo-bar { display: flex; align-items: center; gap: 6px; margin-bottom: 16px; }
.geo-demo-bar b { width: 7px; height: 7px; border-radius: 50%; background: rgba(255,255,255,.22); }
.geo-demo-bar span { margin-left: auto; font-size: 11px; letter-spacing: .12em; color: #7d918a; text-transform: uppercase; }
.geo-demo-q {
  background: rgba(255,255,255,.09); border-radius: 12px 12px 12px 4px;
  padding: 11px 14px; font-size: 13.5px; color: #dfe8e4; line-height: 1.7; margin-bottom: 12px;
}
.geo-demo-a {
  font-size: 13.5px; line-height: 1.95; color: #a9bcb5;
  border-left: 2px solid rgba(201,168,106,.55); padding-left: 14px;
}
.geo-demo-a em { color: var(--gold-2); font-style: normal; font-weight: 600; }
.geo-demo-note { margin-top: 16px; padding-top: 14px; border-top: 1px dashed rgba(255,255,255,.13); font-size: 12.5px; color: #8fa49d; line-height: 1.8; }
.geo-demo-tag {
  display: inline-block; background: rgba(201,168,106,.16); color: var(--gold-2);
  border-radius: 5px; font-size: 11px; padding: 1px 7px; margin-right: 7px;
}

/* ---------------- 通用区块 ---------------- */
.geo-sec { padding: 76px 0; }
.geo-sec-alt { background: var(--cream); border-top: 1px solid var(--line-2); border-bottom: 1px solid var(--line-2); }
.geo-sec-head { max-width: 760px; margin: 0 auto 44px; text-align: center; }
.geo-kicker {
  display: inline-block; font-size: 11.5px; letter-spacing: .18em; text-transform: uppercase;
  color: var(--gold); margin-bottom: 12px;
}
.geo-sec-head h2 { font-family: var(--serif); font-size: clamp(21px, 2.3vw, 28px); margin-bottom: 12px; }
.geo-sec-head p { color: var(--muted); font-size: 14px; line-height: 1.95; margin: 0; }

/* 三张说明卡 */
.geo-cards { align-items: stretch; }
.geo-card {
  background: #fff; border: 1px solid var(--line); border-radius: var(--radius);
  padding: 26px 24px; transition: .24s;
}
.geo-card:hover { border-color: var(--gold-2); box-shadow: var(--shadow); transform: translateY(-3px); }
.geo-card-ico {
  font-family: var(--serif); font-size: 13px; letter-spacing: .1em; color: var(--gold);
  border-bottom: 1px solid var(--line-2); padding-bottom: 12px; margin-bottom: 14px;
}
.geo-card h3 { font-size: 16px; margin-bottom: 8px; }
.geo-card p { color: var(--muted); font-size: 13.5px; line-height: 1.9; margin: 0; }

/* 四步流程 */
.geo-steps {
  list-style: none; margin: 0; padding: 0;
  display: grid; grid-template-columns: repeat(4, minmax(0,1fr)); gap: 18px; counter-reset: gs;
}
.geo-steps li {
  position: relative; background: #fff; border: 1px solid var(--line);
  border-radius: var(--radius); padding: 26px 22px 22px;
}
.geo-steps li::after {
  content: ""; position: absolute; top: 40px; right: -18px; width: 18px; height: 1px;
  background: linear-gradient(90deg, var(--gold-2), transparent);
}
.geo-steps li:last-child::after { display: none; }
.geo-step-no {
  display: grid; place-items: center; width: 34px; height: 34px; border-radius: 50%;
  background: linear-gradient(140deg, var(--teal), var(--ink)); color: var(--gold-2);
  font-family: var(--serif); font-size: 15px; margin-bottom: 14px;
}
.geo-steps h3 { font-size: 15.5px; margin-bottom: 8px; }
.geo-steps p { color: var(--muted); font-size: 13px; line-height: 1.9; margin: 0; }

/* ---------------- 服务包 ---------------- */
.geo-plans { display: grid; grid-template-columns: repeat(3, minmax(0,1fr)); gap: 20px; align-items: stretch; }
.geo-plan {
  position: relative; display: flex; flex-direction: column;
  background: #fff; border: 1px solid var(--line); border-radius: 16px;
  padding: 30px 26px 26px; transition: .24s;
}
.geo-plan:hover { box-shadow: var(--shadow); transform: translateY(-3px); border-color: var(--gold-3); }
.geo-plan.is-hot {
  border-color: var(--gold-2); box-shadow: 0 24px 56px -34px rgba(16,32,28,.45);
  background: linear-gradient(180deg, #fffdf7, #fff 38%);
}
.geo-plan-badge {
  position: absolute; top: -11px; left: 26px;
  background: linear-gradient(135deg, var(--gold-2), var(--gold)); color: #fff;
  font-size: 11.5px; letter-spacing: .06em; padding: 3px 12px; border-radius: 999px;
  box-shadow: 0 8px 18px -10px rgba(168,133,63,.9);
}
.geo-plan h3 { font-family: var(--serif); font-size: 19px; margin-bottom: 6px; }
.geo-plan-sub { color: var(--gold); font-size: 13px; margin-bottom: 18px; }
.geo-plan-price { display: flex; align-items: baseline; gap: 3px; color: var(--ink); }
.geo-plan-price .cur { font-size: 15px; color: var(--muted); }
.geo-plan-price b { font-family: var(--serif); font-size: 36px; letter-spacing: -.02em; line-height: 1; }
.geo-plan-price b.nego { font-size: 28px; }
.geo-plan-price .unit { font-size: 12.5px; color: var(--muted); margin-left: 4px; }
.geo-plan-period { font-size: 12px; color: var(--muted); margin-top: 7px; }
.geo-plan-aud {
  font-size: 12.5px; color: var(--ink-3); line-height: 1.8;
  background: var(--cream); border-radius: 8px; padding: 10px 12px; margin: 16px 0 4px;
}
.geo-plan-aud span { color: var(--gold); margin-right: 7px; font-size: 11.5px; letter-spacing: .06em; }
.geo-plan-feats { list-style: none; margin: 14px 0 0; padding: 0; flex: 1; }
.geo-plan-feats li {
  position: relative; padding: 7px 0 7px 20px; font-size: 13.2px; line-height: 1.75;
  color: var(--ink-3); border-bottom: 1px dashed var(--line-2);
}
.geo-plan-feats li:last-child { border-bottom: 0; }
.geo-plan-feats li::before {
  content: ""; position: absolute; left: 2px; top: 15px; width: 6px; height: 6px;
  border-radius: 50%; background: var(--gold-2);
}
.geo-plan-quota {
  font-size: 12.5px; color: var(--teal); background: #eef4f1;
  border-radius: 8px; padding: 9px 12px; margin: 14px 0 16px; line-height: 1.7;
}
.geo-plan-note { font-size: 11.5px; color: var(--muted); text-align: center; margin-top: 10px; }

/* 加购与额度 */
.geo-addon {
  display: grid; grid-template-columns: minmax(0,1fr) minmax(0,1fr); gap: 20px; margin-top: 26px;
}
.geo-addon-col {
  background: #fff; border: 1px solid var(--line); border-radius: var(--radius); padding: 24px;
}
.geo-addon-col h3 { font-size: 15px; margin-bottom: 6px; }
.geo-table { width: 100%; border-collapse: collapse; margin-top: 14px; font-size: 13.2px; }
.geo-table th {
  text-align: left; font-weight: 500; font-size: 11.5px; letter-spacing: .06em;
  color: var(--muted); padding: 8px 10px; background: var(--cream); border-bottom: 1px solid var(--line);
}
.geo-table th.ta-r { text-align: right; }
.geo-table td { padding: 9px 10px; border-bottom: 1px solid var(--line-2); color: var(--ink-3); }
.geo-table tr:last-child td { border-bottom: 0; }

/* ---------------- 案例 ---------------- */
.geo-cases { display: grid; grid-template-columns: repeat(3, minmax(0,1fr)); gap: 20px; }
.geo-case {
  display: flex; flex-direction: column; background: #fff; border: 1px solid var(--line);
  border-radius: var(--radius); padding: 26px 24px; transition: .24s;
}
.geo-case:hover { border-color: var(--gold-3); box-shadow: var(--shadow); transform: translateY(-3px); }
.geo-case-top h3 { font-size: 16.5px; margin-bottom: 10px; line-height: 1.5; }
.geo-case-meta { display: flex; gap: 6px; flex-wrap: wrap; margin-bottom: 14px; }
.geo-case-sum { font-size: 13.5px; color: var(--ink-2); line-height: 1.85; margin: 0 0 16px; }
.geo-case-kpis {
  display: grid; grid-template-columns: repeat(3, minmax(0,1fr)); gap: 1px; background: var(--line-2);
  border-radius: 10px; overflow: hidden; margin-bottom: 16px;
}
.geo-case-kpis > div { background: var(--cream); padding: 12px 8px; text-align: center; }
.geo-case-kpis b { display: block; font-family: var(--serif); font-size: 19px; color: var(--teal); line-height: 1.2; }
.geo-case-kpis span { display: block; font-size: 11px; color: var(--muted); margin-top: 4px; }
.geo-case-dl { margin: 0 0 4px; font-size: 12.8px; line-height: 1.85; }
.geo-case-dl dt { color: var(--gold); font-size: 11.5px; letter-spacing: .05em; margin-top: 12px; }
.geo-case-dl dd { margin: 4px 0 0; color: var(--ink-3); }
.geo-case-result { margin: 0; padding-left: 16px; }
.geo-case-result li { margin-bottom: 2px; }
.geo-case-quote {
  margin: 16px 0 0; padding: 14px 0 0; border-top: 1px dashed var(--line);
  font-family: var(--serif); font-size: 13.5px; color: var(--ink-2); line-height: 1.9;
}
.geo-case-quote cite { display: block; margin-top: 6px; font-style: normal; font-family: var(--font); font-size: 11.5px; color: var(--muted); }
.geo-empty {
  max-width: 620px; margin: 0 auto; text-align: center;
  background: #fff; border: 1px dashed var(--gold-2); border-radius: var(--radius); padding: 38px 28px;
}
.geo-empty b { display: block; font-family: var(--serif); font-size: 18px; margin-bottom: 10px; }
.geo-empty p { color: var(--muted); font-size: 13.5px; line-height: 1.95; margin-bottom: 18px; }

/* ---------------- FAQ ---------------- */
.geo-faq { display: grid; gap: 10px; }
.geo-faq-item {
  background: #fff; border: 1px solid var(--line); border-radius: 12px; padding: 0 20px;
  transition: border-color .18s;
}
.geo-faq-item[open] { border-color: var(--gold-3); box-shadow: 0 14px 34px -26px rgba(16,32,28,.4); }
.geo-faq-item summary {
  cursor: pointer; list-style: none; padding: 17px 26px 17px 0; position: relative;
  font-size: 14.5px; font-weight: 500; color: var(--ink);
}
.geo-faq-item summary::-webkit-details-marker { display: none; }
.geo-faq-item summary::after {
  content: "+"; position: absolute; right: 0; top: 14px; font-size: 19px; color: var(--gold);
  transition: transform .2s; line-height: 1;
}
.geo-faq-item[open] summary::after { content: "−"; }
.geo-faq-a {
  font-size: 13.5px; color: var(--muted); line-height: 1.98;
  padding: 0 0 18px; border-top: 1px solid var(--line-2); padding-top: 14px;
}

/* ---------------- 咨询 ---------------- */
.geo-lead-sec { background: var(--ink); color: #e7eeeb; }
.geo-lead-wrap { display: grid; grid-template-columns: minmax(0,1fr) minmax(0,.85fr); gap: 46px; align-items: center; }
.geo-lead-copy .geo-kicker { color: var(--gold-2); }
.geo-lead-copy h2 { font-family: var(--serif); font-size: clamp(21px, 2.3vw, 27px); color: #fff; margin-bottom: 14px; line-height: 1.5; }
.geo-lead-copy > p { color: #a9bcb5; font-size: 14px; line-height: 1.95; }
.geo-lead-list { list-style: none; padding: 0; margin: 20px 0 24px; }
.geo-lead-list li { position: relative; padding-left: 20px; font-size: 13.2px; color: #b9c8c3; line-height: 1.9; margin-bottom: 8px; }
.geo-lead-list li::before { content: "✓"; position: absolute; left: 0; color: var(--gold-2); }
.geo-lead-contact { border-top: 1px solid rgba(255,255,255,.12); padding-top: 18px; font-size: 12.5px; color: #8fa49d; }
.geo-lead-contact span { display: block; margin-bottom: 4px; }
.geo-lead-contact b { font-family: var(--serif); font-size: 21px; color: var(--gold-2); letter-spacing: .02em; }
.geo-lead-contact em { display: block; font-style: normal; margin-top: 4px; }

.geo-lead-form { background: #fff; border-radius: 16px; padding: 28px 26px; box-shadow: 0 34px 80px -46px rgba(0,0,0,.9); }
.geo-field { margin-bottom: 15px; }
.geo-field label { display: block; font-size: 12.5px; color: var(--ink-2); margin-bottom: 6px; }
.geo-field label i { color: var(--red); font-style: normal; }
.geo-field .input, .geo-field .select, .geo-field .textarea { width: 100%; }
.geo-lead-form .btn { height: 44px; font-size: 14.5px; margin-top: 4px; }
.geo-form-tip { font-size: 11.5px; color: var(--muted); text-align: center; margin: 12px 0 0; line-height: 1.75; }
.geo-lead-ok { text-align: center; padding: 26px 8px; }
.geo-lead-ok b { display: block; font-family: var(--serif); font-size: 20px; color: var(--teal); margin-bottom: 10px; }
.geo-lead-ok p { font-size: 13.5px; color: var(--muted); line-height: 1.9; margin: 0; }

/* ---------------- 响应式 ---------------- */
@media (max-width: 1080px) {
  .geo-hero-inner { grid-template-columns: minmax(0,1fr); gap: 36px; }
  .geo-plans { grid-template-columns: minmax(0,1fr); }
  .geo-plan.is-hot { transform: none; }
  .geo-cases { grid-template-columns: minmax(0,1fr); }
  .geo-steps { grid-template-columns: repeat(2, minmax(0,1fr)); }
  .geo-steps li:nth-child(2)::after { display: none; }
  .geo-lead-wrap { grid-template-columns: minmax(0,1fr); gap: 30px; }
}
@media (max-width: 820px) {
  .geo-hero { padding: 46px 0 52px; }
  .geo-hero h1 { font-size: 24px; }
  .geo-lead { font-size: 14px; }
  .geo-sec { padding: 46px 0; }
  .geo-sec-head { margin-bottom: 30px; }
  .geo-steps { grid-template-columns: minmax(0,1fr); }
  .geo-steps li::after { display: none; }
  .geo-addon { grid-template-columns: minmax(0,1fr); }
  .geo-plan { padding: 26px 20px 22px; }
  .geo-plan-price b { font-size: 32px; }
  .geo-case-kpis b { font-size: 17px; }
  .geo-lead-form { padding: 22px 18px; }
}

/* ============================================================
   评委端录分页（/review/projects、/review/score）v1.13.9
   目标：手机上表格不再横向溢出，录分与保存一屏内可完成
   ============================================================ */

/* ---- 桌面/平板：表格横向兜底，永不撑破页面 ---- */
.rv-wrap { padding-bottom: 70px; }
.rv-card-head { display: flex; align-items: flex-start; justify-content: space-between; gap: 16px; flex-wrap: wrap; }
.rv-card-head .toolbar { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; }
.rv-table-wrap { width: 100%; overflow-x: auto; -webkit-overflow-scrolling: touch; }
.rv-table { min-width: 840px; }
.rv-score-input { width: 100px; text-align: center; font-weight: 600; height: 38px; }
.rv-actions { display: flex; gap: 10px; flex-wrap: wrap; justify-content: flex-end; }
.rv-filter { display: none; gap: 6px; }
.rv-filter button { border: 1px solid var(--line); background: #fff; color: var(--ink-2); border-radius: 999px; padding: 6px 14px; font-size: 12.5px; line-height: 1.4; }
.rv-filter button.on { background: var(--ink); color: #fff; border-color: var(--ink); }
.rv-sp-item { display: inline; }
.rv-hide { display: none !important; }
.rv-fab { display: none; }
.rv-meta .rv-mi { display: inline-block; margin-right: 12px; }
.rv-table tr.rv-row.rv-saved { border-color: #1f883d; box-shadow: 0 0 0 3px rgba(31, 136, 61, .12); }
/* v1.22.6 一录入自动保存草稿：状态格里的落库时间 + 自动保存中的输入框弱化 */
.rv-savedat { font-style: normal; font-size: 11px; color: #1f883d; margin-left: 4px; white-space: nowrap; }
.rv-autosaving { opacity: .55; }

/* ---- 手机：表格转卡片 ---- */
@media (max-width: 820px) {
  .rv-wrap { padding-bottom: 96px; }
  .rv-wrap .input, .rv-wrap .textarea { font-size: 16px; }
  .rv-login-card { padding: 20px 16px !important; }
  .rv-none { display: none; }
  .rv-fab {
    display: inline-flex; align-items: center; justify-content: center;
    position: fixed; right: 16px; bottom: max(18px, env(safe-area-inset-bottom));
    z-index: 60; height: 50px; padding: 0 24px; border: 0; border-radius: 999px;
    background: var(--ink); color: #fff; font-size: 15px; font-weight: 600;
    box-shadow: 0 10px 26px rgba(0, 0, 0, .24);
  }
  .rv-fab:active { transform: scale(.97); }
  .rv-fab[disabled] { opacity: .55; }
  .rv-page-head { padding: 18px 0 8px !important; }
  .rv-page-head h1 { font-size: 18px !important; line-height: 1.4; }
  .rv-meta { font-size: 12.5px; line-height: 1.9; }
  .rv-meta .rv-mi { margin-right: 10px; }

  .rv-filter { display: inline-flex; }

  .rv-card { padding: 0; }
  .rv-card:hover { transform: none; box-shadow: none; border-color: var(--line); }
  .rv-card > .card-head { padding: 15px 16px 0; }
  .rv-card > .card-body { padding: 16px; }
  .rv-card-head { flex-direction: column; align-items: stretch; gap: 12px; }
  .rv-card-head h2 { font-size: 15px; }
  .rv-card-head .toolbar { display: grid; grid-template-columns: minmax(0,1fr) minmax(0,1fr); gap: 8px; }
  .rv-card-head .toolbar .btn { width: 100%; justify-content: center; min-height: 42px; }
  .rv-card-head .toolbar .rv-full { grid-column: 1 / -1; }

  .card-body.rv-body { padding: 12px 12px 16px; }

  .rv-table-wrap { overflow: visible; }
  .rv-table { min-width: 0; width: 100%; display: block; }
  .rv-table thead { display: none; }
  .rv-table tbody { display: block; width: 100%; }

  .rv-table tr.rv-row {
    display: flex; flex-wrap: wrap; align-items: center; gap: 3px 10px;
    border: 1px solid var(--line); border-radius: 14px;
    padding: 12px 14px 13px; margin-bottom: 10px; background: #fff;
    box-shadow: 0 1px 2px rgba(0, 0, 0, .03);
  }
  .rv-table tr.rv-row:hover { background: #fff; }
  .rv-table tr.rv-row.rv-back { background: #fffaf0; border-color: #f0d9a8; }
  .rv-table tr.rv-row.rv-saved { border-color: #1f883d; box-shadow: 0 0 0 3px rgba(31, 136, 61, .12); }
  .rv-table tr.rv-row td { border: 0; padding: 0; }

  .rv-td-code { flex: 0 0 auto; order: 0; font-size: 11.5px; color: var(--muted); letter-spacing: .03em; }
  .rv-td-state { flex: 0 0 auto; order: 0; margin-left: auto; text-align: right; font-size: 12px; }
  .rv-td-name { flex: 0 0 100%; order: 1; font-size: 15px; line-height: 1.45; margin-top: 3px; }
  .rv-td-unit { flex: 0 0 100%; order: 2; font-size: 12.5px; color: var(--muted); line-height: 1.5; }
  .rv-td-mat { flex: 0 0 100%; order: 3; font-size: 12.5px; }
  .rv-td-score { flex: 1 1 96px; order: 4; margin-top: 9px; }
  .rv-td-act { flex: 0 0 auto; order: 5; margin-top: 9px; display: flex; align-items: center; gap: 10px; }
  .rv-table .rv-td-act .btn { min-height: 42px; padding: 0 16px; font-size: 13px; border-radius: 10px; }
  .rv-table .rv-td-act a { white-space: nowrap; }

  .rv-table .rv-score-input { width: 100%; height: 44px; font-size: 17px; border-radius: 10px; }
  .rv-td-score .rv-score-unit { display: none; }

  .rv-table tr.rv-split { display: block; margin: -8px 0 12px; }
  .rv-table tr.rv-split td { display: block; border: 0; padding: 0; }
  .rv-table tr.rv-split td.rv-split-pad { display: none; }
  .rv-split-box { background: #f6f8f5; border: 1px solid #e2e8df; border-top: 0; border-radius: 0 0 14px 14px; padding: 10px 13px; font-size: 12.5px; line-height: 1.75; color: #3c4a42; }
  .rv-sp-item { display: block; }
  .rv-sp-item b { color: #1f883d; }

  .rv-actions { display: grid; grid-template-columns: minmax(0,1fr); gap: 9px; margin-top: 14px; }
  .rv-actions .btn { width: 100%; justify-content: center; min-height: 48px; font-size: 15px; border-radius: 12px; }
  .rv-foot-note { font-size: 12px; line-height: 1.7; }

  /* 打分详情页 */
  .rv-score-grid { grid-template-columns: minmax(0,1fr) !important; gap: 14px !important; }
  .rv-score-table th, .rv-score-table td { padding: 10px 8px; }
  .rv-score-table th:first-child, .rv-score-table td:first-child { padding-left: 12px; }
  .rv-score-table th:last-child, .rv-score-table td:last-child { padding-right: 12px; }
  .rv-score-table .input { width: 100%; height: 42px; font-size: 16.5px; text-align: center; }
  .rv-score-table .rv-item-tip { font-size: 11.5px; line-height: 1.6; }
  .rv-total-input { height: 52px !important; font-size: 24px !important; }
  .rv-score-bar { display: flex; align-items: center; flex-wrap: wrap; gap: 10px; position: sticky; bottom: 0; z-index: 20; background: #fff; border-top: 1px solid var(--line); padding: 10px 16px max(10px, env(safe-area-inset-bottom)); margin: 16px -16px -16px; }
  .rv-score-bar > div:first-child { flex: 0 0 auto; }
  .rv-score-bar .btn { flex: 1 1 auto; min-height: 46px; justify-content: center; }
  .rv-score-bar .toolbar { gap: 8px; }
}

@media (max-width: 480px) {
  .rv-card-head .toolbar { grid-template-columns: minmax(0,1fr); }
  .rv-td-code, .rv-td-state { font-size: 11px; }
}

/* ============================================================
   v1.15.0 协会概况：协会领导 / 组织架构图 / 首页协会介绍
   + 顶部「菜单」按钮的作用域修正
   ============================================================ */

/* ---------- 顶部菜单按钮 ----------
   以前 .nav-toggle 只在 ≤820px 有 display，大屏上它靠 .btn 的 inline-flex 露出来，
   点了却因为 .nav 本来就是展开状态而毫无反应 —— 用户看到的就是「点菜单没反应」。
   现在默认隐藏，只在窄屏出现。 */
.nav-toggle { display: none; }
@media (max-width: 820px) {
  .nav-toggle { display: inline-flex; align-items: center; }
  .nav-toggle.on { background: var(--teal); border-color: var(--teal); color: #fff; }
}

/* ---------- 协会领导：头像墙 ---------- */
.leader-group { margin-bottom: 44px; }
.leader-group:last-of-type { margin-bottom: 26px; }
.leader-group-head {
  display: flex; align-items: baseline; gap: 12px;
  padding-bottom: 12px; margin-bottom: 22px; border-bottom: 1px solid var(--line);
}
.leader-group-head h2 {
  font-family: var(--serif); font-size: 21px; color: var(--ink);
  position: relative; padding-left: 14px;
}
.leader-group-head h2::before {
  content: ''; position: absolute; left: 0; top: 6px; bottom: 4px; width: 3px;
  background: linear-gradient(180deg, var(--gold-2), var(--teal)); border-radius: 2px;
}
.leader-count { font-size: 12.5px; color: var(--muted); }

.leader-grid {
  display: grid; grid-template-columns: repeat(auto-fill, minmax(196px, 1fr)); gap: 20px;
}
.leader-card {
  display: block; background: #fff; border: 1px solid var(--line); border-radius: var(--radius);
  overflow: hidden; color: inherit; transition: transform .2s, box-shadow .2s, border-color .2s;
}
.leader-card:hover { transform: translateY(-4px); box-shadow: var(--shadow-lg); border-color: var(--gold-3); color: inherit; }
.leader-photo {
  display: block; position: relative; aspect-ratio: 3 / 4; background: linear-gradient(150deg, #f6f2e8, #eae4d5);
  overflow: hidden;
}
.leader-photo img { width: 100%; height: 100%; object-fit: cover; transition: transform .45s; }
.leader-card:hover .leader-photo img { transform: scale(1.04); }
.leader-photo-ph {
  position: absolute; inset: 0; display: grid; place-items: center;
  font-family: var(--serif); font-size: 52px; color: #bfae86;
}
.leader-photo-ph.lg { position: static; display: grid; width: 100%; aspect-ratio: 3 / 4; font-size: 76px; }
.leader-meta { display: block; padding: 14px 16px 16px; }
.leader-meta b { display: block; font-family: var(--serif); font-size: 17px; letter-spacing: .02em; }
.leader-post { display: block; margin-top: 3px; font-size: 12.5px; color: var(--gold); }
.leader-meta em {
  display: block; margin-top: 6px; font-style: normal; font-size: 12px; color: var(--muted);
  line-height: 1.55; min-height: 2.4em;
}

/* ---------- 领导详情 ---------- */
.leader-detail-wrap { padding: 34px 0 72px; }
.leader-detail { display: grid; grid-template-columns: 268px minmax(0,1fr); gap: 30px; align-items: start; }
.leader-detail-photo {
  border-radius: var(--radius); overflow: hidden; border: 1px solid var(--line);
  background: linear-gradient(150deg, #f6f2e8, #eae4d5); box-shadow: var(--shadow);
}
.leader-detail-photo img { width: 100%; aspect-ratio: 3 / 4; object-fit: cover; }
.leader-detail-name { font-family: var(--serif); font-size: 26px; letter-spacing: .04em; }
.leader-detail-tags { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 10px; }
.leader-detail-org { margin: 12px 0 0; font-size: 13.5px; color: var(--muted); }
.leader-detail-intro { margin-top: 20px; padding-top: 20px; border-top: 1px solid var(--line-2); }
.leader-detail-intro .prose { font-size: 14.5px; color: var(--ink-3); }
.leader-detail-intro .prose p { margin-bottom: 12px; line-height: 1.95; }
.leader-same { display: grid; grid-template-columns: repeat(auto-fill, minmax(150px, 1fr)); gap: 10px; }
.leader-same a {
  display: block; padding: 12px 14px; border: 1px solid var(--line); border-radius: var(--radius-sm);
  background: var(--cream); color: inherit; transition: border-color .18s, background .18s;
}
.leader-same a:hover { border-color: var(--gold-3); background: #fff; color: inherit; }
.leader-same b { display: block; font-size: 14px; }
.leader-same span { display: block; font-size: 12px; color: var(--muted); margin-top: 2px; }

/* ---------- 组织架构图（v1.16.1 分层矩阵） ----------
   横向树的宽度随层数增长，节点一多就要拖两次滚动条；改成“每层一行、
   层内自动换行”后，无论多少节点都不会出现横向滚动，一屏能看完。 */
.org-flow { position: relative; display: flex; flex-direction: column; gap: 16px; }
/* 贯穿全图的竖向主轴：比每层各画一段更干净，层间空隙也不会断线 */
.org-flow::before {
  content: ''; position: absolute; left: 131px; top: 4px; bottom: 4px; width: 1px;
  background: linear-gradient(180deg, transparent, var(--line) 6%, var(--line) 94%, transparent);
}
.org-layer { display: grid; grid-template-columns: 132px minmax(0, 1fr); align-items: center; gap: 16px; }
/* v1.16.5：层内横排。之前漏了这条，.org-chip 的 flex 属性落不到 flex 容器里，
   每层变成一列通栏块，14 个节点要滑三屏；补齐后 3~4 个节点一行，一屏看得完。 */
.org-layer-body { display: flex; flex-wrap: wrap; align-items: flex-start; gap: 10px; min-width: 0; }
.org-layer-tag { display: flex; align-items: center; justify-content: flex-end; padding-right: 16px; }
.org-layer-tag b {
  font-size: 12.5px; color: var(--teal); font-weight: 600; line-height: 1.5;
  white-space: nowrap; letter-spacing: .01em;
}
.org-chip {
  flex: 0 1 auto; min-width: 118px; max-width: 268px;
  padding: 9px 14px; border-radius: 10px; background: #fff;
  border: 1px solid var(--line); box-shadow: 0 1px 2px rgba(16,32,28,.03);
  transition: border-color .18s, transform .18s, box-shadow .18s;
}
.org-chip:hover { border-color: var(--gold-3); transform: translateY(-1px); box-shadow: var(--shadow); }
.org-chip b { display: block; font-size: 13.5px; font-weight: 600; line-height: 1.45; }
.org-chip span { display: block; font-size: 11.5px; color: var(--muted); line-height: 1.5; margin-top: 2px; }
/* 节点配色由「机构类型」的 style 决定（后台可选），不再按层级号硬编码：
   dark 墨绿实底 / gold 金边 / cream 米金 / cream2 米白 / plain 白底 / dash 虚线。
   加类型时只要在后台选一个 style，前台不用改 CSS。 */
.org-chip.style-dark { background: linear-gradient(150deg, #23483f, #17332c); border-color: transparent; }
.org-chip.style-dark b { color: #f3efe4; }
.org-chip.style-dark span { color: #a9c0b8; }

.org-chip.style-gold { background: #fffdf6; border-color: var(--gold-2); box-shadow: 0 1px 2px rgba(176, 141, 63, .10); }
.org-chip.style-gold b { color: #6b5322; }
.org-chip.style-gold span { color: #8d7a4f; }

.org-chip.style-cream { background: var(--cream); border-color: var(--gold-3); }
.org-chip.style-cream b { color: #6b5322; }

.org-chip.style-cream2 { background: var(--cream-2); }
.org-chip.style-plain { background: #fff; }
.org-chip.style-dash { background: #fff; border-style: dashed; border-color: var(--teal-2); }
.org-chip.style-dash b { color: var(--teal); }

/* 角标：类型上配了 badge 才出现，如「独立监督」「专门委员会」 */
.org-badge {
  display: table; font-style: normal; margin-bottom: 5px;
  font-size: 10.5px; line-height: 1.6; letter-spacing: .08em;
  padding: 0 7px; border-radius: 999px;
  color: var(--muted); background: var(--cream-2); border: 1px solid var(--line);
}
.org-chip.style-gold .org-badge { color: #fff; background: var(--gold-2); border-color: transparent; }
.org-chip.style-dash .org-badge { color: #fff; background: var(--teal-2); border-color: transparent; }

/* 层标签颜色跟着类型走，让「监督机构」「专委会」与常设办事机构一眼分得开 */
.org-layer.style-dark .org-layer-tag b { color: var(--ink); }
.org-layer.style-gold .org-layer-tag b { color: var(--gold); }
.org-layer.style-dash .org-layer-tag b { color: var(--teal-2); }

@media (max-width: 820px) {
  .org-flow::before { display: none; }
  .org-layer { grid-template-columns: minmax(0,1fr); gap: 6px; }
  .org-layer-tag {
    justify-content: flex-start; padding: 2px 0 2px 10px;
    border-left: 3px solid var(--gold-2);
  }
  .org-layer-body { padding: 0; }
  .org-chip { flex: 1 1 100%; max-width: none; }
}

/* ---------- 首页：协会介绍 ---------- */
.about-band { background: #fff; }
.about-lead {
  font-size: 15px; line-height: 2; color: var(--ink-3);
  padding: 18px 22px; background: var(--cream); border-left: 3px solid var(--gold-2);
  border-radius: 0 10px 10px 0; margin: 0 0 28px;
}
.about-lead b { color: var(--teal); }
.about-split { display: grid; grid-template-columns: minmax(0,1fr) minmax(0,1.05fr); gap: 34px; }
.about-h3 {
  font-family: var(--serif); font-size: 16px; margin-bottom: 14px; color: var(--ink);
  display: flex; align-items: center; gap: 8px;
}
.about-h3::after { content: ''; flex: 1; height: 1px; background: var(--line); }
.about-item {
  display: block; padding: 14px 16px; border: 1px solid var(--line); border-radius: 10px;
  background: #fff; color: inherit; transition: border-color .18s, transform .18s, box-shadow .18s;
}
.about-item:hover { border-color: var(--gold-3); transform: translateX(3px); box-shadow: var(--shadow); color: inherit; }
.about-item b { display: block; font-size: 14.5px; color: var(--teal); }
.about-item span { display: block; font-size: 12.5px; color: var(--muted); margin-top: 4px; line-height: 1.65; }
.about-core { display: grid; grid-template-columns: minmax(0,1fr) minmax(0,1fr); gap: 12px; }
.about-core div {
  padding: 16px 16px 14px; border-radius: 10px; background: var(--cream);
  border: 1px solid var(--line-2);
}
.about-core i {
  display: block; font-style: normal; font-family: var(--serif); font-size: 13px;
  color: var(--gold); letter-spacing: .06em; margin-bottom: 4px;
}
.about-core b { display: block; font-size: 14.5px; }
.about-core b a { color: inherit; text-decoration: none; }
.about-core b a:hover { color: var(--gold); }
.about-core span { display: block; font-size: 12px; color: var(--muted); margin-top: 3px; }

/* ---------- 导师库：创业/就业分类页签 ---------- */
.mentor-tabs { display: flex; gap: 6px; margin-bottom: 16px; flex-wrap: wrap; }
.mentor-tabs a {
  padding: 8px 18px; border-radius: 999px; font-size: 13.5px; color: var(--ink-3);
  border: 1px solid var(--line); background: #fff; transition: all .18s;
}
.mentor-tabs a:hover { border-color: var(--gold-3); color: var(--gold); }
.mentor-tabs a.on { background: var(--teal); border-color: var(--teal); color: #fff; }

/* ---------- 窄屏补齐 ---------- */
@media (max-width: 1080px) {
  .about-split { grid-template-columns: minmax(0,1fr); gap: 26px; }
  .leader-detail { grid-template-columns: 220px minmax(0,1fr); gap: 22px; }
}
@media (max-width: 820px) {
  .leader-grid { grid-template-columns: repeat(auto-fill, minmax(148px, 1fr)); gap: 14px; }
  .leader-meta { padding: 11px 12px 13px; }
  .leader-meta b { font-size: 15.5px; }
  .leader-meta em { min-height: 0; }
  .leader-detail { grid-template-columns: minmax(0,1fr); }
  .leader-detail-photo { max-width: 200px; margin: 0 auto; }
  .leader-detail-name { font-size: 22px; }
  .leader-group-head h2 { font-size: 18px; }
  .about-core { grid-template-columns: minmax(0,1fr); }
  .leader-same { grid-template-columns: repeat(auto-fill, minmax(128px, 1fr)); }
}
@media (max-width: 480px) {
  .leader-grid { grid-template-columns: repeat(2, minmax(0,1fr)); gap: 11px; }
  .leader-meta b { font-size: 14.5px; }
  .leader-post { font-size: 11.5px; }
  .leader-meta em { font-size: 11px; }
}

/* 窄屏前台表格：不撑破容器，表格自己横向滚动 */
@media (max-width: 820px) {
  .card { overflow-x: auto; -webkit-overflow-scrolling: touch; }
  .table { min-width: 460px; }
  .filter-bar { flex-wrap: wrap; }
  .filter-bar .input { flex: 1 1 100%; margin-left: 0 !important; }
  .head-actions { flex-wrap: wrap; }
  .page-head h1 { font-size: 24px; }
}

/* ---------- 政策智能匹配（v1.17.0，自 pp 系统移植） ---------- */
.pm-wrap { max-width: 760px; margin: 0 auto; }
.pm-progress { display: flex; align-items: center; gap: 12px; margin-bottom: 16px; }
.pm-progress-text { font-size: 12.5px; color: var(--ink-3); white-space: nowrap; }
.pm-track { flex: 1; height: 4px; background: var(--line-2); border-radius: 999px; overflow: hidden; }
.pm-bar { height: 100%; background: linear-gradient(90deg, var(--teal), var(--gold-2)); border-radius: 999px; transition: width .25s; }
.pm-step { display: none; }
.pm-step.is-act { display: block; animation: pmIn .22s ease; }
@keyframes pmIn { from { opacity: 0; transform: translateY(6px); } to { opacity: 1; transform: none; } }
.pm-q { display: flex; align-items: baseline; gap: 10px; margin-bottom: 14px; }
.pm-q-no { flex: 0 0 auto; width: 26px; height: 26px; border-radius: 50%; background: var(--teal); color: #fff;
  font-size: 13px; display: inline-flex; align-items: center; justify-content: center; align-self: center; }
.pm-q-title { font-size: 16px; }
.pm-opts { display: grid; gap: 10px; }
.pm-opt { display: flex; gap: 10px; align-items: flex-start; padding: 13px 16px; background: #fff;
  border: 1px solid var(--line); border-radius: 10px; cursor: pointer; transition: .14s; font-size: 14.5px; line-height: 1.6; }
.pm-opt:hover { border-color: var(--teal); }
.pm-opt:has(input:checked) { border-color: var(--teal); background: #eef6f2; }
.pm-opt input { margin-top: 4px; accent-color: var(--teal); }
.pm-err { display: none; margin-top: 10px; font-size: 12.5px; color: #b4453a; }
.pm-foot { display: flex; gap: 10px; margin-top: 22px; }
.pm-foot .btn { min-width: 120px; }
@media (max-width: 640px) {
  .pm-opts { gap: 8px; }
  .pm-opt { padding: 12px 13px; font-size: 14px; }
  .pm-foot .btn { flex: 1; }
  .pm-q-title { font-size: 15px; }
}

/* ============================================================
   移动端定向补强（v1.17.0）
   ------------------------------------------------------------ */
@media (max-width: 820px) {
  /* iOS：输入框字号 <16px 聚焦时会自动放大页面，统一抬到 16px */
  .input, .select, .textarea, .chat-input textarea, .hero-search input,
  .form-row input, .form-row select, .form-row textarea {
    font-size: 16px !important;
  }
  /* 正文里的长 URL / 账号名不允许撑破屏幕 */
  .article-main { overflow-wrap: anywhere; }
  .article-main img { max-width: 100%; height: auto; }
  /* 底部操作区避开 iPhone 手势条 */
  .chat-input { padding-bottom: calc(12px + env(safe-area-inset-bottom)); }
  .pm-foot { padding-bottom: env(safe-area-inset-bottom); }
  /* 页脚二维码与新媒体账号在窄屏纵排 */
  .footer-qr { justify-content: flex-start; }
}
@media (max-width: 640px) {
  /* 触控目标：按钮最小高 40px，按钮组撑满更好点 */
  .btn { min-height: 40px; }
  .btn-sm { min-height: 38px; }
  .quick-q button { min-height: 36px; }
  /* 气泡更宽，长答案少折行 */
  .msg .bubble { max-width: 92%; }
  /* 卡片内距收紧，一屏多看半行内容 */
  .card { padding: 18px 16px; }
  .page-head { padding: 26px 0 8px; }
}

/* ============ v1.38.0 页脚新媒体二维码弹层 ============
   政务版 <button class="gv-mtag gv-mtag-qr"> 与经典版 <button class="fs-qr"> 共用一套弹层。
   选中某个渠道就把图填进 #qrImg，五套 DOM 不重复渲染。 */
button.gv-mtag,button.fs-qr{font:inherit;cursor:pointer;text-align:left;
  -webkit-appearance:none;appearance:none}
button.fs-qr{background:none;border:0;padding:0;color:inherit;
  text-decoration:underline;text-decoration-style:dotted;text-underline-offset:3px}
button.fs-qr:hover{color:#c9a86a}
button.gv-mtag-qr{transition:border-color .18s,background .18s}
button.gv-mtag-qr:hover{border-color:#1658a0;background:#f2f7fd}
button.gv-mtag-qr:focus-visible,button.fs-qr:focus-visible{outline:2px solid #1658a0;outline-offset:2px}

.qr-modal{position:fixed;inset:0;z-index:9999;display:flex;align-items:center;justify-content:center}
.qr-modal[hidden]{display:none}
.qr-mask{position:absolute;inset:0;background:rgba(8,20,40,.72);
  -webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px)}
.qr-box{position:relative;z-index:2;width:min(90vw,352px);background:#fff;border-radius:16px;
  padding:24px 22px 18px;text-align:center;box-shadow:0 24px 70px rgba(0,0,0,.38);
  animation:qrIn .22s ease both}
@keyframes qrIn{from{opacity:0;transform:translateY(14px) scale(.97)}to{opacity:1;transform:none}}
.qr-box h3{margin:0 0 14px;font-size:16px;font-weight:700;color:#22302b;letter-spacing:1px}
.qr-img{width:100%;aspect-ratio:1/1;display:flex;align-items:center;justify-content:center;
  background:#f6f8f7;border-radius:10px;overflow:hidden}
.qr-img img{width:100%;height:100%;object-fit:contain;display:block}
.qr-acct{margin:12px 0 0;font-size:13px;color:#5c6f68;letter-spacing:.5px}
.qr-tip{margin:6px 0 0;font-size:12px;color:#93a29c}
.qr-x{position:absolute;top:8px;right:10px;width:32px;height:32px;border:0;background:none;
  font-size:24px;line-height:1;color:#8fa19a;cursor:pointer;border-radius:50%}
.qr-x:hover{background:#f0f3f2;color:#22302b}
@media (max-width:480px){
  .qr-box{width:min(88vw,320px);padding:20px 18px 16px}
  .qr-box h3{font-size:15px;margin-bottom:12px}
}

/* ============ v1.38.0 移动端自适应兜底 ============
   原则：只兜「会顶破视口」的硬伤，不重写各页版式。
   表格由 front.php 里的脚本在窄屏自动包 .table-scroll，这里只定义滚动行为。 */
@media (max-width: 900px) {
  /* 资讯 / 政策详情：正文 + 300px 侧栏 → 单列，正文不再只剩半屏 */
  .article-wrap { grid-template-columns: minmax(0,1fr); gap: 26px; padding: 30px 0 52px; }
  .article-wrap > aside { order: 2; }
}
@media (max-width: 820px) {
  /* 表格横向滚动容器（脚本自动插入；已自带滚动容器的表格不会被重复包裹） */
  .table-scroll { max-width: 100%; overflow-x: auto; -webkit-overflow-scrolling: touch;
    overscroll-behavior-x: contain; padding-bottom: 2px; }
  .table-scroll > table { margin: 0; }
  /* 触摸目标：可点按钮不小于 40px，手指点得准 */
  a.btn, button.btn, .btn { min-height: 40px; }
  /* 长链接 / 长英文串不许顶破卡片 */
  .prose, .card, .panel, .box, .table-scroll td { overflow-wrap: anywhere; }
  /* 弹层类容器不超出视口 */
  .modal, .dialog, .overlay > div { max-width: calc(100vw - 24px); }
  /* 行内大字号标题收敛，避免一行只剩两三个字 */
  .prose h2 { font-size: 21px; }
  .prose h3 { font-size: 17.5px; }
}
@media (max-width: 480px) {
  .article-wrap { padding: 22px 0 44px; gap: 20px; }
  .prose { font-size: 15px; }
  /* 表格里多留一点呼吸，手机上更好点 */
  .table-scroll th, .table-scroll td { white-space: nowrap; }
}
