/* 明升历典 · 站点公共样式 v3 (2026-09-06) */
/* 设计原则：东方雅致 + 现代交互 · 紫金主题 · 全站 22 工具分色系 */
/* 优化重点：字号层级、行高间距、卡片呼吸感、按钮节奏、暗色模式、动效缓动 */

/* ===== 基础 ===== */
* { box-sizing: border-box; margin: 0; padding: 0; }
:root{
  /* 主色系 */
  --c-purple-1:#3d2557;
  --c-purple-2:#4a2f6b;
  --c-purple-3:#7c4daf;
  --c-purple-4:#9b6dcc;
  --c-purple-5:#b18bda;
  /* 辅色（八工具分类色） */
  --c-name:#7c4daf;
  --c-hehun:#c25b8f;
  --c-sx:#3e8e8e;
  --c-date:#b08a3e;
  --c-biz:#2a5fa3;
  --c-daily:#7d8c4f;
  --c-ziwei:#5d4297;
  --c-misc:#6b7280;
  /* 中性色 */
  --c-bg:#f7f6f2;
  --c-bg-soft:#fbfaff;
  --c-paper:#ffffff;
  --c-line:#ece5f5;
  --c-text:#2c3e50;
  --c-text-2:#7f8c8d;
  --c-text-3:#a0a4ad;
  /* 阴影 */
  --shadow-1:0 2px 14px rgba(60,40,90,.07);
  --shadow-2:0 8px 28px rgba(60,40,90,.10);
  --shadow-3:0 14px 40px rgba(60,40,90,.14);
  /* 字号 */
  --fs-h1:34px;
  --fs-h2:24px;
  --fs-h3:18px;
  --fs-body:15px;
  --fs-sm:13px;
  --fs-xs:12px;
  /* 圆角 */
  --r-sm:8px;
  --r-md:12px;
  --r-lg:16px;
  /* 统一缓动 */
  --ease:cubic-bezier(.22,.61,.36,1);
  --ease-out:cubic-bezier(.16,1,.3,1);
  /* 字号层级 */
  --lh-tight:1.4;
  --lh-base:1.7;
  --lh-loose:1.85;
}

