/* ============================================================
   Service Portal 门户主题样式（assets/portal.css）
   依赖：/user/assets/theme.css（设计令牌，共享只读，先于本文件加载）
   来源：design-preview/_mock-common.css + mock-01~06 页内样式提炼
   组织：
     0  全局底色
     1  顶栏（P1）
     2  黑色页脚（P1）
     3  兜底列表（P1）
     4  数字分页（WP .pagination 结构，视觉取 mock-04 .pager）
     5  首页：Hero/快捷卡/FAQ 卡/公告/CTA（mock-01）
     6  产品文档页：面包屑/侧栏/产品头/内搜索/分组列表/反馈卡（mock-02）
     7  文档详情：两栏/正文排版/目录/上下篇/相关文档（mock-03）
     8  搜索结果页（mock-04）
     9  公告详情与公告列表（mock-05）
     10 404 页（mock-06）
   纪律：图标一律 SVG；渐变只用于 FAQ 主卡与 CTA 横幅；
         断点 1200（收右栏）→ 960（降列/侧栏变 chips）→ 760（收导航）→ 640（全单列）
   ============================================================ */

/* ===== 0. 全局底色：浅灰，白卡浮起的基础 ===== */
body { background: #f6f7f9; }

/* ===== 1. 顶栏（白底通栏；布局骨架 .topbar/.bar/.logo 在令牌文件中） ===== */
.topbar .logo a { display: flex; align-items: center; gap: 10px; text-decoration: none; color: inherit; }
.topbar .logo img { display: block; height: 24px; }
.topbar .logo .app { font-size: 14px; font-weight: 800; color: var(--ink); padding-left: 10px; border-left: 1px solid var(--line); }
.topbar .bar-login { margin-left: auto; }
.topbar .bar-login .btn-black { text-decoration: none; display: inline-block; }

/* 顶栏移动端适配（2026-09-28 取消中间导航后仅剩字号缩放） */
@media (max-width: 760px) {
	.topbar .bar { padding: 0 16px; }
	.topbar .logo img { height: 20px; }
	.topbar .logo .app { font-size: 13px; padding-left: 8px; }
	.topbar .btn { padding: 7px 14px; font-size: 12.5px; }
}

/* ===== 2. 黑色大页脚：样式已抽到共享文件 /user/assets/css/site-footer.css（两站同引） ===== */


/* ===== 3. 兜底列表（index.php；P2 起被各专属模板接管） ===== */
.sp-main { padding: 48px 0 84px; min-height: 50vh; }
.sp-pagehead { text-align: center; margin-bottom: 30px; }
.sp-pagehead h1 { font-size: 28px; font-weight: 800; margin: 0 0 6px; }
.sp-pagehead p { font-size: 13px; color: var(--ink-3); margin: 0; }

.sp-card { background: #fff; border-radius: 14px; box-shadow: 0 1px 3px rgba(16, 24, 40, .04); padding: 10px 26px; }
.sp-item { padding: 18px 0; border-bottom: 1px solid #f4f5f7; }
.sp-item:last-child { border-bottom: none; }
.sp-item-title { font-size: 15.5px; font-weight: 700; margin: 0 0 6px; }
.sp-item-title a { color: var(--ink); text-decoration: none; }
.sp-item-title a:hover { color: var(--blue); }
.sp-item-meta { font-size: 12.5px; color: var(--ink-3); margin: 0 0 6px; }
.sp-item-excerpt { font-size: 13px; color: var(--ink-2); margin: 0; line-height: 1.7; }

.sp-empty { text-align: center; padding: 60px 24px; }
.sp-empty h2 { font-size: 18px; font-weight: 700; margin: 0 0 8px; }
.sp-empty p { font-size: 13px; color: var(--ink-2); margin: 0; }

/* ===== 4. 数字分页（mock-04 .pager 视觉；页码白底描边胶囊提高辨识度） ===== */
.pagination { margin-top: 28px; display: flex; justify-content: center; }
.pagination .nav-links { display: flex; flex-wrap: wrap; gap: 8px; justify-content: center; }
.pagination .page-numbers { min-width: 36px; height: 36px; display: inline-flex; align-items: center; justify-content: center; border-radius: 99px; font-size: 13.5px; font-weight: 500; color: var(--ink-2); background: #fff; text-decoration: none; padding: 0 12px; border: 1px solid var(--line); transition: all .15s; }
.pagination .page-numbers:hover { border-color: var(--blue); color: var(--blue); }
.pagination .page-numbers.current { background: var(--blue); border-color: var(--blue); color: #fff; font-weight: 600; }
.pagination .page-numbers.dots { color: var(--ink-3); background: none; border-color: transparent; }

/* WP 辅助标题（如「文章分页」）视觉隐藏：无它则压在页码行上导致错位 */
.screen-reader-text { border: 0; clip: rect(1px, 1px, 1px, 1px); clip-path: inset(50%); height: 1px; width: 1px; margin: -1px; overflow: hidden; padding: 0; position: absolute !important; word-wrap: normal !important; }

/* ============================================================
   5. 首页（mock-01）
   ============================================================ */

/* 区块通用（同一 .wrap 版心 = 左右对齐） */
.sec { padding: 0 0 84px; }
.sec h2 { font-size: 28px; font-weight: 800; text-align: center; margin-bottom: 8px; }
.sec .desc { text-align: center; color: var(--ink-3); font-size: 13px; margin-bottom: 34px; }

/* Hero：大留白 + 柔和光晕氛围 */
.hero { position: relative; padding: 112px 0 72px; text-align: center; overflow: hidden; }
.hero::before { /* 顶部柔和蓝紫光晕（克制的氛围层） */
	content: ""; position: absolute; left: 50%; top: -220px; transform: translateX(-50%);
	width: 920px; height: 520px; pointer-events: none;
	background:
		radial-gradient(closest-side, rgba(99, 102, 241, .10), transparent 70%),
		radial-gradient(closest-side at 62% 60%, rgba(6, 182, 212, .08), transparent 70%);
}
.hero .wrap { position: relative; }
.hero h1 { font-size: 46px; font-weight: 800; letter-spacing: .5px; line-height: 1.3; }
.hero .sub { margin: 14px 0 0; font-size: 15px; color: var(--ink-2); }

/* 搜索框：浅灰底 + 内嵌按钮（GLM 现版样式） */
.hero .search { max-width: 760px; margin: 36px auto 0; display: flex; align-items: center; background: #eef0f4; border-radius: 99px; padding: 8px 8px 8px 28px; }
.hero .search input { flex: 1; border: none; outline: none; background: transparent; height: 44px; font-size: 15px; color: var(--ink); }
.hero .search input::placeholder { color: #a6adba; }
.hero .search button { flex: none; width: 46px; height: 46px; border-radius: 99px; border: none; background: var(--ink); color: #fff; cursor: pointer; display: flex; align-items: center; justify-content: center; transition: transform .15s; }
.hero .search button:hover { transform: scale(1.05); }
.hero .search button svg { display: block; }

/* 热门词：浅底胶囊无边框（视觉降级） */
.chips { margin-top: 18px; font-size: 12.5px; color: var(--ink-3); display: flex; justify-content: center; flex-wrap: wrap; gap: 10px; align-items: center; }
.chips a { display: inline-block; padding: 6px 16px; background: #eef0f4; border-radius: 99px; color: var(--ink-2); text-decoration: none; transition: all .2s; }
.chips a:hover { background: #e2e6ee; color: var(--ink); }

/* 办事快捷卡：与版心同宽 */
.quick-cards { margin-top: 44px; display: grid; grid-template-columns: repeat(5, 1fr); gap: 16px; }
.q-card { position: relative; background: #fff; border-radius: 14px; padding: 22px 16px; text-align: center; text-decoration: none; color: var(--ink); transition: all .2s; display: block; box-shadow: 0 1px 3px rgba(16, 24, 40, .04); }
.q-card:hover { transform: translateY(-3px); box-shadow: var(--shadow-hover); z-index: 5; } /* z-index：悬浮二维码放大后盖住相邻卡 */
.q-card .ib { width: 46px; height: 46px; margin: 0 auto 10px; border-radius: 999px; background: var(--ink); color: #fff; display: flex; align-items: center; justify-content: center; }
.q-card .ib svg { width: 22px; height: 22px; }
.q-card h3 { font-size: 14px; font-weight: 700; }
.q-card p { font-size: 12px; color: var(--ink-2); margin-top: 4px; line-height: 1.5; }
.q-card.q-hot .ib { background: var(--blue); } /* 主办事入口：仅徽标用主蓝区分 */
.q-card .qr-slot { display: block; width: 46px; height: 46px; margin: 0 auto 10px; } /* 二维码占位槽：保持布局稳定，不随悬停跳动 */
.q-card img.qr { position: absolute; top: 22px; left: 50%; width: 46px; height: 46px; border-radius: 12px; background: #fff; padding: 4px; display: block; transform: translateX(-50%); transition: top .18s ease, transform .18s ease, box-shadow .18s ease; }
.q-card:hover img.qr { top: 50%; transform: translate(-50%, -50%) scale(2.5); box-shadow: 0 14px 34px rgba(16, 24, 40, .18); } /* 悬停：滑到卡片正中放大，便于扫码 */

/* FAQ 卡：等高；每卡右上渐变光斑（--orb 变量） */
.faq-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 16px; align-items: stretch; }
.faq-card { position: relative; overflow: hidden; background: #fff; border-radius: 14px; padding: 22px 24px 18px; display: flex; flex-direction: column; transition: all .25s; box-shadow: 0 1px 3px rgba(16, 24, 40, .04); }
.faq-card:hover { transform: translateY(-3px); box-shadow: var(--shadow-hover); }
.faq-card::before { /* 右上明亮渐变光斑（卡片氛围插画层） */
	content: ""; position: absolute; top: -52px; right: -52px; width: 170px; height: 170px; border-radius: 50%; pointer-events: none;
	background: radial-gradient(circle at 32% 32%, var(--orb), transparent 68%); opacity: .5;
}
.faq-card .head { position: relative; display: flex; align-items: center; gap: 11px; padding-bottom: 14px; border-bottom: 1px solid #f0f1f4; margin-bottom: 4px; }
.faq-card .head .ico { width: 40px; height: 40px; border-radius: 999px; background: var(--ink); color: #fff; display: flex; align-items: center; justify-content: center; flex: none; }
.faq-card .head .ico svg { width: 20px; height: 20px; }
.faq-card .head h3 { font-size: 15px; font-weight: 700; line-height: 1.3; }
.faq-card .head small { display: block; font-size: 11.5px; color: var(--ink-3); font-weight: 400; margin-top: 2px; }
.faq-card ul { position: relative; list-style: none; margin: 0; padding: 0; flex: 1; }
.faq-card li a { display: flex; gap: 8px; align-items: baseline; padding: 10px 0; font-size: 13px; color: var(--ink-2); text-decoration: none; border-bottom: 1px solid #f4f5f7; line-height: 1.5; }
.faq-card li:last-child a { border-bottom: none; }
.faq-card li a:hover { color: var(--blue); }
.faq-card li a::before { content: "›"; color: #c9cdd6; font-weight: 800; flex: none; font-size: 14px; }
.faq-card .more { position: relative; margin-top: 8px; font-size: 12.5px; font-weight: 600; color: var(--ink); text-decoration: none; }
.faq-card:hover .more { color: var(--blue); }

/* 主卡（通用问题）：pastel 渐变 + 白角标 + CTA */
.faq-card.all { background: linear-gradient(150deg, #e9efff 0%, #f3efff 55%, #e6f6ff 100%); box-shadow: 0 6px 22px rgba(19, 76, 255, .08); }
.faq-card.all::before { width: 220px; height: 220px; top: -70px; right: -70px; opacity: .75; background: radial-gradient(circle at 35% 35%, #9db4ff, transparent 68%); }
.faq-card.all .head { border-bottom-color: rgba(19, 76, 255, .14); }
.faq-card.all .head .ico { background: var(--ink); color: #fff; box-shadow: 0 4px 12px rgba(10, 10, 10, .18); }
.faq-card.all li a { border-bottom-color: rgba(19, 76, 255, .08); }
.faq-card.all .badge-new { position: absolute; top: 16px; right: 18px; font-size: 11px; font-weight: 700; color: #fff; background: var(--blue); padding: 3px 11px; border-radius: 99px; letter-spacing: 1px; }
.faq-card.all .more { color: var(--blue); }

/* 服务公告：白卡 */
.notice { background: #fff; border-radius: 14px; padding: 6px 0; box-shadow: 0 1px 3px rgba(16, 24, 40, .04); }
.notice a { display: flex; gap: 14px; align-items: center; padding: 14px 26px; text-decoration: none; color: var(--ink); font-size: 14px; border-bottom: 1px solid #f4f5f7; }
.notice a:last-child { border-bottom: none; }
.notice a:hover { background: #fafbfd; }
.notice .n-tag { flex: none; font-size: 11.5px; background: #eaf1ff; color: var(--blue); padding: 2px 10px; border-radius: 99px; font-weight: 600; }
.notice a span.t { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.notice a time { margin-left: auto; color: var(--ink-3); font-size: 12.5px; flex: none; }

/* 底部行动横幅 */
.cta-banner { position: relative; overflow: hidden; border-radius: 16px; padding: 30px 36px; display: flex; align-items: center; gap: 24px; flex-wrap: wrap; background: linear-gradient(135deg, #e9efff 0%, #f3efff 55%, #e6f6ff 100%); box-shadow: 0 6px 22px rgba(19, 76, 255, .08); margin-bottom: 64px; }
.cta-banner::before { content: ""; position: absolute; top: -70px; right: -60px; width: 240px; height: 240px; border-radius: 50%; pointer-events: none; background: radial-gradient(circle at 35% 35%, #9db4ff, transparent 68%); opacity: .7; }
.cta-banner .t { position: relative; flex: 1; min-width: 260px; }
.cta-banner h3 { font-size: 19px; font-weight: 800; margin: 0 0 4px; }
.cta-banner p { font-size: 13px; color: var(--ink-2); margin: 0; }
.cta-banner .acts { position: relative; display: flex; gap: 12px; }
.cta-banner .acts .btn { text-decoration: none; display: inline-block; }

/* ============================================================
   6. 产品文档页（mock-02）
   ============================================================ */

/* 面包屑 */
.crumb { font-size: 12.5px; color: var(--ink-3); padding: 14px 0 0; }
.crumb a { color: var(--ink-3); text-decoration: none; }
.crumb a:hover { color: var(--blue); }
.crumb .sep { margin: 0 8px; color: #d4d6db; }

/* 布局：左栏产品导航 + 右侧主内容 */
.docs-layout { display: grid; grid-template-columns: minmax(0, 1fr) 232px; column-gap: 32px; row-gap: 18px; padding: 26px 0 84px; align-items: start; } /* 产品头横跨两栏，产品导航与搜索框顶部对齐（与文章页 .doc-layout 同构） */
.docs-layout .cat-head { grid-column: 1 / -1; }
.docs-layout .cat-search { margin-top: 0; }

/* 移动端产品横向 chips（≤960px 代替侧栏） */
.docs-side-mobile { display: none; gap: 8px; overflow-x: auto; padding: 2px 0 10px; -webkit-overflow-scrolling: touch; }
.docs-side-mobile a { flex: none; padding: 6px 14px; border: 1px solid var(--line); border-radius: 99px; font-size: 12.5px; color: var(--ink-2); text-decoration: none; }
.docs-side-mobile a.on { border-color: var(--blue); color: var(--blue); font-weight: 600; }

/* 左侧产品导航 */
.docs-side { background: #fff; border-radius: 14px; padding: 14px 10px; box-shadow: 0 1px 3px rgba(16, 24, 40, .04); }
.docs-side .grp { font-size: 11.5px; color: var(--ink-3); padding: 12px 12px 4px; font-weight: 600; }
.docs-side a.p { display: flex; align-items: center; gap: 8px; padding: 8px 12px; border-radius: 9px; font-size: 13px; color: var(--ink-2); text-decoration: none; transition: background .15s; }
.docs-side a.p:hover { background: var(--bg-soft); color: var(--ink); }
.docs-side a.p.on { background: var(--blue); color: #fff; font-weight: 600; }
.docs-side a.p.on .cnt { color: rgba(255, 255, 255, .8); }
.docs-side a.p.empty { color: var(--ink-3); } /* 空分类：可见但弱化 */
.docs-side .cnt { margin-left: auto; font-size: 11px; color: var(--ink-3); }

/* 产品头 */
.cat-head { display: flex; gap: 14px; align-items: flex-start; padding-bottom: 18px; border-bottom: 1px solid var(--line); }
.cat-head .ico { width: 48px; height: 48px; border-radius: 999px; background: var(--ink); color: #fff; display: flex; align-items: center; justify-content: center; flex: none; }
.cat-head h1 { font-size: 26px; font-weight: 800; line-height: 1.25; margin: 0; }
.cat-head .sub { font-size: 13px; color: var(--ink-2); margin-top: 4px; }
.cat-head .meta { margin-top: 8px; font-size: 12px; color: var(--ink-3); }

/* 产品内搜索（s + cat 参数） */
.cat-search { display: flex; gap: 10px; margin: 18px 0 6px; }
.cat-search input[type="search"] { flex: 1; height: 40px; border: 1px solid #e3e6ea; border-radius: 99px; padding: 0 18px; font-size: 13.5px; outline: none; background: #fff; }
.cat-search input[type="search"]:focus { border-color: var(--blue); }
.cat-search .btn { height: 40px; padding: 0 22px; }

/* 场景分组：白卡容器 */
.topic-group { background: #fff; border-radius: 14px; padding: 20px 24px 8px; box-shadow: 0 1px 3px rgba(16, 24, 40, .04); margin-top: 16px; }
.topic-group .tg-h { display: flex; align-items: center; gap: 8px; font-size: 15px; font-weight: 700; margin-bottom: 4px; }
.topic-group .tg-h .tagn { font-size: 11px; background: #eaf1ff; color: var(--blue); padding: 2px 10px; border-radius: 99px; font-weight: 600; }
.topic-group .tg-h .cnt { font-size: 11.5px; color: var(--ink-3); font-weight: 400; }
.doc-list a { display: flex; align-items: center; gap: 10px; padding: 13px 4px; border-bottom: 1px dashed #eceef2; font-size: 14px; color: var(--ink); text-decoration: none; transition: color .15s; }
.doc-list a:hover { color: var(--blue); }
.doc-list a::before { content: "→"; color: var(--blue); font-weight: 700; font-size: 13px; flex: none; }
.doc-list a time { margin-left: auto; color: var(--ink-3); font-size: 12px; flex: none; }

/* 空状态（分类无文档） */
.cat-empty { margin-top: 16px; background: #fff; border-radius: 14px; padding: 48px 0; text-align: center; color: var(--ink-3); font-size: 13.5px; box-shadow: 0 1px 3px rgba(16, 24, 40, .04); }

/* 反馈引导卡（产品页/详情页共用） */
.doc-feedback { border-radius: var(--radius-card); padding: 22px 26px; display: flex; align-items: center; gap: 20px; flex-wrap: wrap; margin-top: 34px; }
.doc-feedback .t { flex: 1; min-width: 240px; }
.doc-feedback h4 { font-size: 15px; font-weight: 800; margin: 0 0 2px; }
.doc-feedback p { font-size: 12.5px; color: var(--ink-2); margin: 0; }
.doc-feedback .btn { text-decoration: none; display: inline-block; }

/* ============================================================
   7. 文档详情（mock-03）
   ============================================================ */

/* 两栏布局：正文 | 右栏（页内目录在上 + 产品导航在下，整栏 sticky 跟随） */
.doc-layout { display: grid; grid-template-columns: minmax(0, 1fr) 232px; gap: 36px; padding: 26px 0 84px; align-items: start; }
.doc-sidecol { position: sticky; top: 16px; display: flex; flex-direction: column; gap: 14px; max-height: calc(100vh - 32px); overflow-y: auto; }

/* 正文：白卡容器 */
.doc-article { background: #fff; border-radius: 16px; padding: 34px 40px; box-shadow: 0 1px 3px rgba(16, 24, 40, .04); }
.doc-article h1 { font-size: 26px; font-weight: 800; line-height: 1.35; margin: 6px 0 10px; }
.doc-meta { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; font-size: 12px; color: var(--ink-3); padding-bottom: 16px; border-bottom: 1px solid var(--line); }
.tag-p { font-size: 11.5px; background: var(--blue); color: #fff; padding: 2px 10px; border-radius: 99px; font-weight: 600; }
.tag-t { font-size: 11.5px; background: #eaf1ff; color: var(--blue); padding: 2px 10px; border-radius: 99px; font-weight: 600; }

/* 正文排版 */
.doc-body { padding-top: 8px; font-size: 15px; color: var(--ink); line-height: 1.85; }
.doc-body h2 { font-size: 19px; font-weight: 800; margin: 34px 0 12px; padding-left: 12px; border-left: 4px solid var(--blue); }
.doc-body h3 { font-size: 15.5px; font-weight: 700; margin: 24px 0 8px; }
.doc-body ul, .doc-body ol { padding-left: 22px; margin: 10px 0; }
.doc-body li { margin: 6px 0; }
.doc-body a { color: var(--blue); }
.doc-body img { max-width: 100%; height: auto; border-radius: 8px; }
.doc-body table { width: 100%; border-collapse: collapse; font-size: 13.5px; margin: 12px 0; }
.doc-body th, .doc-body td { border: 1px solid var(--line); padding: 8px 12px; text-align: left; }
.doc-body th { background: var(--bg-soft); }
.doc-body code { background: var(--bg-soft); border: 1px solid var(--line); border-radius: 6px; padding: 1px 7px; font-size: 13px; font-family: Consolas, Menlo, monospace; }
.doc-body blockquote { margin: 14px 0; padding: 10px 18px; border-left: 3px solid var(--line); color: var(--ink-2); background: var(--bg-soft); border-radius: 0 8px 8px 0; }

/* 页内目录（右栏上部） */
.doc-toc { background: #fff; border-radius: 14px; padding: 14px 14px 10px; font-size: 12.5px; box-shadow: 0 1px 3px rgba(16, 24, 40, .04); }
.doc-toc .toc-title { font-weight: 700; color: var(--ink); margin-bottom: 10px; }
.doc-toc ul { list-style: none; margin: 0; padding: 0; }
.doc-toc li { margin: 2px 0; }
.doc-toc a { display: block; padding: 5px 0 5px 12px; border-left: 2px solid var(--line); color: var(--ink-2); text-decoration: none; line-height: 1.5; }
.doc-toc a:hover { color: var(--blue); border-left-color: var(--blue); }
.doc-toc li.sub a { padding-left: 26px; font-size: 12px; color: var(--ink-3); }

/* 上一篇 / 下一篇 */
.doc-nav { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; margin-top: 36px; }
.doc-nav a { border: 1px solid var(--line); border-radius: var(--radius-card); padding: 14px 18px; text-decoration: none; transition: all .2s; background: #fff; }
.doc-nav a:hover { border-color: var(--blue); }
.doc-nav a.next { text-align: right; }
.doc-nav .lbl { display: block; font-size: 11.5px; color: var(--ink-3); margin-bottom: 4px; }
.doc-nav .t { font-size: 13.5px; font-weight: 600; color: var(--ink); line-height: 1.5; }

/* 相关文档 */
.doc-related { margin-top: 28px; border-top: 1px solid var(--line); padding-top: 18px; }
.doc-related h4 { font-size: 14px; font-weight: 700; margin: 0 0 8px; }
.doc-related ul { list-style: none; margin: 0; padding: 0; }
.doc-related li a { display: flex; gap: 8px; padding: 8px 0; font-size: 13.5px; color: var(--ink-2); text-decoration: none; border-bottom: 1px dashed #f2f3f5; }
.doc-related li a::before { content: "→"; color: var(--blue); font-weight: 700; flex: none; }
.doc-related li a:hover { color: var(--blue); }

/* ============================================================
   8. 搜索结果页（mock-04）
   ============================================================ */

.search-head { padding: 36px 0 6px; max-width: 780px; margin: 0 auto; }
.search-head .pillbox { margin: 0; }
.search-head .pillbox .send svg { display: block; }

/* 范围 chip（从产品页带 cat 参数进入时显示） */
.scope-chip { display: inline-flex; align-items: center; gap: 8px; margin-top: 12px; font-size: 12px; color: var(--ink-2); }
.scope-chip .sc { display: inline-flex; align-items: center; gap: 6px; background: #eaf1ff; color: var(--blue); padding: 3px 8px 3px 12px; border-radius: 99px; font-weight: 600; }
.scope-chip .sc a { text-decoration: none; color: inherit; font-size: 11px; opacity: .7; }
.scope-chip .sc a:hover { opacity: 1; }
.result-stat { font-size: 12.5px; color: var(--ink-3); margin-top: 12px; }

/* 结果列表 */
.results { max-width: 780px; margin: 14px auto 0; padding-bottom: 56px; }
.results .pagination { margin-top: 20px; }
.result { display: block; padding: 20px 24px; border-radius: 14px; margin-bottom: 12px; text-decoration: none; transition: all .2s; background: #fff; box-shadow: 0 1px 3px rgba(16, 24, 40, .04); }
.result:hover { transform: translateY(-2px); box-shadow: var(--shadow-hover); }
.result .r-meta { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; margin-bottom: 6px; }
.result .r-meta .tag-p, .result .r-meta .tag-t { font-size: 11px; padding: 2px 9px; }
.tag-n { font-size: 11px; background: var(--ink); color: #fff; padding: 2px 9px; border-radius: 99px; font-weight: 600; } /* 公告 */
.result .r-meta time { margin-left: auto; font-size: 11.5px; color: var(--ink-3); }
.result h3 { font-size: 15.5px; font-weight: 700; color: var(--ink); margin: 0 0 5px; line-height: 1.5; }
.result:hover h3 { color: var(--blue); }
.result p { font-size: 13px; color: var(--ink-2); margin: 0; line-height: 1.7; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
.result mark { background: #dfe9ff; color: inherit; border-radius: 3px; padding: 0 2px; }

/* 无结果空状态（与结果卡共用 .results 容器，宽度天然一致） */
.search-empty { margin: 0 0 72px; text-align: center; padding: 48px 36px 44px; background: #fff; border-radius: 16px; box-shadow: 0 1px 3px rgba(16, 24, 40, .04); }
.search-empty .ico { color: var(--ink-3); margin-bottom: 14px; }
.search-empty h2 { font-size: 19px; font-weight: 800; margin: 0 0 6px; }
.search-empty > p { font-size: 13px; color: var(--ink-2); margin: 0 0 18px; }
.search-empty .tips { display: flex; justify-content: center; flex-wrap: wrap; gap: 8px; margin-bottom: 24px; }
.search-empty .tips a { padding: 5px 14px; border: 1px solid var(--line); border-radius: 99px; font-size: 12.5px; color: var(--ink-2); text-decoration: none; }
.search-empty .tips a:hover { border-color: var(--blue); color: var(--blue); }
.search-empty .acts { display: flex; justify-content: center; gap: 12px; }
.search-empty .acts .btn { text-decoration: none; display: inline-block; }

/* ============================================================
   9. 公告详情与公告列表（mock-05）
   ============================================================ */

/* 公告详情：单栏窄版白卡 */
.ann-wrap { max-width: 760px; margin: 26px auto 72px; padding: 36px 44px; background: #fff; border-radius: 16px; box-shadow: 0 1px 3px rgba(16, 24, 40, .04); }

/* 公告头 */
.ann-head { padding-bottom: 18px; border-bottom: 1px solid var(--line); }
.ann-head .type { display: inline-block; font-size: 11.5px; background: var(--ink); color: #fff; padding: 3px 12px; border-radius: 99px; font-weight: 600; margin-bottom: 12px; }
.ann-head h1 { font-size: 26px; font-weight: 800; line-height: 1.4; margin: 0 0 10px; }
.ann-head .meta { font-size: 12.5px; color: var(--ink-3); }

/* 公告正文（与文档详情同族排版，无目录） */
.ann-body { padding-top: 6px; font-size: 15px; line-height: 1.9; color: var(--ink); }
.ann-body h2 { font-size: 18px; font-weight: 800; margin: 30px 0 10px; padding-left: 12px; border-left: 4px solid var(--blue); }
.ann-body h3 { font-size: 15.5px; font-weight: 700; margin: 22px 0 8px; }
.ann-body ul, .ann-body ol { padding-left: 22px; margin: 10px 0; }
.ann-body li { margin: 7px 0; }
.ann-body a { color: var(--blue); }
.ann-body img { max-width: 100%; height: auto; border-radius: 8px; }

/* 更多公告 */
.ann-more { margin-top: 36px; border-top: 1px solid var(--line); padding-top: 16px; }
.ann-more h4 { font-size: 14px; font-weight: 700; margin: 0 0 4px; display: flex; align-items: center; justify-content: space-between; }
.ann-more h4 a { font-size: 12.5px; font-weight: 600; color: var(--ink-2); text-decoration: none; }
.ann-more h4 a:hover { color: var(--blue); }
.ann-more a.item { display: flex; align-items: center; gap: 12px; padding: 11px 2px; border-bottom: 1px dashed #f2f3f5; text-decoration: none; font-size: 13.5px; color: var(--ink); }
.ann-more a.item:hover { color: var(--blue); }
.ann-more .n-tag { flex: none; font-size: 11px; background: #eaf1ff; color: var(--blue); padding: 2px 9px; border-radius: 99px; font-weight: 600; }
.ann-more .t { flex: 1; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.ann-more time { flex: none; color: var(--ink-3); font-size: 12px; }

/* 公告列表页（category.php announcement 分支） */
.ann-list { padding: 26px 0 84px; max-width: 860px; margin: 0 auto; }

/* ============================================================
   10. 404 页（mock-06）
   ============================================================ */

.nf-wrap { max-width: 680px; margin: 48px auto 80px; padding: 60px 40px 52px; text-align: center; background: #fff; border-radius: 16px; box-shadow: 0 1px 3px rgba(16, 24, 40, .04); }

/* 大字 404 */
.nf-code { font-size: 104px; font-weight: 900; line-height: 1; color: var(--ink); letter-spacing: 2px; }
.nf-code b { color: var(--blue); font-weight: 900; } /* 中间的 0 用主蓝点缀 */
.nf-cap { margin-top: 6px; font-size: 11.5px; letter-spacing: 4px; color: var(--ink-3); text-transform: uppercase; }

.nf-wrap h1 { font-size: 21px; font-weight: 800; margin: 34px 0 6px; }
.nf-wrap .sub { font-size: 13.5px; color: var(--ink-2); margin: 0 0 26px; }

/* 搜索 */
.nf-wrap .pillbox { margin: 0 auto; text-align: left; }
.nf-wrap .pillbox .send svg { display: block; }

/* 热门词 */
.nf-chips { margin-top: 16px; font-size: 12.5px; color: var(--ink-3); display: flex; justify-content: center; flex-wrap: wrap; gap: 8px; align-items: center; }
.nf-chips a { display: inline-block; padding: 4px 14px; border: 1px solid var(--line); border-radius: 99px; color: var(--ink-2); text-decoration: none; transition: all .2s; }
.nf-chips a:hover { border-color: var(--blue); color: var(--blue); }

/* 产品直达 */
.nf-prods { margin-top: 34px; padding-top: 24px; border-top: 1px dashed #e5e7ec; font-size: 12.5px; color: var(--ink-3); display: flex; justify-content: center; flex-wrap: wrap; gap: 10px 22px; align-items: center; }
.nf-prods a { color: var(--ink); text-decoration: none; font-weight: 600; }
.nf-prods a:hover { color: var(--blue); }

/* 操作 */
.nf-acts { display: flex; justify-content: center; gap: 12px; margin-top: 30px; }
.nf-acts .btn { text-decoration: none; display: inline-block; }

/* ============================================================
   响应式断点（第四节：1200 → 960 → 760 → 640）
   ============================================================ */

@media (max-width: 1200px) {
	.doc-layout { grid-template-columns: minmax(0, 1fr); } /* 收右栏 */
	.doc-sidecol { display: none; }
	.docs-side-mobile { display: flex; }                     /* 右栏变 chips */
}

@media (max-width: 960px) {
	.docs-layout { grid-template-columns: 1fr; }
	.docs-side { display: none; }
	.docs-side-mobile { display: flex; }
	.faq-grid { grid-template-columns: 1fr 1fr; }
	.quick-cards { grid-template-columns: repeat(3, 1fr); }
}

@media (max-width: 640px) {
	.faq-grid { grid-template-columns: 1fr; }
	.quick-cards { grid-template-columns: repeat(2, 1fr); }
	.doc-article { padding: 26px 20px; }
	.ann-wrap { padding: 26px 20px; margin: 16px auto 48px; }
	.nf-wrap { padding: 44px 22px 40px; margin: 24px auto 56px; }
	.hero { padding-top: 72px; }
	.hero h1 { font-size: 34px; }
}

/* ============================================================
   顶栏登录态（2026-09-30）：已登录 → 头像下拉；未登录 → 登录/注册钮
   JS 判定期间隐藏按钮防闪（.sp-auth 由 header.php 内联脚本添加，无 JS 时不会加 → 按钮照常显示）
   ============================================================ */
.sp-auth .bar-login { visibility: hidden; }

.bar-login .user-menu { position: relative; }
.bar-login .um-btn { display: flex; align-items: center; gap: 9px; background: none; border: none; cursor: pointer; padding: 6px 4px; font-family: inherit; }
.bar-login .um-btn .ava { width: 32px; height: 32px; border-radius: 50%; background: var(--ink); color: #fff; display: flex; align-items: center; justify-content: center; font-size: 12.5px; font-weight: 700; }
.bar-login .um-btn .ph { font-size: 13px; color: var(--ink-2); font-weight: 600; }
.bar-login .um-btn svg { width: 12px; height: 12px; color: var(--ink-3); transform: rotate(90deg); transition: transform .2s; }
.bar-login .um-drop { position: absolute; right: 0; top: calc(100% + 10px); width: 196px; background: #fff; border-radius: 14px; box-shadow: 0 12px 40px rgba(16,24,40,.14); padding: 8px; opacity: 0; visibility: hidden; transform: translateY(-6px); transition: all .18s; z-index: 60; border: 1px solid #f0f1f4; }
.bar-login .user-menu:hover .um-drop,
.bar-login .user-menu:focus-within .um-drop,
.bar-login .user-menu.open .um-drop { opacity: 1; visibility: visible; transform: translateY(0); }
.bar-login .user-menu:hover .um-btn svg { transform: rotate(90deg) scale(1.1); }
.bar-login .um-drop a { display: flex; align-items: center; gap: 11px; padding: 10px 12px; border-radius: 9px; font-size: 13px; color: var(--ink-2); text-decoration: none; transition: all .13s; }
.bar-login .um-drop a svg { width: 16px; height: 16px; flex: none; }
.bar-login .um-drop a:hover { background: #f6f7f9; color: var(--ink); }
.bar-login .um-drop .um-sep { height: 1px; background: #f0f1f4; margin: 6px 10px; }
.bar-login .um-drop a.logout { color: var(--ink-3); }
.bar-login .um-drop a.logout:hover { color: #d4380d; }
@media (max-width: 760px) {
	.bar-login .um-btn .ph { display: none; }
	.bar-login .um-drop { right: -4px; }
}

/* ============================================================
   在线客服占位 toast（2026-10-09）：点击 .sp-chat-soon 由 portal-chat.js 弹出
   淡黄警示胶囊居中悬浮（2026-10-09 用户指示：黑底改淡黄提示色，theme.css 无警示令牌故就地取值）；
   z-index 盖过顶栏下拉（60）
   ============================================================ */
.sp-chat-toast { position: fixed; left: 50%; top: 84px; transform: translate(-50%, -8px); background: #fffbe6; color: #874d00; border: 1px solid #ffe58f; font-size: var(--fs-sub); font-weight: 600; padding: 10px 22px; border-radius: var(--radius-btn); box-shadow: 0 12px 32px rgba(212, 136, 6, .16); opacity: 0; visibility: hidden; transition: all .2s; z-index: 90; pointer-events: none; max-width: calc(100vw - 32px); }
.sp-chat-toast.show { opacity: 1; visibility: visible; transform: translate(-50%, 0); }
