/* 沈阳玄渊科技有限公司 官网（备案版）
   刻意做得克制：无表单、无交互、无价格、无对外承诺性数据。
   零外部依赖：不引用任何 CDN、外部字体或统计脚本。 */

:root{
  --ink-900:#04202f; --ink-800:#062a44; --ink-700:#0a3d62; --ink-600:#14507c;
  --zhu:#c0392b;
  --paper:#ffffff; --paper-2:#f3f6f8; --rule:#dde4ea;
  --t:#16232d; --t2:#54677a;
  /* --t3 原为 #7d8fa0，白底上只有 3.33:1，正文级小字读不清；
     --inv-3 原为 #6f8ba3，深蓝底上 4.15:1。各调一档后都过 4.5:1。 */
  --t3:#5f7284;
  --inv:#ffffff; --inv-2:#a9c0d2; --inv-3:#8aa3b8;
  --maxw:1080px;
}
*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{margin:0;background:var(--paper);color:var(--t);font-size:16px;line-height:1.85;
  font-family:"PingFang SC","Hiragino Sans GB","Source Han Sans SC","Microsoft YaHei",system-ui,sans-serif;
  -webkit-font-smoothing:antialiased}
img{max-width:100%;display:block}
a{color:inherit;text-decoration:none}
h1,h2,h3{margin:0;font-weight:700;line-height:1.4}
p{margin:0}
ul{margin:0;padding:0;list-style:none}
/* 焦点环。原来是单层朱色：落在深蓝页头上只有 2.71:1（需 3:1），
   而顶部导航、面包屑、品牌、页脚链接全在深底上——键盘用户 Tab
   一圈几乎看不见自己在哪。白+朱双环在两种底色上都成立。 */
:focus-visible{outline:2px solid var(--inv);outline-offset:2px;
  box-shadow:0 0 0 4px var(--zhu)}

/* 跳到主内容：平时移出视口，聚焦时归位。
   顶部导航六项加顶栏，每页都要 Tab 穿一遍才够到正文。 */
.skip{position:absolute;left:-9999px;top:0;z-index:99;
  background:var(--ink-800);color:var(--inv);padding:10px 18px;font-size:14px}
.skip:focus{left:0}
.wrap{max-width:var(--maxw);margin:0 auto;padding:0 24px}

/* 顶栏 */
.topbar{background:var(--ink-900);color:var(--inv-3);font-size:12.5px}
.topbar .wrap{display:flex;justify-content:space-between;gap:14px;height:36px;align-items:center}
@media(max-width:640px){.topbar .wrap>span:last-child{display:none}}