/* 暗色模式（自动适配系统） */
@media (prefers-color-scheme: dark){
  :root{
    --c-bg:#1a1525;
    --c-bg-soft:#211a2e;
    --c-paper:#2a2237;
    --c-line:#3a2f4d;
    --c-text:#e6dff0;
    --c-text-2:#a8a0bb;
    --c-text-3:#7f7896;
    --shadow-1:0 2px 14px rgba(0,0,0,.30);
    --shadow-2:0 8px 28px rgba(0,0,0,.40);
    --shadow-3:0 14px 40px rgba(0,0,0,.50);
  }
  header.site{ background:linear-gradient(135deg,#1f1830 0%,#2d2142 38%,#4a2f6b 100%); }
  footer.site{ background:linear-gradient(180deg,#15101f 0%,#0d0a16 100%); color:#8d829c; }
  footer.site a{ color:#a89cc4; }
  .tool-card,.lead-card,.card{ background:var(--c-paper); border-color:var(--c-line); }
  .tool-card:hover{ border-color:rgba(155,109,204,.40); }
  .lead-card{ background:var(--c-bg-soft); }
  .cat-section .cat-title{ color:var(--c-text); }
  .cat-section .cat-desc{ color:#a8a0bb; }
  table.tb th{ background:#2d2540; color:var(--c-purple-5); }
  table.tb tbody tr:nth-child(even){ background:#221b32; }
  table.tb tbody tr:hover{ background:#2c2342; }
  input.t,select.t,textarea.t{ background:var(--c-bg-soft); color:var(--c-text); border-color:var(--c-line); }
  .info-box{ background:linear-gradient(135deg,#2d2540,#251e35); color:var(--c-text); }
  .info-box.warn{ background:linear-gradient(135deg,#3a2e1a,#2e2516); color:#d6b878; }
  .info-box.ok{ background:linear-gradient(135deg,#1f3329,#182821); color:#7ec99a; }
  .hero{ background:
    radial-gradient(ellipse at 30% 0%,rgba(124,77,175,.15) 0%,transparent 55%),
    radial-gradient(ellipse at 70% 100%,rgba(194,91,143,.10) 0%,transparent 55%); }
  .hero h1{ background:linear-gradient(135deg,#c9b8e6 0%,#9b6dcc 60%,#e89ec4 100%); -webkit-background-clip:text; background-clip:text; }
  .hero p,.hero .stats{ color:var(--c-text-2); }
  .disclaim{ background:#3a2e1a; border-color:#5a4a2c; color:#d6b878; }
  .talk-card{ background:linear-gradient(160deg,#2e2516,#3a2e1a); border-color:#5a4a2c; color:#e8d9a8; }
  .talk-card .tc-head{ color:#e8c878; }
  .talk-card .tc-body{ color:#d6c088; }
  .talk-card .tc-body .hl{ background:linear-gradient(180deg,transparent 60%,#5a4a2c 60%); color:#f1d790; }
  .talk-card .tc-body .stamp{ background:#3a2e1a; border-color:#5a4a2c; color:#e8c878; }
  .talk-card .tc-tip{ background:rgba(0,0,0,.20); color:#c8b878; }
  .talk-card .tc-tip b{ color:#e8c878; }
  .folk-note{ background:linear-gradient(135deg,#2d2540,#251e35); border-color:#3a2f4d; }
  .folk-note > summary{ color:#c9b8e6; }
  .folk-note > summary::after{ background:#2a2237; border-color:#3a2f4d; color:#a8a0bb; }
  .folk-note .fn-body{ background:#2a2237; border-color:#3a2f4d; color:#d4cadf; }
  .folk-note .fn-body b{ color:#e6dff0; }
  .folk-note .fn-body .term{ background:rgba(155,109,204,.15); color:#c9b8e6; }
  .read-bar{ background:linear-gradient(135deg,#2d2540,#251e35); border-color:#3a2f4d; color:#a8a0bb; }
  .read-bar .rb-time{ background:#2a2237; border-color:#3a2f4d; color:#c9b8e6; }
  .read-bar .rb-takeaway{ color:#d4cadf; }
  .read-bar .rb-takeaway b{ color:#e6dff0; }
}

html{ scroll-behavior:smooth; }
body{
  font-family:"PingFang SC","Microsoft YaHei","Hiragino Sans GB","Source Han Sans CN","Noto Sans CJK SC",sans-serif;
  color:var(--c-text);
  background:var(--c-bg);
  line-height:var(--lh-base);
  font-size:var(--fs-body);
  -webkit-font-smoothing:antialiased;
  -moz-osx-font-smoothing:grayscale;
  text-rendering:optimizeLegibility;
  letter-spacing:.01em;
}
a{ color:var(--c-purple-3); text-decoration:none; transition:color .2s var(--ease); }
a:hover{ color:var(--c-purple-2); }
img{ max-width:100%; }

/* ===== 容器 ===== */
.wrap{ max-width:1080px; margin:0 auto; padding:0 22px; }

/* ===== 顶部 Header ===== */
header.site{
  background:linear-gradient(135deg,#3d2557 0%,#4a2f6b 38%,#7c4daf 100%);
  color:#fff;
  padding:0;
  box-shadow:0 4px 24px rgba(74,47,107,.20);
  position:sticky; top:0; z-index:100;
  backdrop-filter:saturate(180%) blur(8px);
  -webkit-backdrop-filter:saturate(180%) blur(8px);
}
header.site::after{
  content:""; position:absolute; left:0; right:0; bottom:-1px; height:2px;
  background:linear-gradient(90deg,transparent,rgba(241,196,15,.5),rgba(255,255,255,.7),rgba(241,196,15,.5),transparent);
  opacity:.6;
}
header.site .wrap{
  display:flex; align-items:center; justify-content:space-between;
  flex-wrap:wrap; gap:10px 18px; padding-top:14px; padding-bottom:14px;
}
header.site .brand{
  font-size:21px; font-weight:700; letter-spacing:3px;
  display:flex; align-items:center; gap:10px;
}
header.site .brand .logo{
  width:34px; height:34px; display:inline-flex; align-items:center; justify-content:center;
  background:linear-gradient(135deg,rgba(255,255,255,.18),rgba(255,255,255,.08));
  border-radius:9px;
  font-size:19px;
  box-shadow:0 2px 6px rgba(0,0,0,.15);
}
header.site .brand small{
  font-weight:400; opacity:.78; margin-left:6px; letter-spacing:.5px;
  font-size:12px; padding:2px 9px; border:1px solid rgba(255,255,255,.28); border-radius:20px;
  transition:all .2s var(--ease);
}
header.site .brand:hover small{ opacity:.95; background:rgba(255,255,255,.08); }
header.site nav{ display:flex; flex-wrap:wrap; gap:2px 16px; }
header.site nav a{
  color:#fff; font-size:14px; opacity:.92;
  padding:6px 0; position:relative; transition:opacity .2s var(--ease);
  letter-spacing:.5px;
}
header.site nav a:hover{ opacity:1; color:#fff; }
header.site nav a::after{
  content:""; position:absolute; left:50%; bottom:0; width:0; height:2px;
  background:linear-gradient(90deg,#f1c40f,#fff);
  transition:width .25s var(--ease-out),transform .25s var(--ease-out);
  transform:translateX(-50%); border-radius:1px;
}
header.site nav a:hover::after{ width:100%; }

/* ===== 页脚 Footer ===== */
footer.site{
  background:linear-gradient(180deg,#2c2233 0%,#1f1828 100%);
  color:#cbbfd8; padding:40px 0 40px; margin-top:80px; font-size:13px;
  position:relative;
}
footer.site::before{
  content:""; position:absolute; top:0; left:0; right:0; height:3px;
  background:linear-gradient(90deg,transparent,var(--c-purple-3),var(--c-purple-4),var(--c-purple-3),transparent);
}
footer.site a{ color:#d9c9f0; transition:color .2s var(--ease); }
footer.site a:hover{ color:#fff; text-decoration:underline; text-underline-offset:3px; }
footer.site .fnav{ margin-bottom:20px; line-height:2.1; }
footer.site .fnav a{ margin-right:16px; margin-bottom:8px; display:inline-block; }
footer.site .footer-info{ padding-top:14px; border-top:1px solid rgba(255,255,255,.06); margin-top:6px; }
footer.site .copyright{ opacity:.65; font-size:12.5px; margin-top:16px; line-height:1.85; }
footer.site .icp{ opacity:.7; font-size:12px; margin-top:8px; line-height:1.85; }

/* ===== 首页 Hero ===== */
.hero{
  text-align:center;
  padding:72px 10px 24px;
  position:relative;
  background:
    radial-gradient(ellipse at 30% 0%,rgba(124,77,175,.08) 0%,transparent 55%),
    radial-gradient(ellipse at 70% 100%,rgba(194,91,143,.06) 0%,transparent 55%);
  overflow:hidden;
}
.hero::before, .hero::after{
  content:""; position:absolute;
  width:160px; height:160px;
  border-radius:50%;
  filter:blur(70px); opacity:.35;
  pointer-events:none; z-index:0;
}
.hero::before{ background:var(--c-purple-4); top:-50px; left:8%; animation:float 9s ease-in-out infinite; }
.hero::after{ background:var(--c-hehun); bottom:-30px; right:10%; opacity:.22; animation:float 11s ease-in-out infinite reverse; }
@keyframes float{
  0%,100%{ transform:translateY(0) translateX(0); }
  50%{ transform:translateY(20px) translateX(10px); }
}
.hero > *{ position:relative; z-index:1; }
.hero h1{
  font-size:42px; font-weight:800; letter-spacing:6px;
  background:linear-gradient(135deg,#3d2557 0%,#7c4daf 60%,#c25b8f 100%);
  -webkit-background-clip:text; background-clip:text;
  -webkit-text-fill-color:transparent;
  margin-bottom:16px;
  animation:fadeUp .7s var(--ease-out) backwards;
  line-height:1.25;
}
.hero p{ color:var(--c-text-2); margin-top:8px; font-size:15.5px; animation:fadeUp .7s .1s var(--ease-out) backwards; }
.hero .stats{ margin-top:22px; font-size:13px; color:var(--c-text-3); animation:fadeUp .7s .2s var(--ease-out) backwards; }
.hero .stats span{ margin:0 10px; display:inline-block; padding:5px 14px; background:rgba(255,255,255,.6); border:1px solid var(--c-line); border-radius:20px; backdrop-filter:blur(4px); transition:all .2s var(--ease); }
.hero .stats span:hover{ background:rgba(255,255,255,.85); transform:translateY(-1px); box-shadow:var(--shadow-1); }
.hero .stats b{ color:var(--c-purple-3); font-weight:700; }

/* ===== 工具卡片网格 ===== */
.tool-grid{
  display:grid;
  grid-template-columns:repeat(auto-fill,minmax(295px,1fr));
  gap:18px; margin:32px 0;
}

/* 分类标题段（首页长清单按类聚类） */
.cat-section{margin:48px 0 18px; scroll-margin-top:80px;}
.cat-section:first-of-type{margin-top:24px;}
.cat-section .cat-title{display:flex;align-items:center;gap:12px;margin:0 0 10px;font-size:18px;color:var(--c-text);font-weight:700;letter-spacing:.5px;}
.cat-section .cat-title .cat-bar{width:4px;height:22px;border-radius:3px;}
.cat-section .cat-title .cat-sub{margin-left:auto;font-size:12.5px;color:var(--c-text-3);font-weight:400;}
.cat-section .cat-desc{margin:0 0 12px;font-size:13.5px;color:#777;line-height:var(--lh-loose);}
.cat-section .tool-grid{margin-top:8px;}

/* 各 cat 配色（一律套 c-<cat> CSS 变量） */
.cat-section[data-cat="ziri"] .cat-bar{background:var(--c-date);}
.cat-section[data-cat="mingli"] .cat-bar{background:var(--c-ziwei);}
.cat-section[data-cat="peidui"] .cat-bar{background:var(--c-hehun);}
.cat-section[data-cat="shiyun"] .cat-bar{background:var(--c-daily);}
.cat-section[data-cat="hanzi"] .cat-bar{background:var(--c-name);}
.cat-section[data-cat="menhu"] .cat-bar{background:var(--c-misc);}
.cat-section[data-cat="zhanlv-misc"] .cat-bar{background:var(--c-misc);}
.tool-card{
  background:var(--c-paper);
  border-radius:14px;
  padding:24px 22px;
  box-shadow:var(--shadow-1);
  display:block; color:var(--c-text);
  position:relative; overflow:hidden;
  transition:transform .25s var(--ease),box-shadow .25s var(--ease),border-color .25s var(--ease);
  border:1px solid transparent;
}
.tool-card::before{
  content:""; position:absolute; left:0; right:0; top:0; height:3px;
  background:var(--c-name);
  opacity:.85;
  transition:height .25s var(--ease);
}
.tool-card:hover::before{ height:4px; }
.tool-card[data-cat="hehun"]::before{ background:var(--c-hehun); }
.tool-card[data-cat="sx"]::before{ background:var(--c-sx); }
.tool-card[data-cat="date"]::before{ background:var(--c-date); }
.tool-card[data-cat="biz"]::before{ background:var(--c-biz); }
.tool-card[data-cat="daily"]::before{ background:var(--c-daily); }
.tool-card[data-cat="ziwei"]::before{ background:var(--c-ziwei); }
.tool-card[data-cat="misc"]::before{ background:var(--c-misc); }
.tool-card:hover{
  transform:translateY(-4px);
  box-shadow:var(--shadow-2);
  border-color:rgba(124,77,175,.30);
}
.tool-card .tc-ico{
  font-size:34px; display:inline-block;
  width:50px; height:50px; line-height:50px; text-align:center;
  background:linear-gradient(135deg,rgba(124,77,175,.10),rgba(124,77,175,.04));
  border-radius:13px; margin-bottom:8px;
  transition:transform .3s var(--ease-out);
}
.tool-card:hover .tc-ico{ transform:scale(1.08) rotate(-3deg); }
.tool-card h3{
  margin:10px 0 8px; color:var(--c-purple-1);
  font-size:17px; font-weight:700;
  letter-spacing:.3px;
}
.tool-card p{
  font-size:13px; color:var(--c-text-2); line-height:1.7;
}
.tool-card .arrow{
  position:absolute; right:18px; top:24px; opacity:0;
  color:var(--c-purple-3); transition:all .25s var(--ease); font-size:18px;
}
.tool-card:hover .arrow{ opacity:1; right:14px; transform:translateX(2px); }

/* 兼容旧 class（无 data-cat）时，给一个默认色 */
.tool-card:not([data-cat])::before{ background:var(--c-name); }

/* ===== 卡片 (表单容器) ===== */
.card{
  background:var(--c-paper);
  border-radius:14px;
  padding:26px;
  box-shadow:var(--shadow-1);
  margin-bottom:22px;
  border:1px solid rgba(124,77,175,.06);
  transition:box-shadow .3s var(--ease);
}
.card:hover{ box-shadow:var(--shadow-2); }

/* 推荐位容器 */
.recommend-card .sec-head{display:flex;align-items:baseline;justify-content:space-between;margin-bottom:14px;flex-wrap:wrap;gap:8px;}
.recommend-card .sec-h{font-size:17px;color:var(--c-purple-1);font-weight:700;margin:0;}
.recommend-card .sec-sub{color:var(--c-text-3);font-size:12.5px;}

.disclaim{
  background:#fdf6e3; border:1px solid #f0e2b6; color:#8a6d3b;
  border-radius:10px; padding:14px 18px; font-size:13px; margin:24px 0;
  line-height:var(--lh-loose);
}
.disclaim::before{ content:"ℹ️ "; }

/* ===== 表单 ===== */
label.f{ display:block; font-size:13.5px; color:#555; margin:14px 0 6px; font-weight:500; letter-spacing:.3px; }
input.t, select.t, textarea.t{
  width:100%; padding:11px 14px;
  border:1px solid #d5cfe3; border-radius:10px;
  font-size:15px; background:#fff; color:var(--c-text);
  transition:border-color .2s var(--ease),box-shadow .2s var(--ease),background .2s var(--ease);
  font-family:inherit;
  line-height:1.5;
}
input.t::placeholder, textarea.t::placeholder{ color:var(--c-text-3); }
input.t:focus, select.t:focus, textarea.t:focus{
  outline:none; border-color:var(--c-purple-3);
  box-shadow:0 0 0 3px rgba(124,77,175,.15);
  background:#fff;
}
input.t:hover:not(:focus), select.t:hover:not(:focus){ border-color:#b18bda; }
.row{ display:flex; gap:12px; flex-wrap:wrap; }
.row > div{ flex:1; min-width:120px; }

/* ===== 按钮 ===== */
button.go, .btn-primary{
  background:linear-gradient(135deg,#7c4daf 0%,#4a2f6b 100%);
  color:#fff; border:0; border-radius:10px;
  padding:12px 34px; font-size:15.5px; cursor:pointer;
  margin-top:18px; letter-spacing:2px;
  font-weight:600;
  box-shadow:0 4px 14px rgba(124,77,175,.28);
  transition:transform .2s var(--ease),box-shadow .2s var(--ease),filter .2s var(--ease);
  position:relative; overflow:hidden;
}
button.go:hover, .btn-primary:hover{
  filter:brightness(1.10);
  transform:translateY(-2px);
  box-shadow:0 8px 22px rgba(124,77,175,.36);
}
button.go:active, .btn-primary:active{ transform:translateY(0); }
button.go::after{
  content:""; position:absolute; top:50%; left:50%;
  width:5px; height:5px; background:rgba(255,255,255,.5);
  border-radius:50%; opacity:0;
  transform:translate(-50%,-50%) scale(0);
}
button.go:active::after{
  animation:ripple .6s ease-out;
}
button.mini, .btn-secondary{
  background:#efe9f7; color:#5d3d8a; border:0;
  border-radius:8px; padding:8px 20px; font-size:14px;
  cursor:pointer; margin-top:12px;
  transition:background .2s var(--ease),transform .2s var(--ease);
  font-weight:500;
}
button.mini:hover, .btn-secondary:hover{ background:#e0d4f0; transform:translateY(-1px); }
.premium-btn{
  display:inline-block; margin-top:10px;
  background:linear-gradient(135deg,#f39c12,#d35400);
  color:#fff; border:0; border-radius:9px;
  padding:9px 20px; font-size:13.5px; cursor:pointer;
  font-weight:600;
  box-shadow:0 3px 12px rgba(243,156,18,.32);
  transition:transform .2s var(--ease),box-shadow .2s var(--ease);
}
.premium-btn:hover{ transform:translateY(-1px); box-shadow:0 6px 16px rgba(243,156,18,.45); }

/* ===== 表格 ===== */
table.tb{ width:100%; border-collapse:collapse; font-size:13.5px; margin:12px 0; border-radius:8px; overflow:hidden; }
table.tb th, table.tb td{ border:1px solid #e5def0; padding:10px 12px; text-align:left; }
table.tb th{ background:#f4effa; color:var(--c-purple-1); font-weight:600; }
table.tb tbody tr:nth-child(even){ background:#fbfaff; }
table.tb tbody tr:hover{ background:#f7f1ff; transition:background .15s; }

/* ===== Tag ===== */
.tag{ display:inline-block; border-radius:6px; padding:3px 10px; font-size:12px; margin:1px 2px; font-weight:500; letter-spacing:.3px; }
.tag.g3{ background:#fdecea; color:#c0392b; }
.tag.g2{ background:#fef5e7; color:#b9770e; }
.tag.g1{ background:#f2f3f4; color:#7f8c8d; }
.tag.g0{ background:#eaecee; color:#95a5a6; }
.tag.huang{ background:#fdf6e3; color:#8a6d3b; }
.tag.hei{ background:#eef2f3; color:#607d8b; }

/* ===== 大白话解读卡（口语化翻译层） ===== */
.talk-card{
  background:linear-gradient(160deg,#fdfbf6 0%,#fff8e8 100%);
  border:1px solid #f0e2b6;
  border-radius:14px;
  padding:18px 22px;
  margin:18px 0;
  position:relative;
  box-shadow:0 2px 10px rgba(178,134,11,.06);
}
.talk-card::before{
  content:""; position:absolute; left:0; top:14px; bottom:14px; width:4px;
  background:linear-gradient(180deg,#f1c40f,#d4a017);
  border-radius:2px;
}
.talk-card .tc-head{
  display:flex; align-items:center; gap:8px;
  font-size:14.5px; color:#7a5b1e; font-weight:700;
  margin-bottom:10px;
}
.talk-card .tc-head .emoji{ font-size:18px; }
.talk-card .tc-body{ color:#5d4a1e; font-size:14.5px; line-height:1.95; }
.talk-card .tc-body p{ margin:8px 0; }
.talk-card .tc-body .hl{ background:linear-gradient(180deg,transparent 60%,#fff3a8 60%); padding:0 2px; font-weight:600; color:#5d4a1e; }
.talk-card .tc-body .stamp{ display:inline-block; background:#fff;border:1px solid #f0e2b6;border-radius:6px;padding:1px 8px;font-size:12.5px;color:#8a6d3b;margin:2px 4px 2px 0;font-weight:600; }
.talk-card .tc-tip{ margin-top:10px; padding:10px 12px; background:rgba(255,255,255,.6); border-radius:8px; font-size:13px; color:#7a6a3e; line-height:1.85; }
.talk-card .tc-tip b{ color:#5d4a1e; }

/* ===== 民俗小知识折叠块 ===== */
.folk-note{
  margin:14px 0; background:linear-gradient(135deg,#f4effa,#fbfaff);
  border:1px solid #e8ddf5; border-radius:12px;
  padding:12px 18px;
}
.folk-note > summary{
  cursor:pointer; font-size:14px; color:#5d3d8a; font-weight:700;
  display:flex; align-items:center; gap:8px; list-style:none;
}
.folk-note > summary::before{
  content:"📖"; font-size:16px;
}
.folk-note > summary::-webkit-details-marker{ display:none; }
.folk-note > summary::after{
  content:"展开"; margin-left:auto; font-size:12px; color:#999; font-weight:400;
  background:#fff; padding:1px 10px; border-radius:10px; border:1px solid #e8ddf5;
}
.folk-note[open] > summary::after{ content:"收起"; }
.folk-note .fn-body{
  margin-top:10px; padding:12px 14px; background:#fff;
  border-radius:8px; border:1px dashed #e8ddf5;
  font-size:13.5px; color:#5d4a5d; line-height:1.95;
}
.folk-note .fn-body b{ color:#4a2f6b; }
.folk-note .fn-body .term{
  display:inline-block; background:rgba(124,77,175,.08); color:#5d3d8a;
  padding:1px 8px; border-radius:4px; font-weight:600; font-size:12.5px; margin:0 2px;
}

/* ===== 顶部导读条 ===== */
.read-bar{
  display:flex; flex-wrap:wrap; align-items:center; gap:8px 18px;
  margin:10px 0 18px; padding:12px 18px;
  background:linear-gradient(135deg,#f4effa,#fbfaff);
  border:1px solid #ece5f5; border-radius:12px;
  font-size:13px; color:#5d4a5d;
}
.read-bar .rb-time{
  display:inline-flex; align-items:center; gap:5px;
  background:#fff; padding:4px 10px; border-radius:18px; border:1px solid #e8ddf5;
  color:#5d3d8a; font-weight:500;
}
.read-bar .rb-arrow{ color:var(--c-purple-3); font-weight:700; }
.read-bar .rb-takeaway{ color:#444; }
.read-bar .rb-takeaway b{ color:var(--c-purple-2); }

/* ===== 标题层级（统一） ===== */
h1.page{
  font-size:30px; margin:30px 0 10px; color:var(--c-purple-1);
  font-weight:700; position:relative; padding-left:16px;
  letter-spacing:1px; line-height:1.3;
}
h1.page::before{ content:""; position:absolute; left:0; top:8px; bottom:8px; width:4px; background:linear-gradient(180deg,var(--c-purple-3),var(--c-purple-4)); border-radius:2px; }
h2{ font-size:21px; margin:26px 0 12px; color:var(--c-purple-1); font-weight:600; line-height:1.4; }
h3{ font-size:17px; margin:20px 0 10px; color:var(--c-purple-2); font-weight:600; line-height:1.4; }
p.sub{ color:var(--c-text-2); margin-bottom:20px; font-size:14.5px; line-height:var(--lh-loose); }

/* ===== 浮动返回首页按钮 ===== */
.back-home{
  position:fixed; left:18px; bottom:20px; z-index:500;
  background:linear-gradient(135deg,#4a2f6b,#7c4daf);
  color:#fff; border-radius:22px;
  padding:9px 18px; font-size:13px;
  box-shadow:0 5px 18px rgba(74,47,107,.35);
  transition:transform .2s var(--ease),box-shadow .2s var(--ease);
  letter-spacing:.5px;
}
.back-home:hover{
  background:linear-gradient(135deg,#5d3d8a,#9b6dcc);
  transform:translateY(-2px);
  box-shadow:0 8px 22px rgba(74,47,107,.45);
  color:#fff;
}

/* ===== 交叉引流卡片（cross-promo） ===== */
.lead-grid{
  display:grid; grid-template-columns:repeat(2,1fr);
  gap:14px; margin-top:10px;
}
.lead-card{
  display:flex; gap:14px; align-items:flex-start;
  border:1px solid var(--c-line); border-radius:12px;
  padding:16px; background:var(--c-bg-soft); color:var(--c-text);
  transition:all .25s var(--ease); position:relative; overflow:hidden;
}
.lead-card::before{
  content:""; position:absolute; left:0; top:0; bottom:0; width:3px;
  background:var(--c-name);
}
.lead-card[data-cat="hehun"]::before{ background:var(--c-hehun); }
.lead-card[data-cat="sx"]::before{ background:var(--c-sx); }
.lead-card[data-cat="date"]::before{ background:var(--c-date); }
.lead-card[data-cat="biz"]::before{ background:var(--c-biz); }
.lead-card[data-cat="daily"]::before{ background:var(--c-daily); }
.lead-card[data-cat="ziwei"]::before{ background:var(--c-ziwei); }
.lead-card[data-cat="misc"]::before{ background:var(--c-misc); }
.lead-card:hover{
  border-color:var(--c-purple-4);
  transform:translateY(-2px);
  box-shadow:var(--shadow-2);
  background:var(--c-paper);
}
.lead-card .ico{
  font-size:26px; flex-shrink:0;
  width:38px; height:38px;
  display:inline-flex; align-items:center; justify-content:center;
  background:rgba(124,77,175,.10); border-radius:10px;
  transition:transform .25s var(--ease-out);
}
.lead-card:hover .ico{ transform:scale(1.10); }
.lead-card .t{ font-weight:700; color:var(--c-purple-2); margin-bottom:4px; font-size:14.5px; }
.lead-card .d{ font-size:12.5px; color:#666; line-height:1.65; }

/* ===== 章节标题区 ===== */
.section-title{
  display:flex; align-items:center; gap:10px;
  margin:34px 0 18px; color:var(--c-purple-1); font-size:19px; font-weight:700;
  letter-spacing:.5px;
}
.section-title::before{
  content:""; display:inline-block; width:4px; height:20px;
  background:linear-gradient(180deg,var(--c-purple-3),var(--c-purple-4));
  border-radius:2px;
}
.section-title small{ color:var(--c-text-3); font-size:13px; font-weight:400; margin-left:8px; }

/* ===== 信息盒 ===== */
.info-box{
  background:linear-gradient(135deg,#f4effa 0%,#fbfaff 100%);
  border-left:3px solid var(--c-purple-3);
  border-radius:10px; padding:16px 18px; margin:16px 0;
  font-size:14px; color:var(--c-text);
  line-height:var(--lh-loose);
}
.info-box.warn{ background:linear-gradient(135deg,#fef5e7 0%,#fdf6e3 100%); border-left-color:#b9770e; }
.info-box.ok{ background:linear-gradient(135deg,#eafaf1 0%,#f4fbf7 100%); border-left-color:#27ae60; }
.info-box .ib-title{ font-weight:600; color:var(--c-purple-1); margin-bottom:8px; font-size:14.5px; }

/* ===== Loading & 动画 ===== */
@keyframes fadeUp{
  from{ opacity:0; transform:translateY(14px); }
  to{ opacity:1; transform:translateY(0); }
}
@keyframes fadeIn{
  from{ opacity:0; } to{ opacity:1; }
}
@keyframes ripple{
  0%{ opacity:.5; transform:translate(-50%,-50%) scale(0); }
  100%{ opacity:0; transform:translate(-50%,-50%) scale(80); }
}
@keyframes pulse{
  0%,100%{ opacity:1; } 50%{ opacity:.6; }
}
@keyframes shimmer{
  0%{ background-position:-200% 0; }
  100%{ background-position:200% 0; }
}
.card, .tool-card, .lead-card{ animation:fadeIn .45s var(--ease-out) backwards; }
.tag{ animation:fadeIn .35s var(--ease-out); }

/* 入场动画（首次加载） */
.tool-card{ animation:fadeUp .55s var(--ease-out) backwards; }
.tool-card:nth-child(1){ animation-delay:.05s; }
.tool-card:nth-child(2){ animation-delay:.10s; }
.tool-card:nth-child(3){ animation-delay:.15s; }
.tool-card:nth-child(4){ animation-delay:.20s; }
.tool-card:nth-child(5){ animation-delay:.25s; }
.tool-card:nth-child(6){ animation-delay:.30s; }
.tool-card:nth-child(n+7){ animation-delay:.35s; }
.lead-card{ animation:fadeUp .4s var(--ease-out) backwards; }
.lead-card:nth-child(1){ animation-delay:.05s; }
.lead-card:nth-child(2){ animation-delay:.10s; }
.lead-card:nth-child(3){ animation-delay:.15s; }
.lead-card:nth-child(4){ animation-delay:.20s; }
.lead-card:nth-child(5){ animation-delay:.25s; }
.lead-card:nth-child(6){ animation-delay:.30s; }

/* ===== 响应式 ===== */
@media (max-width:880px){
  :root{ --fs-h1:30px; }
  .hero h1{ font-size:32px; letter-spacing:4px; }
  .hero{ padding:50px 6px 18px; }
  .tool-grid{ grid-template-columns:repeat(auto-fill,minmax(260px,1fr)); gap:14px; }
  .cat-section{ margin:36px 0 14px; }
}
@media (max-width:640px){
  :root{ --fs-h1:26px; --fs-h2:19px; }
  header.site .wrap{ padding-top:11px; padding-bottom:11px; gap:8px; }
  header.site .brand{ font-size:18px; letter-spacing:2px; gap:8px; }
  header.site .brand .logo{ width:30px; height:30px; font-size:16px; }
  header.site .brand small{ display:none; }
  header.site nav{ width:100%; margin-top:6px; justify-content:flex-start; gap:2px 14px; }
  header.site nav a{ margin-left:0; margin-right:0; font-size:13px; padding:4px 0; }
  .hero{ padding:42px 6px 14px; }
  .hero h1{ font-size:26px; letter-spacing:3px; }
  .hero p{ font-size:14px; }
  .hero .stats{ margin-top:16px; }
  .hero .stats span{ margin:2px 4px; padding:4px 11px; font-size:12px; }
  .wrap{ padding:0 16px; }
  .tool-grid{ grid-template-columns:1fr; gap:12px; }
  .lead-grid{ grid-template-columns:1fr; gap:10px; }
  h1.page{ font-size:22px; padding-left:13px; }
  h2{ font-size:18px; }
  h3{ font-size:15.5px; }
  .card{ padding:20px 16px; margin-bottom:18px; }
  .tool-card{ padding:20px 18px; }
  .lead-card{ padding:13px; }
  footer.site{ padding:28px 0 32px; margin-top:54px; }
  .back-home{ left:12px; bottom:12px; padding:7px 13px; font-size:12px; }
  .cat-section .cat-title{ font-size:16px; gap:10px; }
  .cat-section .cat-title .cat-sub{ font-size:11.5px; }
  .section-title{ font-size:16px; margin:26px 0 14px; }
}
@media (max-width:380px){
  header.site .brand{ font-size:16px; letter-spacing:1.5px; }
  header.site nav a{ font-size:12.5px; margin-right:10px !important; }
  .hero h1{ font-size:22px; letter-spacing:2px; }
  .wrap{ padding:0 12px; }
  .card{ padding:16px 13px; }
  .tool-card{ padding:16px 14px; }
  .tool-card .tc-ico{ width:42px; height:42px; font-size:28px; line-height:42px; }
  .tool-card h3{ font-size:15px; }
  h1.page{ font-size:19px; }
  .back-home{ font-size:11.5px; padding:6px 11px; }
}

/* ===== 打印样式（友好输出） ===== */
@media print{
  header.site, footer.site, .back-home, .premium-btn, .tool-grid{ display:none; }
  .card{ box-shadow:none; border:1px solid #ddd; }
  body{ background:#fff; }
}

/* ===== 无障碍 ===== */
:focus-visible{ outline:2px solid var(--c-purple-3); outline-offset:3px; border-radius:4px; }
:focus:not(:focus-visible){ outline:none; }
@media (prefers-reduced-motion: reduce){
  *,*::before,*::after{
    animation-duration:.01ms !important;
    animation-iteration-count:1 !important;
    transition-duration:.01ms !important;
    scroll-behavior:auto !important;
  }
  .hero::before, .hero::after{ animation:none; }
}

/* ===== 选中态 ===== */
::selection{ background:rgba(124,77,175,.25); color:var(--c-purple-1); }
::-moz-selection{ background:rgba(124,77,175,.25); color:var(--c-purple-1); }

/* ===== 滚动条（仅 Webkit） ===== */
::-webkit-scrollbar{ width:10px; height:10px; }
::-webkit-scrollbar-track{ background:var(--c-bg-soft); }
::-webkit-scrollbar-thumb{ background:rgba(124,77,175,.30); border-radius:5px; border:2px solid var(--c-bg-soft); }
::-webkit-scrollbar-thumb:hover{ background:rgba(124,77,175,.50); }