:root{
  --navy:#06223b; --primary:#0e3a5c; --primary-2:#0e4a6e;
  --accent:#14b8d4; --accent-2:#2dd4bf; --accent-soft:#e6f7fb;
  --bg:#f5f8fb; --surface:#ffffff; --surface-2:#f0f5fa;
  --text:#16242f; --muted:#5b6b78; --line:#e2eaf1;
  --shadow:0 8px 28px rgba(8,34,59,.08); --radius:14px;
  --header-h:64px; --maxw:1160px;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{
  margin:0;font-family:"Segoe UI","PingFang SC","Microsoft YaHei",system-ui,-apple-system,sans-serif;
  color:var(--text);background:var(--bg);line-height:1.75;font-size:16px;-webkit-font-smoothing:antialiased;
}
a{color:var(--primary);text-decoration:none}
a:hover{color:var(--accent)}
img{max-width:100%}

/* ── Header ── */
.site-header{position:fixed;top:0;left:0;right:0;height:var(--header-h);z-index:50;
  background:linear-gradient(120deg,var(--navy),var(--primary-2));
  box-shadow:0 2px 18px rgba(6,34,59,.28)}
.header-inner{max-width:var(--maxw);margin:0 auto;height:100%;display:flex;align-items:center;
  gap:20px;padding:0 20px}
.brand{display:flex;align-items:center;gap:10px;color:#fff;font-weight:700;font-size:18px}
.brand-mark{width:26px;height:26px;border-radius:7px;
  background:radial-gradient(circle at 30% 30%,var(--accent),var(--accent-2));
  box-shadow:0 0 0 3px rgba(20,184,212,.18)}
.brand-text{letter-spacing:.5px}
.primary-nav{margin-left:auto;display:flex;gap:6px}
.primary-nav a{color:#cfe6f2;padding:8px 14px;border-radius:9px;font-size:15px;font-weight:500;transition:.2s}
.primary-nav a:hover{background:rgba(255,255,255,.1);color:#fff}
.primary-nav a.active{background:var(--accent);color:#06223b;font-weight:600}
.nav-toggle{display:none;margin-left:auto;flex-direction:column;gap:5px;background:none;border:0;cursor:pointer;padding:8px}
.nav-toggle span{width:24px;height:2.5px;background:#fff;border-radius:2px;transition:.25s}

/* ── Container & layouts ── */
.container{max-width:var(--maxw);margin:0 auto;padding:calc(var(--header-h) + 28px) 20px 60px}
.article-layout{display:grid;grid-template-columns:minmax(0,1fr) 240px;gap:36px;align-items:start}
.list-layout{display:grid;grid-template-columns:240px minmax(0,1fr);gap:32px;align-items:start}
.page-layout{max-width:920px}
.page-content{max-width:820px;margin:0 auto}

/* ── Breadcrumb (left edge aligned with H2) ── */
.breadcrumb{padding:0 0 14px;margin:0 0 22px;border-bottom:1px solid var(--line);
  font-size:13.5px;color:var(--muted);display:flex;flex-wrap:wrap;gap:6px;align-items:center}
.breadcrumb a{color:var(--muted)}
.breadcrumb a:hover{color:var(--accent)}
.breadcrumb .sep{color:#b8c6d2}
.breadcrumb .cur{color:var(--primary);font-weight:600}

/* ── Content typography ── */
.content{max-width:760px}
.content h1{font-size:30px;line-height:1.3;margin:6px 0 18px;color:var(--navy);letter-spacing:.3px}
.content h2{font-size:22px;margin:34px 0 12px;color:var(--primary);padding-left:14px;
  border-left:4px solid var(--accent);scroll-margin-top:calc(var(--header-h) + 18px)}
.content h3{font-size:18px;margin:24px 0 10px;color:var(--primary-2);scroll-margin-top:calc(var(--header-h) + 18px)}
.content p{margin:12px 0}
.content ul,.content ol{padding-left:22px;margin:12px 0}
.content li{margin:6px 0}
.summary-block{background:linear-gradient(180deg,var(--accent-soft),#fff);border:1px solid var(--line);
  border-left:4px solid var(--accent-2);border-radius:var(--radius);padding:16px 18px;margin:0 0 18px;
  font-size:15.5px;color:#234}
.kw-line{display:flex;flex-wrap:wrap;gap:8px;margin:0 0 16px}
.tag-text{background:var(--surface-2);border:1px solid var(--line);color:var(--muted);
  font-size:12.5px;padding:3px 10px;border-radius:999px}
.update-line{display:inline-block;font-size:13px;color:var(--muted);margin:2px 0 14px}
.update-line time{color:var(--primary);font-weight:600}

/* ── Tables ── */
table.data{width:100%;border-collapse:collapse;margin:16px 0;font-size:14.5px;
  background:var(--surface);border:1px solid var(--line);border-radius:10px;overflow:hidden}
table.data th{background:var(--primary);color:#fff;text-align:left;padding:11px 14px;font-weight:600}
table.data td{padding:10px 14px;border-top:1px solid var(--line)}
table.data tr:nth-child(even) td{background:var(--surface-2)}

/* ── Conclusion / callout ── */
.conclusion{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);
  padding:16px 18px;margin:18px 0;box-shadow:var(--shadow)}
.conclusion h3{margin-top:0}
.conclusion ol{margin:8px 0}
.callout{background:#fff8ec;border:1px solid #f4e0b8;border-left:4px solid #f0a500;
  border-radius:10px;padding:14px 16px;margin:16px 0;font-size:14.5px}
.callout b{color:#9a6400}

/* ── FAQ (bare <details>) ── */
.content details{border:1px solid var(--line);border-radius:12px;background:var(--surface);
  padding:0;margin:12px 0;overflow:hidden}
.content details summary{cursor:pointer;padding:14px 18px;font-weight:600;color:var(--primary);
  list-style:none;display:flex;align-items:center;gap:8px}
.content details summary::-webkit-details-marker{display:none}
.content details summary::before{content:"+";color:var(--accent);font-weight:800;font-size:18px}
.content details[open] summary::before{content:"−"}
.content details .faq-a{padding:0 18px 16px;color:#2a3a47;font-size:15px}

/* ── Related reading ── */
.related-list{list-style:none;padding:0;margin:16px 0;display:grid;gap:10px}
.related-list li{background:var(--surface-2);border:1px solid var(--line);border-radius:10px;padding:12px 16px}
.related-list a{font-weight:600}
.related-list .why{display:block;color:var(--muted);font-size:13.5px;margin-top:3px}

/* ── TOC aside ── */
.toc-aside{position:sticky;top:calc(var(--header-h) + 18px);max-height:calc(100vh - 100px);overflow-y:auto}
.toc-inner{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);
  padding:16px;font-size:13.5px}
.toc-inner h4{margin:0 0 10px;color:var(--navy);font-size:13px;letter-spacing:1px}
.toc-inner a{display:block;color:var(--muted);padding:5px 0;border-bottom:1px dashed var(--line)}
.toc-inner a:hover{color:var(--accent)}
.toc-inner a.lv3{padding-left:14px;font-size:12.5px}

/* ── List / category sidebar ── */
.cat-side{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);
  padding:14px;position:sticky;top:calc(var(--header-h) + 18px)}
.cat-side h3{margin:0 0 10px;font-size:14px;color:var(--navy);letter-spacing:1px}
ul.category-list{list-style:none;margin:0;padding:0}
ul.category-list li{margin:2px 0}
ul.category-list a{display:block;padding:9px 12px;border-radius:9px;color:var(--text);font-weight:500}
ul.category-list a:hover{background:var(--accent-soft);color:var(--primary)}
ul.category-list a.active{background:var(--primary);color:#fff}
.cat-content h1{font-size:27px;color:var(--navy);margin:0 0 8px}
.cat-content .cat-intro{color:var(--muted);margin:0 0 20px}
.card-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:18px;margin-top:10px}
.card{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);padding:18px;
  box-shadow:var(--shadow);transition:.2s;display:flex;flex-direction:column}
.card:hover{transform:translateY(-3px);border-color:var(--accent)}
.card h3{margin:0 0 8px;font-size:17px;color:var(--primary)}
.card p{color:var(--muted);font-size:14px;margin:0 0 12px;flex:1}
.card .meta{font-size:12.5px;color:#90a2af}
.pagination{margin-top:24px;display:flex;gap:8px}
.pagination a{padding:8px 14px;border:1px solid var(--line);border-radius:8px;background:var(--surface)}

/* ── Home hero ── */
.hero{background:linear-gradient(125deg,var(--navy),var(--primary-2) 70%);
  border-radius:20px;padding:54px 44px;color:#fff;position:relative;overflow:hidden;box-shadow:var(--shadow)}
.hero::after{content:"";position:absolute;right:-80px;top:-80px;width:300px;height:300px;
  background:radial-gradient(circle,var(--accent),transparent 70%);opacity:.35}
.hero h1{font-size:38px;margin:0 0 14px;line-height:1.2}
.hero p{font-size:17px;max-width:640px;color:#d7e9f2;margin:0 0 22px}
.hero .hero-cta{display:flex;gap:12px;flex-wrap:wrap}
.btn{display:inline-block;padding:11px 22px;border-radius:10px;font-weight:600;font-size:15px}
.btn-primary{background:var(--accent);color:#06223b}
.btn-ghost{background:rgba(255,255,255,.12);color:#fff;border:1px solid rgba(255,255,255,.3)}
.section{margin-top:46px}
.section h2{font-size:24px;color:var(--navy);margin:0 0 6px}
.section .sub{color:var(--muted);margin:0 0 18px}
.grid-3{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:18px}
.feature{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);padding:20px;box-shadow:var(--shadow)}
.feature h3{margin:0 0 8px;color:var(--primary);font-size:17px}
.feature p{color:var(--muted);font-size:14px;margin:0}
.section-head{display:flex;align-items:baseline;justify-content:space-between;gap:12px;flex-wrap:wrap}

/* ── Footer ── */
.site-footer{background:var(--navy);color:#cfe6f2;margin-top:60px;padding:40px 20px 22px}
.footer-inner{max-width:var(--maxw);margin:0 auto;display:grid;grid-template-columns:1.4fr repeat(3,1fr);gap:26px}
.footer-col h3{color:#fff;font-size:14px;margin:0 0 10px;letter-spacing:1px}
.footer-col a{display:block;color:#a9c6d8;padding:4px 0;font-size:14px}
.footer-col a:hover{color:var(--accent)}
.footer-desc{color:#8fb0c4;font-size:14px;margin:8px 0 0;max-width:280px}
.footer-bottom{max-width:var(--maxw);margin:24px auto 0;padding-top:16px;border-top:1px solid rgba(255,255,255,.12);
  display:flex;justify-content:space-between;gap:12px;font-size:13px;color:#8fb0c4;flex-wrap:wrap}
.footer-bottom a{color:#a9c6d8;margin-left:14px}

/* ── Float capsule ── */
.float-capsule{position:fixed;right:18px;top:50%;transform:translateY(-50%);z-index:60;
  display:flex;flex-direction:column;gap:10px;background:rgba(255,255,255,.92);
  border:1px solid var(--line);border-radius:999px;padding:8px;box-shadow:0 10px 30px rgba(8,34,59,.18);
  backdrop-filter:blur(6px)}
.cap-btn{width:46px;height:46px;border:0;border-radius:50%;cursor:pointer;background:var(--primary);
  color:#fff;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:0;transition:.2s}
.cap-btn:hover{background:var(--accent);color:#06223b}
.cap-ico{font-size:18px;line-height:1;font-weight:700}
.cap-txt{font-size:10px;line-height:1.1;margin-top:1px}

/* ── WeChat modal ── */
.wechat-modal{position:fixed;inset:0;z-index:80;display:flex;align-items:center;justify-content:center}
.wechat-modal[hidden]{display:none}
.wechat-modal-mask{position:absolute;inset:0;background:rgba(6,34,59,.55)}
.wechat-modal-box{position:relative;background:#fff;border-radius:16px;padding:14px;
  box-shadow:0 20px 60px rgba(0,0,0,.3);width:328px}
.wechat-img-wrap{width:300px;height:500px;overflow:hidden;border-radius:10px;background:#f0f5fa;
  display:flex;align-items:center;justify-content:center}
.wechat-img-wrap img{width:auto;max-width:300px;max-height:500px;display:block}
.wechat-close{position:absolute;right:-10px;top:-10px;width:34px;height:34px;border-radius:50%;
  border:0;background:var(--navy);color:#fff;font-size:20px;cursor:pointer;line-height:1}
.wechat-tip{text-align:center;color:var(--muted);font-size:13px;margin:10px 0 2px}

/* ── Responsive ── */
@media (max-width:900px){
  .article-layout{grid-template-columns:1fr}
  .toc-aside{position:static;max-height:none;order:2}
  .list-layout{grid-template-columns:1fr}
  .footer-inner{grid-template-columns:1fr 1fr}
}
@media (max-width:760px){
  .nav-toggle{display:flex}
  .primary-nav{position:absolute;top:var(--header-h);left:0;right:0;background:var(--navy);
    flex-direction:column;padding:10px 16px;gap:4px;display:none;box-shadow:0 10px 20px rgba(0,0,0,.3)}
  .primary-nav.open{display:flex}
  .hero{padding:34px 22px}
  .hero h1{font-size:28px}
  .footer-inner{grid-template-columns:1fr}
  /* 移动端：文章/产品分类默认折叠，点击展开 */
  .cat-side{position:static}
  .cat-side .cat-fold{display:flex;justify-content:space-between;align-items:center;cursor:pointer}
  .cat-side ul.category-list{display:none}
  .cat-side.open ul.category-list{display:block}
  .float-capsule{right:10px}
}
@media (min-width:761px){
  .cat-side .cat-fold{display:none}
  .cat-side ul.category-list{display:block !important}
}