header{background:var(--ink-800);border-bottom:1px solid rgba(255,255,255,.08)}
.nav{display:flex;align-items:center;height:68px;gap:12px}
.brand{display:flex;align-items:center;gap:11px;color:#fff}
/* 38px 而不是 32px：32 是当初按上一版那个图形（三条粗横 + 一个水滴）调的，
   现在换成玄渊正式标识，九笔细线密度高得多——32px 下笔画只剩 1.45px、
   三竖之间只有 3.2px，非视网膜屏上会糊成一团。38px 让笔画到 1.73px、
   间距 3.8px，形还立得住。只改尺寸，不动比例与颜色（品牌手册禁止变形）。 */
.brand svg{width:38px;height:38px;border-radius:8px;flex:0 0 auto}
.brand .bn{display:block;font-size:16.5px;font-weight:700;line-height:1.25}
.brand .bc{display:block;font-size:10.5px;color:var(--inv-3);letter-spacing:.2em;line-height:1.25;margin-top:2px}
nav.main{margin-left:auto;display:flex;flex-wrap:wrap}
nav.main a{color:var(--inv-2);font-size:14.5px;margin-left:28px;padding:6px 0;position:relative}
nav.main a:first-child{margin-left:0}
nav.main a:hover{color:#fff}
nav.main a.on{color:#fff}
/* 当前页指示：朱色在深蓝上 2.71:1，配一层白色底衬才看得出 */
nav.main a.on::after{content:"";position:absolute;left:0;right:0;bottom:-1px;height:2px;background:var(--zhu)}

/* ── 二级菜单 ─────────────────────────────────────────────
   纯 CSS：hover 打开、focus-within 也打开（键盘 Tab 进去要能用）。
   不用 JS——官网是静态导出的，能不引脚本就不引。
   触屏上没有 hover，所以 ≤720px 直接展开成缩进子项，见下面的断点。 */
/* 间距挂在外层 span 上：nav.main a 的 margin-left 只作用于 <a>，
   而父项被包了一层，于是它和前一项贴在了一起（实测「在线预约服务与支持」连成一片）。 */
.navgrp{position:relative;display:inline-block;margin-left:28px}
.navgrp > a{display:inline-block;margin-left:0}
/* 父项是不可点的标题（它指向的下载页是空的），但要能被键盘聚焦，
   否则 :focus-within 打不开子菜单。所以用 button 而不是 span，
   再把浏览器给 button 的那身默认样式全部抹掉。 */
.navhead{appearance:none;background:none;border:0;padding:6px 0;margin:0;
  font:inherit;font-size:14.5px;color:var(--inv-2);cursor:default;
  display:inline-block;letter-spacing:inherit}
.navgrp:hover .navhead,.navgrp:focus-within .navhead{color:#fff}
.navgrp .cv{display:inline-block;width:0;height:0;margin-left:6px;vertical-align:middle;
  border-left:3.5px solid transparent;border-right:3.5px solid transparent;
  border-top:4px solid currentColor;opacity:.7}
.navsub{display:none;position:absolute;left:-14px;top:100%;z-index:40;min-width:186px;
  padding:6px 0;background:var(--ink-900);border:1px solid rgba(255,255,255,.14);
  border-radius:3px;box-shadow:0 10px 30px -12px rgba(0,0,0,.6)}
.navgrp:hover .navsub,.navgrp:focus-within .navsub{display:block}
/* 子菜单的链接也在 nav.main 里，会继承那条 margin-left:28px，
   而 :first-child 只给第一个清零——结果是第一项比其余两项靠左 28px。 */
.navsub a{display:block;margin:0 !important;padding:9px 16px;font-size:14px;
  color:var(--inv-2);white-space:nowrap}
.navsub a:hover,.navsub a:focus-visible{background:rgba(255,255,255,.08);color:#fff}
.navsub a::after{display:none}
/* 悬停时鼠标要能从父项斜着移到子菜单，中间不能有 1px 的空档 */
.navgrp::after{content:"";position:absolute;left:0;right:0;top:100%;height:10px}
@media(max-width:720px){
  /* 只改上下。写成 padding:14px 0 会把 .wrap 的左右 24px 一起清掉——
     2026-09-03 实测：375px 下 logo、导航、登录按钮全部 x=0 贴着屏幕边，
     而它下面的面包屑、标题、正文、页脚都从 24px 开始，整排错开。 */
  .nav{height:auto;padding-top:14px;padding-bottom:14px;flex-wrap:wrap;row-gap:4px}
  nav.main a{padding:9px 0}
  nav.main{margin-left:0;width:100%;margin-top:12px;gap:0}
  nav.main a{margin-left:0;margin-right:22px;font-size:14px}
  /* 触屏没有 hover，藏起来等于没有——直接摊开成缩进的子项 */
  .navgrp{display:block;width:100%;margin-left:0}
  .navgrp .cv{display:none}
  .navsub{display:block;position:static;min-width:0;padding:0 0 0 14px;margin:2px 0 6px;
    background:none;border:0;border-left:2px solid rgba(255,255,255,.2);box-shadow:none}
  .navsub a{padding:7px 0;font-size:13.5px}
  .navgrp::after{display:none}
}

/* 页头 */
.phead{background:var(--ink-800);color:var(--inv);padding:56px 0}
.phead .kicker{font-size:11px;letter-spacing:.34em;color:var(--inv-3);font-weight:700;margin-bottom:14px}
.phead h1{font-size:clamp(23px,3.4vw,34px)}
.phead p{margin-top:16px;color:var(--inv-2);font-size:16.5px;max-width:760px}
.phead .line{margin-top:30px;display:flex;align-items:center;gap:10px}
.phead .line i{display:block;width:60px;height:2px;background:rgba(255,255,255,.5)}
.phead .line s{display:block;width:9px;height:9px;background:var(--zhu);text-decoration:none;
  border-radius:50% 50% 50% 50%/60% 60% 40% 40%}
.crumb{font-size:12.5px;color:var(--inv-3);margin-bottom:18px}
.crumb i{font-style:normal;margin:0 8px;opacity:.55}
.crumb a:hover{color:#fff}

/* 区块 */
section{padding:64px 0}
section.grey{background:var(--paper-2)}
.mark{display:flex;align-items:center;gap:10px;margin-bottom:16px}
.mark i{display:block;width:32px;height:2px;background:var(--ink-700)}
.mark s{display:block;width:8px;height:8px;background:var(--zhu);text-decoration:none;
  border-radius:50% 50% 50% 50%/60% 60% 40% 40%}
h2{font-size:clamp(20px,2.5vw,27px)}
.lede{margin-top:14px;color:var(--t2);max-width:800px}
section p+p{margin-top:14px}

/* 卡片 */
.grid{display:grid;gap:22px;margin-top:36px}
.g3{grid-template-columns:repeat(auto-fit,minmax(266px,1fr))}
.g2{grid-template-columns:repeat(auto-fit,minmax(min(320px,100%),1fr))}
.card{background:var(--paper);border:1px solid var(--rule);padding:26px 24px}
.card .tag{display:block;font-size:10.5px;letter-spacing:.2em;font-weight:700;color:var(--zhu);margin-bottom:11px}
.card h3{font-size:17.5px}
.card p{margin-top:10px;font-size:14.5px;color:var(--t2);line-height:1.8}
.card ul{margin-top:12px}
.card li{font-size:14px;color:var(--t2);padding-left:16px;position:relative;margin-top:7px}
.card li::before{content:"";position:absolute;left:0;top:11px;width:5px;height:5px;
  background:var(--ink-700);border-radius:50%}

/* 表格 */
.tbl{width:100%;border-collapse:collapse;margin-top:30px;font-size:15px}
.tbl th,.tbl td{text-align:left;padding:15px 16px;border-bottom:1px solid var(--rule);vertical-align:top}
.tbl th{color:var(--ink-700);white-space:nowrap;width:150px;font-weight:700}
.tbl td{color:var(--t2)}
.tbl-scroll{overflow-x:auto}

.note{margin-top:28px;font-size:13.5px;color:var(--t2);border-left:2px solid var(--rule);padding-left:16px;max-width:820px}

/* 页脚 */
footer{background:var(--ink-900);color:var(--inv-3);font-size:13.5px;padding:52px 0 30px}
.fgrid{display:grid;grid-template-columns:1.6fr 1fr 1fr;gap:36px}
@media(max-width:760px){.fgrid{grid-template-columns:1fr;gap:26px}}
.fgrid h4{font-size:11.5px;letter-spacing:.2em;color:var(--inv-2);margin-bottom:14px;font-weight:700}
.fgrid li{margin-top:8px}
.fgrid a:hover{color:#fff}
.fbrand b{color:#fff;font-size:15.5px}
.fbrand p{margin-top:10px;line-height:1.85;max-width:400px}
.fbot{margin-top:40px;padding-top:20px;border-top:1px solid rgba(255,255,255,.09);
  display:flex;justify-content:space-between;gap:14px;flex-wrap:wrap;font-size:12.5px}
.fbot a{color:var(--inv-2)}
.beian{color:var(--inv-2)}

@media print{header,.topbar,footer{display:none}body{color:#000}}

/* ===== 经营版新增：资费表、表单、流程条 ===== */
.plans{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(280px,100%),1fr));gap:22px;margin-top:34px}
.plan{border:1px solid var(--rule);background:#fff;padding:28px 26px;display:flex;flex-direction:column}
.plan.pick{border-color:var(--ink-700);border-width:2px}
.plan .pn{font-size:19px;font-weight:700}
.plan .pd{margin-top:8px;font-size:13.5px;color:var(--t2);min-height:44px}
.plan .price{margin-top:18px;padding-top:18px;border-top:1px solid var(--rule)}
.plan .price b{font-size:28px;color:var(--ink-700);letter-spacing:-.02em}
.plan .price span{font-size:13px;color:var(--t2);margin-left:6px}
.plan .fill{color:var(--zhu);font-weight:700}
.plan ul{margin-top:18px;flex:1}
.plan li{font-size:14px;color:var(--t2);padding-left:17px;position:relative;margin-top:8px}
.plan li::before{content:"";position:absolute;left:0;top:11px;width:5px;height:5px;background:var(--ink-700);border-radius:50%}
.plan .act{margin-top:22px}

.steps{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:1px;background:var(--rule);
  border:1px solid var(--rule);margin-top:32px}
.step{background:#fff;padding:24px 22px}
.step .sn{font-size:11px;letter-spacing:.2em;color:var(--zhu);font-weight:700}
.step b{display:block;margin-top:9px;font-size:16px}
.step p{margin-top:9px;font-size:13.5px;color:var(--t2);line-height:1.75}

.btn{display:inline-block;padding:12px 24px;border-radius:3px;font-weight:600;font-size:15px;
  border:1px solid transparent;cursor:pointer;font-family:inherit}
.btn-ink{background:var(--ink-700);color:#fff}
.btn-ink:hover{background:var(--ink-600)}
.btn-line{border-color:var(--rule);color:var(--ink-700)}
.btn-line:hover{border-color:var(--ink-700)}
.btns{display:flex;gap:12px;flex-wrap:wrap;margin-top:28px}

.form{max-width:620px;margin-top:30px}
.form .f{margin-top:18px}
.form label{display:block;font-size:13.5px;color:var(--t);margin-bottom:7px;font-weight:600}
.form label em{font-style:normal;color:var(--zhu);margin-left:3px}
.form input,.form select,.form textarea{width:100%;padding:12px 14px;border:1px solid var(--rule);
  border-radius:3px;font-family:inherit;font-size:16px;background:#fff;color:var(--t)}
/* 16px 不是随手写的：iOS Safari 对小于 16px 的表单控件在聚焦时会强制放大页面，
   用户填完还得自己捏回去，每换一个字段可能再来一次。别改回 15px。 */
.form textarea{min-height:92px;resize:vertical}
.form .consent{display:flex;gap:10px;align-items:flex-start;margin-top:20px;font-size:13px;color:var(--t2)}
.form .consent input{width:16px;height:16px;margin-top:3px;flex:0 0 auto;accent-color:var(--zhu)}
/* 预约类型：两个大点击块，不是两个 16px 的小圆点。
   .consent 那里已经证明过这个做法——整块可点，而不是只有那个方框。 */
.form fieldset.bk{border:0;padding:0;margin:0}
.form fieldset.bk legend{padding:0;font-size:13.5px;color:var(--t);margin-bottom:7px;font-weight:600}
.form fieldset.bk legend em{font-style:normal;color:var(--zhu);margin-left:3px}
.bk-opt{display:flex;gap:11px;align-items:flex-start;cursor:pointer;
  border:1px solid var(--rule);border-radius:3px;padding:13px 15px;margin-top:8px;background:#fff}
.bk-opt:hover{border-color:var(--ink-600)}
.bk-opt:has(input:checked){border-color:var(--ink-700);box-shadow:inset 0 0 0 1px var(--ink-700)}
.bk-opt input{width:16px;height:16px;margin-top:3px;flex:0 0 auto;accent-color:var(--zhu)}
.bk-opt b{display:block;font-size:15px;color:var(--t);font-weight:600}
.bk-opt i{display:block;font-style:normal;margin-top:4px;font-size:13px;color:var(--t3);line-height:1.6}
section.ink .bk-opt{background:rgba(255,255,255,.05);border-color:rgba(255,255,255,.18)}
section.ink .bk-opt b{color:#fff}
section.ink .bk-opt i{color:var(--inv-3)}
section.ink .form fieldset.bk legend{color:var(--inv)}
.formmsg{display:none;margin-top:16px;padding:13px 15px;border-radius:3px;font-size:14px;
  background:var(--paper-2);border:1px solid var(--rule)}
.formmsg.err{background:rgba(192,57,43,.07);border-color:rgba(192,57,43,.4);color:#8e2b1e}

.doc h3{margin-top:34px;font-size:17.5px}
.doc h3:first-of-type{margin-top:0}
.doc p{margin-top:12px;color:var(--t2);max-width:860px}
.doc ol{margin:12px 0 0;padding-left:22px;color:var(--t2)}
.doc ol li{margin-top:8px;padding-left:0}
.doc ol li::before{display:none}
.todo{background:rgba(192,57,43,.07);border-left:3px solid var(--zhu);padding:16px 20px;margin-top:26px;
  font-size:14px;color:var(--t2)}
.todo b{color:var(--zhu)}


/* ===== 后台可编排的版式工具类 =====
   后台每个内容模块都能选底色、留白、对齐与列数，选项落在这些 class 上。
   模块本身不写内联样式，改版时只改这里一处。 */
section.compact{padding:40px 0}
section.loose{padding:96px 0}
section.ink{background:var(--ink-800);color:var(--inv)}
section.ink h2,section.ink h3,section.ink .card h3{color:#fff}
section.ink .lede,section.ink .note{color:var(--inv-2)}
section.ink .mark i{background:rgba(255,255,255,.55)}
section.ink .note{border-left-color:rgba(255,255,255,.28)}
section.ink .card{background:rgba(255,255,255,.05);border-color:rgba(255,255,255,.14)}
section.ink .card p,section.ink .card li{color:var(--inv-2)}
section.ink .card li::before{background:var(--inv-3)}
section.ink .btn-line{border-color:rgba(255,255,255,.45);color:#fff}
section.ink .btn-line:hover{border-color:#fff}
/* 深底只反白了一半——2026-09-02 按 WCAG 相对亮度算出来的实测值：
   .doc 正文 2.53:1、.tbl 表头 1.31:1（几乎隐形）、.card .tag 2.35:1、
   .form label 1.08:1。「深蓝底（反白字）」是后台底色下拉里的正式选项、
   对每种模块都开放，编辑在资费表或协议正文上选一次，那一屏就读不出来了。
   下面按模块把漏掉的几处补齐。 */
section.ink .doc p{color:var(--inv-2)}
section.ink .doc ol{color:var(--inv-2)}
section.ink .doc ul{color:var(--inv-2)}
section.ink .doc h3{color:#fff}
section.ink .doc h4{color:#fff}
section.ink .doc hr{border-top-color:rgba(255,255,255,.18)}
section.ink .tbl th{color:#fff}
section.ink .tbl td{color:var(--inv-2)}
section.ink .tbl th,section.ink .tbl td{border-bottom-color:rgba(255,255,255,.16)}
/* 朱色 #c0392b 在 --ink-800 上只有 2.71:1，深底上必须提亮，不能直接用品牌色 */
section.ink .tag{color:#ff9d92}
section.ink .form label{color:var(--inv)}
section.ink .form .consent{color:var(--inv-2)}
section.ink .fig figcaption{color:var(--inv-3)}

/* 最新问答（首页上的支持中心快照）。刻意做得比卡片轻：
   它是列表不是卖点，视觉上不该跟上面的产品卡片抢。 */
.qa{display:grid;gap:0;border-top:1px solid var(--rule);margin-top:26px}
.qa-item{padding:20px 0;border-bottom:1px solid var(--rule)}
.qa-item h3{font-size:16.5px;margin:0}
.qa-item h3 a{color:var(--ink-800);text-decoration:none}
.qa-item h3 a:hover{color:var(--ink-600);text-decoration:underline}
.qa-meta{margin:7px 0 0;font-size:13px;color:var(--t3)}
.qa-body{margin:9px 0 0;font-size:14.5px;color:var(--t2);max-width:860px}
.qa-reply{margin:11px 0 0;padding:9px 0 9px 14px;border-left:2px solid var(--zhu);
  font-size:14px;color:var(--t2);max-width:860px}
.qa-reply .qa-who{color:var(--ink-700);font-weight:700}
section.ink .qa{border-top-color:rgba(255,255,255,.16)}
section.ink .qa-item{border-bottom-color:rgba(255,255,255,.16)}
section.ink .qa-item h3 a{color:#fff}
section.ink .qa-meta{color:var(--inv-3)}
section.ink .qa-body,section.ink .qa-reply{color:var(--inv-2)}
section.ink .qa-reply .qa-who{color:#ff9d92}

/* 深底上的白底岛屿：.plan / .step / .dl-item / .formmsg 自带白底却不声明字色，
   于是 section.ink 的白色继承下来——白字压在白底上，实测 1.00:1，标题整行消失。
   2026-09-03 实测受影响的是：套餐名、开通流程四步的步骤名、下载项文件名、
   以及表单提交后的那句提示。之前那轮只补了 prose / table / cards 三种，
   因为测试只渲染了这三种，而「深蓝底」在后台是对每种模块都开放的。 */
section.ink .plan,section.ink .step,section.ink .dl-item,section.ink .formmsg{color:var(--t)}
section.ink .plan .pn,section.ink .step b,section.ink .dl-top b{color:var(--t)}
section.ink .todo{color:var(--inv-2)}
/* 朱色装饰在深蓝上只有 2.71:1，深底一律换成已经验过的 #ff9d92（7.37:1） */
section.ink nav.main a.on::after{background:#ff9d92}

/* ── 首屏产品示意（DashboardBlock）────────────────────────────
   全站原本 <img> 数量为 0：卖的是「按区域、门店逐级查看、同比环比对照」，
   一个纯视觉的能力，而客户一个像素都看不到。这块用 HTML 画出来，
   不走图片管线、改数字就是改文案、也不必为脱敏单独出一版图。 */
.db{border:1px solid var(--rule);border-radius:4px;background:var(--paper);
  overflow:hidden;margin-top:26px}
.db-bar{display:flex;align-items:center;gap:12px;flex-wrap:wrap;
  padding:12px 18px;border-bottom:1px solid var(--rule);background:var(--paper-2)}
.db-role{font-size:12.5px;font-weight:700;color:#fff;background:var(--ink-700);padding:3px 10px;border-radius:2px;letter-spacing:.02em}
.db-scope{font-size:13px;color:var(--t2)}
.db-demo{margin-left:auto;font-size:11.5px;letter-spacing:.12em;padding:3px 9px;
  border:1px solid var(--rule);border-radius:3px;color:var(--t3);background:var(--paper)}
.db-tiles{display:grid;gap:1px;background:var(--rule);
  grid-template-columns:repeat(auto-fit,minmax(min(160px,100%),1fr))}
.db-tile{background:var(--paper);padding:16px 18px 18px}
.db-name{display:block;font-size:12.5px;color:var(--t3)}
.db-val{display:block;margin-top:6px;font-size:26px;line-height:1.15;color:var(--ink-800);
  font-variant-numeric:tabular-nums}
.db-val.is-up{color:#1d6b45}
.db-val.is-down{color:var(--zhu)}
.db-note{display:block;margin-top:5px;font-size:12.5px;color:var(--t3)}
.db-rank{padding:18px}
.db-rank h3{font-size:15.5px;margin:0 0 12px}
.db-rank ul{list-style:none;margin:0;padding:0}
.db-rank li{display:grid;align-items:center;gap:10px;padding:7px 0;
  grid-template-columns:minmax(88px,132px) 1fr 46px minmax(0,auto)}
.db-rank li+li{border-top:1px solid var(--rule)}
.db-row-name{font-size:14px;color:var(--t)}
.db-bar-track{height:8px;border-radius:2px;background:var(--paper-2);overflow:hidden}
.db-bar-track i{display:block;height:100%;background:var(--ink-600)}
.db-bar-track i.is-short{background:var(--zhu)}
.db-pct{font-size:13.5px;color:var(--t2);text-align:right;font-variant-numeric:tabular-nums}
.db-row-note{font-size:12.5px;color:var(--t3)}
@media (max-width:620px){
  .db-rank li{grid-template-columns:minmax(76px,1fr) 1fr 44px;row-gap:2px}
  .db-row-note{grid-column:1 / -1;margin-top:-2px}
  .db-val{font-size:23px}
  /* 手机上 6 个区块光上下留白就吃掉 768px */
  section{padding:44px 0}
}
section.ink .db{border-color:rgba(255,255,255,.16);background:rgba(255,255,255,.05)}
section.ink .db-bar{background:rgba(255,255,255,.04);border-bottom-color:rgba(255,255,255,.16)}
section.ink .db-tiles{background:rgba(255,255,255,.16)}
section.ink .db-tile{background:transparent}
section.ink .db-val{color:#fff}
section.ink .db-scope,section.ink .db-row-name{color:var(--inv-2)}
section.ink .db-name,section.ink .db-note,section.ink .db-pct,
section.ink .db-demo,section.ink .db-row-note{color:var(--inv-3)}
section.ink .db-rank h3{color:#fff}
section.ink .db-rank li+li{border-top-color:rgba(255,255,255,.16)}
section.ink .db-bar-track{background:rgba(255,255,255,.1)}
section.ink .db-bar-track i.is-short{background:#ff9d92}

/* 引擎自动分析。三种结论用「文字标签 + 左边色条」区分，不靠颜色单独承载信息
   ——色弱的人和黑白打印都要能读出来是风险还是建议。 */
.db-ai{border-top:1px solid var(--rule);padding:16px 18px 18px;background:var(--paper-2)}
.db-ai-h{display:flex;align-items:baseline;gap:10px;flex-wrap:wrap;margin-bottom:10px}
.db-ai-t{font-size:14.5px;font-weight:700;color:var(--t)}
.db-ai-n{font-size:12.5px;color:var(--t3)}
.db-ai ul{list-style:none;margin:0;padding:0;display:grid;gap:8px}
.db-ai li{display:grid;grid-template-columns:auto 1fr;gap:10px;align-items:start;
  padding-left:11px;border-left:3px solid var(--rule)}
.db-ai li.is-risk{border-left-color:var(--zhu)}
.db-ai li.is-cause{border-left-color:var(--ink-600)}
.db-ai li.is-todo{border-left-color:#1d6b45}
.db-ai-k{font-size:11.5px;letter-spacing:.08em;padding:2px 7px;border-radius:2px;
  background:var(--paper);border:1px solid var(--rule);color:var(--t3);white-space:nowrap}
.db-ai li.is-risk .db-ai-k{color:var(--zhu);border-color:rgba(192,57,43,.35)}
.db-ai li.is-todo .db-ai-k{color:#1d6b45;border-color:rgba(29,107,69,.35)}
.db-ai-x{font-size:14px;color:var(--t2);line-height:1.75}
@media (max-width:620px){
  .db-ai li{grid-template-columns:1fr;gap:4px}
  .db-ai-k{justify-self:start}
}
section.ink .db-ai{background:rgba(255,255,255,.04);border-top-color:rgba(255,255,255,.16)}
section.ink .db-ai-t{color:#fff}
section.ink .db-ai-n,section.ink .db-ai-x{color:var(--inv-2)}
section.ink .db-ai-k{background:transparent;color:var(--inv-3);border-color:rgba(255,255,255,.24)}
section.ink .db-ai li.is-risk{border-left-color:#ff9d92}
section.ink .db-ai li.is-risk .db-ai-k{color:#ff9d92;border-color:rgba(255,157,146,.4)}

/* ── 供需信息列表 ────────────────────────────────────────
   整张卡片是一个 <a>。上一版只有标题可点、还去掉了下划线设成深色，
   看着就是普通粗体字——用户点卡片没反应，以为「发布了但点不进去」。
   分类信息列表就该整行可进，这是这类站的基本预期。 */
.lst{margin-top:20px}
.lst-item{display:block;position:relative;text-decoration:none;color:inherit;
  border:1px solid var(--rule);border-radius:3px;background:var(--paper);
  padding:17px 19px 15px;margin:0 0 12px}
.lst-item:hover{border-color:var(--ink-600);box-shadow:0 2px 10px -6px rgba(6,42,68,.35)}
.lst-item:focus-visible{outline:2px solid var(--ink-700);outline-offset:2px}
.lst-item h3{margin:0;font-size:16.5px;color:var(--ink-800);line-height:1.5}
.lst-item:hover h3{color:var(--ink-600);text-decoration:underline}
.lst-meta{margin:7px 0 0;font-size:13px;color:var(--t3)}
.lst-cat{display:inline-block;margin-right:8px;padding:1px 8px;border-radius:2px;
  background:var(--paper-2);border:1px solid var(--rule);color:var(--t2);font-size:12.5px}
.lst-price{color:var(--zhu);font-weight:700}
.lst-body{margin:9px 0 0;font-size:14.5px;color:var(--t2);line-height:1.75}
.lst-go{display:inline-block;margin-top:10px;font-size:13px;color:var(--ink-600)}
.lst-item:hover .lst-go{text-decoration:underline}

/* 发布入口。原来是夹在说明句里的一行小字，没人当它是入口——
   这是个任何人都能发布的板块，那个动作就该是页面上最显眼的按钮之一。
   未登录也照样显示：点进去引导注册，而不是先把入口藏起来。 */
.lst-head{display:flex;gap:20px;align-items:flex-start;justify-content:space-between;
  flex-wrap:wrap}
.lst-head-act{flex:0 0 auto;text-align:right}
.lst-foot{margin-top:26px;padding:22px 20px;border:1px solid var(--rule);
  border-radius:3px;background:var(--paper-2);text-align:center}
.lst-foot p{margin:0;font-size:15.5px;color:var(--t)}
.lst-empty{padding:34px 20px;border:1px dashed var(--rule);border-radius:3px;
  text-align:center;color:var(--t2)}
.lst-empty p{margin:0}
@media (max-width:620px){
  .lst-head-act{text-align:left;width:100%}
  .lst-head-act .btn{display:block;width:100%;text-align:center}
  .lst-foot .btn{display:block;width:100%;text-align:center;margin:0 0 10px}
  .lst-foot .btn+.btn{margin-left:0}
}

section.center{text-align:center}
section.center .mark{justify-content:center}
section.center .lede{margin-left:auto;margin-right:auto}
section.center .btns{justify-content:center}

.g1{grid-template-columns:1fr}
.g4{grid-template-columns:repeat(auto-fit,minmax(212px,1fr))}
.wrap.narrow{max-width:820px}

.fig{margin:32px 0 0}
.fig img{width:100%;height:auto;border:1px solid var(--rule)}
.fig figcaption{margin-top:10px;font-size:13px;color:var(--t3)}
.fig.narrow{max-width:760px;margin-left:auto;margin-right:auto}

.note.warn{border-left-color:var(--zhu);background:rgba(192,57,43,.06);padding:14px 16px}
.plan .price b.tba{font-size:19px;color:var(--t2);font-weight:600}

/* 富文本正文里也可能出现无序列表与四级小标题 */
.doc ul{margin:12px 0 0;padding-left:22px;list-style:disc;color:var(--t2)}
.doc ul li{margin-top:8px;padding-left:0}
.doc ul li::before{display:none}
.doc h4{margin-top:22px;font-size:15.5px}
.doc hr{border:0;border-top:1px solid var(--rule);margin:28px 0}

/* 内部备注：只在后台预览里出现，导出静态站时整块丢弃（见 export_site.py） */
.internal-only{padding:0}
.internal-only .todo{margin:22px 0}

/* 正文里的站内链接统一带下划线——原来靠每个 <a> 上写内联样式，
   后台编辑器插入的链接不会自带内联样式，所以规则必须落在 CSS 上。 */
.lede a,.card p a,.card li a,.doc a,.note a,.tbl td a,.step p a{border-bottom:1px solid var(--rule)}
.lede a:hover,.doc a:hover,.note a:hover,.tbl td a:hover{border-bottom-color:var(--ink-700)}
section.ink .lede a{border-bottom-color:rgba(255,255,255,.35)}

/* 尚未定稿的数字（资费表里的 ____）与必填星号。
   原来靠每处写内联样式，改一次要翻四个文件；现在是两条类。 */
.fill{color:var(--zhu);font-weight:700}
.req{font-style:normal;color:var(--zhu);margin-left:3px}

/* ===== 下载列表（服务与支持页） ===== */
.dl{margin-top:32px;border:1px solid var(--rule);border-top:0}
.dl-item{display:flex;gap:24px;align-items:flex-start;justify-content:space-between;
  padding:22px 24px;border-top:1px solid var(--rule);background:#fff}
.dl-main{min-width:0;flex:1}
.dl-top{display:flex;align-items:baseline;gap:10px;flex-wrap:wrap}
.dl-top b{font-size:16.5px}
.dl-ver{font-size:13px;color:var(--ink-700);font-weight:700;
  font-family:ui-monospace,SFMono-Regular,Menlo,monospace}
.dl-tag{font-size:11.5px;color:var(--t2);border:1px solid var(--rule);
  border-radius:3px;padding:2px 8px}
.dl-notes{margin-top:9px;font-size:14px;color:var(--t2);line-height:1.8}
.dl-notes ul{margin-top:6px;padding-left:18px;list-style:disc}
.dl-notes li{margin-top:4px}
.dl-meta{margin-top:9px;font-size:12.5px;color:var(--t3);display:flex;gap:18px;flex-wrap:wrap}
.dl-hash{margin-top:10px;display:flex;gap:9px;align-items:baseline;font-size:11.5px;color:var(--t3)}
.dl-hash span{flex:0 0 auto;letter-spacing:.08em}
.dl-hash code{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;
  word-break:break-all;color:var(--t2);background:var(--paper-2);padding:2px 6px;border-radius:2px}
.dl-act{flex:0 0 auto}
@media(max-width:620px){
  .dl-item{flex-direction:column;gap:14px}
  .dl-act{width:100%}
  .dl-act .btn{display:block;text-align:center}
}

/* 客户中心的登录入口。
   两件事要注意：
   ① 页头底色是 --ink-800 深蓝，所以边框和字都得走反白那一套；
      第一版用了 --rule 和 --ink-700（浅底配色），在深蓝上等于隐形。
   ② nav.main 是 flex-wrap，而 .nav 固定 68px 高——项数一多就换行、
      压到 logo 上。所以页头只加这一个按钮，并把高度改成不封死。 */
.nav{height:auto;min-height:68px}
nav.main a.navlogin{margin-left:26px;padding:6px 15px;border:1px solid rgba(255,255,255,.38);
  border-radius:3px;color:#fff;font-weight:600}
nav.main a.navlogin:hover{border-color:#fff;background:rgba(255,255,255,.1);color:#fff}
nav.main a.navlogin::after{display:none}
/* 必须和上面导航折行的断点是同一个数。原来这里写 760、那边写 720，
   于是 721–760 这 40px 里普通链接还带着 28px 左边距、按钮已经归零，
   实测 750px 时「客服与投诉」右边缘 x=311、按钮左边缘 x=310，压了 1px。 */
@media (max-width:720px){nav.main a.navlogin{margin-left:0;padding:5px 12px}}
