/* ============================================================================
   AfterTaxSalary — Earnings Statement 设计 DNA（2026-08-29 整站改版）
   布局 paystub-docket · 类名前缀 stub- · 主色相 288（深茄紫墨）
   母题：美国工资单存根（earnings statement）——
   暖纸底 · 表单深紫题头带 · 穿孔撕边 · 点线引导金额行 · 等宽单据字
   ========================================================================== */
:root{
  --bg:#f7f4ee;           /* 暖纸底 */
  --paper:#fffdf9;        /* 单据卡片底 */
  --ink:#26192f;          /* 正文墨色（茄紫黑） */
  --ink-soft:#5d4a6b;     /* 次级文字 */
  --deep:#342040;         /* 深茄紫（题头带/页眉/页脚/表头） */
  --deep-2:#452b56;       /* 深茄紫 hover */
  --line:#ddd2e4;         /* 描边 */
  --line-soft:#e9e1ee;    /* 更浅分隔线 */
  --gold:#a97f2f;         /* 哑金（点缀/标签） */
  --green:#1c7a4e;        /* 到手净额绿 */
  --mono:ui-monospace,SFMono-Regular,Menlo,Consolas,"Liberation Mono",monospace;
  --sans:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Helvetica,Arial,sans-serif;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
html,body{margin:0;padding:0}
html{height:100%}
body.stub-body{
  font-family:var(--sans);
  color:var(--ink);
  background:var(--bg);
  line-height:1.62;
  font-size:16px;
  display:flex;
  flex-direction:column;
  min-height:100vh;
  overflow-x:clip;
}
body.stub-body a{color:var(--green)}
body.stub-body img{max-width:100%}

/* ---- 页眉：双层单据头（深紫品牌条 + 纸底导航条） ---- */
.stub-head{background:var(--deep);border-bottom:3px solid var(--gold)}
.stub-headin{max-width:1060px;margin:0 auto;padding:14px 20px 0;display:flex;flex-wrap:wrap;align-items:center;gap:14px}
.stub-brand{font-family:var(--mono);font-weight:700;font-size:19px;letter-spacing:.3px;color:#f7f0fa;display:flex;align-items:center;gap:10px;text-decoration:none}
.stub-brand svg{display:block}
.stub-brand .stub-mk{color:#e0b84f}
.stub-brand .mk{color:#e0b84f}
.stub-masttag{margin-left:auto;font-family:var(--mono);font-size:10.5px;letter-spacing:.14em;color:#cfa96a;text-transform:uppercase}
.stub-nav{flex-basis:100%;display:flex;flex-wrap:wrap;gap:2px 20px;padding:10px 0 12px}
body.stub-body .stub-nav a{color:#e9ddf2;text-decoration:none;font-size:13.5px;font-family:var(--mono);letter-spacing:.02em;padding:3px 0;border-bottom:2px solid transparent}
body.stub-body .stub-nav a:hover{color:#fff;border-bottom-color:var(--gold)}

/* ---- 主列（全站内容宽度统一 1060px） ---- */
main,main.stub-main,main.stub-home,main.stub-prose{width:100%;flex:1 0 auto;max-width:1060px;margin:0 auto;padding:26px 20px 44px}
main.stub-home{display:block}
main{max-width:1060px}
.stub-shell{display:grid;grid-template-columns:300px 1fr;gap:26px;align-items:start}
.stub-prose{max-width:1060px;margin:0 auto}
@media(max-width:780px){.stub-shell{grid-template-columns:1fr}}

/* ---- 首页单列 hub 布局 ---- */
main.stub-home{display:block;max-width:1060px}

/* ---- 计算器页：表单 2 列网格（上下结构，结果全宽在下） ---- */
.stub-formgrid{display:grid;grid-template-columns:1fr 1fr;gap:0 18px}
@media(max-width:640px){.stub-formgrid{grid-template-columns:1fr}}

/* ---- 首页介绍区：正文 + 算例卡 双栏 ---- */
.stub-homeintro{display:grid;grid-template-columns:1.15fr .85fr;gap:22px;align-items:start}
.stub-homelead p{font-size:16px;color:var(--ink-soft);margin:0 0 13px}
.stub-homesample{background:var(--paper);border:1px solid var(--line);border-top:4px solid var(--gold);border-radius:3px;padding:18px 20px;box-shadow:0 1px 3px rgba(52,32,64,.06)}
.stub-homesample p{font-size:14px;color:var(--ink-soft);margin:0 0 10px}
.stub-homesample .stub-sampletag{font-family:var(--mono);font-size:10.5px;letter-spacing:.1em;text-transform:uppercase;color:var(--gold);font-weight:700;margin-bottom:8px}
.stub-homesample .stub-figures{padding-top:12px;margin-top:8px}
.stub-homesample .stub-figures::before{left:-20px;right:-20px}
.stub-homesample .stub-samplerun{font-size:13.5px;margin-top:12px;font-weight:600}
@media(max-width:900px){.stub-homeintro{grid-template-columns:1fr}}

/* ---- 单据卡片（锐角 + 表单描边） ---- */
.stub-panel{background:var(--paper);border:1px solid var(--line);border-radius:3px;box-shadow:0 1px 3px rgba(52,32,64,.06)}
.stub-card{padding:20px}
.stub-head-h{font-family:var(--mono);font-size:15px;text-transform:uppercase;letter-spacing:.08em;margin:0 0 14px;padding-bottom:9px;border-bottom:2px solid var(--deep)}
.stub-sub{color:var(--ink-soft);font-size:13px;margin:-8px 0 16px}

/* ---- 表单字段 ---- */
.stub-field{margin-bottom:14px}
.stub-label{display:block;font-family:var(--mono);text-transform:uppercase;letter-spacing:.09em;font-size:11px;color:var(--ink-soft);margin-bottom:5px;font-weight:600}
.stub-label::after{content:" :";color:var(--gold)}
.stub-input,.stub-select{width:100%;padding:10px 11px;border:1px solid var(--line);border-radius:2px;font-family:var(--mono);font-size:15px;color:var(--ink);background:#fff;transition:border-color .15s}
.stub-input:hover,.stub-select:hover{border-color:#c4b3d1}
.stub-input:focus,.stub-select:focus{outline:2px solid var(--deep);outline-offset:1px}
.stub-btn{width:100%;padding:12px;background:var(--deep);color:#fff;border:0;border-radius:2px;font-family:var(--mono);font-weight:700;font-size:14px;letter-spacing:.06em;text-transform:uppercase;cursor:pointer;margin-top:4px;transition:background .15s,transform .12s;box-shadow:0 2px 0 rgba(38,25,47,.35)}
.stub-btn:active{transform:translateY(1px);box-shadow:0 1px 0 rgba(38,25,47,.35)}
body.stub-body .stub-btn:hover{background:var(--deep-2)}
body.stub-body a:focus-visible,.stub-btn:focus-visible,.stub-navtg:focus-visible{outline:2px solid var(--gold);outline-offset:2px}

/* ---- 工资单金额行（点线引导，母题核心） ---- */
.stub-figures{margin-top:4px;position:relative;padding-top:14px}
/* 穿孔撕边：一排打孔 + 虚线撕线 */
.stub-figures::before{content:"";display:block;position:absolute;top:0;left:-20px;right:-20px;height:12px;
  background:radial-gradient(circle at 11px 6px,var(--bg) 3.2px,transparent 3.8px) repeat-x;
  background-size:22px 12px}
.stub-row{display:flex;align-items:baseline;gap:8px;padding:10px 0;border-bottom:1px solid var(--line-soft);font-family:var(--mono);font-size:14.5px}
.stub-row .stub-k{color:var(--ink-soft)}
@media(max-width:780px){.stub-row .stub-k{white-space:normal}}
.stub-row .stub-v{display:flex;flex:1;justify-content:flex-end;align-items:baseline;font-weight:600;text-align:right}
.stub-row .stub-v::before{content:"";flex:1;border-bottom:2px dotted #c4b3d1;margin:0 9px 4px;min-width:24px}
.stub-row.stub-grand{border-bottom:0;border-top:3px double var(--deep);margin-top:6px;padding-top:13px;font-size:16px}
.stub-row.stub-grand .stub-k{color:var(--ink);font-weight:700;text-transform:uppercase;font-size:13px;letter-spacing:.06em}
.stub-row.stub-grand .stub-v{color:var(--green)}
.stub-note{margin-top:16px;font-size:12.5px;color:var(--ink-soft);border-left:3px solid var(--gold);padding:6px 0 6px 11px;line-height:1.5}

/* ---- 说明/文章区 ---- */
.stub-explain h3{font-family:var(--mono);font-size:15.5px;text-transform:uppercase;letter-spacing:.05em;border-bottom:1px solid var(--line);padding-bottom:6px;margin:22px 0 10px}
.stub-explain p{font-size:15px;color:var(--ink-soft);margin:0 0 12px}

/* ---- 内容页声明单版式：h1 题头带 ---- */
.stub-prose h1{font-family:var(--mono);font-size:22px;line-height:1.25;text-transform:uppercase;letter-spacing:.03em;background:var(--deep);color:#f7f0fa;padding:16px 20px;border-radius:3px;border-left:6px solid var(--gold);margin:0 0 16px}
.stub-prose h2{font-family:var(--mono);font-size:18px;text-transform:uppercase;letter-spacing:.05em;margin:30px 0 10px;padding-bottom:6px;border-bottom:2px solid var(--line)}
.stub-prose h3{font-family:var(--mono);font-size:15.5px;margin:22px 0 8px}
.stub-prose p{font-size:16px;color:var(--ink-soft)}
.stub-prose ul,.stub-prose ol{font-size:15.5px;color:var(--ink-soft);padding-left:22px}
.stub-prose li{margin-bottom:7px}
.stub-lead{font-size:17px;color:var(--ink);margin:0 0 18px}
.stub-callout{background:#f4eefa;border:1px solid var(--line);border-left:4px solid var(--deep);border-radius:3px;padding:14px 16px;font-size:14.5px;color:var(--ink-soft);margin:16px 0}
.stub-callout strong{color:var(--ink)}

/* ---- 单据表格 ---- */
.stub-table{width:100%;border-collapse:collapse;font-size:14px;margin:14px 0;table-layout:fixed;overflow-wrap:anywhere}
.stub-table th,.stub-table td{border-bottom:1px solid var(--line-soft);padding:9px 11px;text-align:left;vertical-align:top}
.stub-table thead th{background:var(--deep);color:#f3ecf7;font-family:var(--mono);font-weight:600;font-size:12.5px;text-transform:uppercase;letter-spacing:.05em;position:sticky;top:0}
.stub-table tbody tr:nth-child(even){background:#faf6f2}
.stub-table td.num,.stub-table th.num{text-align:right;font-family:var(--mono);white-space:normal;overflow-wrap:anywhere}
body.stub-body .stub-table a{color:var(--green);text-decoration:none}
body.stub-body .stub-table a:hover{text-decoration:underline}
@media(max-width:780px){.stub-table{table-layout:auto;display:block;overflow-x:auto;-webkit-overflow-scrolling:touch}}

/* 各州区块（工资单分联） */
.stub-state{border:1px solid var(--line);border-radius:3px;padding:16px 18px;margin:14px 0;background:var(--paper);position:relative}
.stub-state::before{content:"";display:block;position:absolute;top:-1px;left:14px;right:14px;height:10px;
  background:radial-gradient(circle at 11px 5px,var(--bg) 3px,transparent 3.6px) repeat-x;
  background-size:22px 10px}
.stub-state h3{font-family:var(--mono);margin:0 0 4px;font-size:17px}
.stub-state .stub-tag{display:inline-block;font-size:10.5px;font-family:var(--mono);text-transform:uppercase;letter-spacing:.08em;padding:3px 9px;border-radius:2px;margin-bottom:8px;border:1px solid transparent}
.stub-tag.t-none{background:#eaf4ee;color:#1c6a44;border-color:#bfe0cc}
.stub-tag.t-flat{background:#efeaf6;color:#4a2f60;border-color:#d5c6e6}
.stub-tag.t-bracket{background:#f9f1e2;color:#7c5a14;border-color:#e6d3ab}
.stub-tag.t-high{background:#fbeceb;color:#8f2b33;border-color:#ecc9cb}
.stub-state p{font-size:14.5px;color:var(--ink-soft);margin:6px 0}
.stub-state .stub-example{font-family:var(--mono);font-size:13px;background:#f4f0f8;border:1px dashed #c4b3d1;border-radius:2px;padding:9px 11px;margin-top:8px}

/* ---- 404 单据页 ---- */
.stub-404{position:relative;border:1px solid var(--line);border-radius:3px;background:var(--paper);box-shadow:0 1px 3px rgba(52,32,64,.06);padding:34px 30px 30px;margin:10px 0 22px;overflow:hidden}
.stub-404::before{content:"";position:absolute;top:12px;left:0;right:0;height:18px;background-image:radial-gradient(circle at 9px 9px,var(--bg) 4px,transparent 4.6px);background-size:36px 18px;background-repeat:repeat-x;opacity:.9}
.stub-404-num{display:flex;align-items:baseline;gap:18px;font-family:var(--mono);line-height:1}
.stub-404-num .n{font-size:112px;font-weight:700;letter-spacing:-4px;color:var(--deep)}
.stub-404-num .stamp{flex:1;border:3px solid #b3452f;color:#b3452f;border-radius:4px;font-size:15px;font-weight:700;letter-spacing:.14em;text-transform:uppercase;padding:9px 14px;transform:rotate(-4deg);text-align:center;max-width:230px}
.stub-404-lines{margin:26px 0 4px;font-family:var(--mono);font-size:15px;color:var(--ink)}
.stub-404-lines .row{display:flex;align-items:baseline;margin-top:10px}
.stub-404-lines .row .dots{flex:1;border-bottom:2px dotted #b9a7c6;margin:0 12px;transform:translateY(-4px)}
.stub-404-cta{margin-top:26px;display:flex;gap:12px;flex-wrap:wrap}
.stub-404-cta a.stub-btn{width:auto;display:inline-block;text-decoration:none;padding:12px 26px}
.stub-404-cta a.ghost{display:inline-block;padding:12px 22px;border:1.5px solid var(--deep);border-radius:2px;color:var(--deep);font-family:var(--mono);font-weight:700;font-size:14px;letter-spacing:.06em;text-transform:uppercase;text-decoration:none;transition:background .15s}
.stub-404-cta a.ghost:hover{background:#f4f0f8}
@media (max-width:560px){.stub-404-num .n{font-size:76px;letter-spacing:-2px}.stub-404-num{gap:10px}}
/* 州块内扣分明细迷你表（防 prose 容器样式污染，显式全指定） */
table.stub-mini{width:100%;border-collapse:collapse;font-size:13.5px;margin:10px 0 4px}
table.stub-mini th,table.stub-mini td{border-bottom:1px solid var(--line-soft);padding:6px 9px;text-align:left;background:transparent}
table.stub-mini thead th{background:#efeaf6;color:var(--ink);font-family:var(--mono);font-weight:600;font-size:12px;text-transform:uppercase;position:static}
table.stub-mini td.num{text-align:right;font-family:var(--mono);white-space:nowrap}
table.stub-mini tbody tr:nth-child(even){background:transparent}

/* 锚点跳转条（分联索引） */
.stub-jump{display:flex;flex-wrap:wrap;gap:7px;margin:14px 0}
.stub-jump a{font-size:12px;font-family:var(--mono);text-decoration:none;color:var(--ink-soft);border:1px solid var(--line);border-radius:2px;padding:4px 10px;background:var(--paper)}
body.stub-body .stub-jump a:hover{color:var(--deep);border-color:var(--deep);background:#f4eefa}

/* FAQ（问询联） */
.stub-faq details{border:1px solid var(--line);border-radius:3px;padding:0 14px;margin:10px 0;background:var(--paper)}
.stub-faq summary{cursor:pointer;font-weight:600;padding:13px 0;font-size:15.5px;font-family:var(--mono)}
.stub-faq details[open] summary{border-bottom:1px dashed var(--line)}
.stub-faq p{padding:4px 0 12px;font-size:15px;color:var(--ink-soft)}

/* 署名（契约类，名不变） */
.author{font-size:12.5px;color:var(--ink-soft);font-style:italic;margin-top:18px;border-top:1px dashed var(--line);padding-top:10px}

/* 广告槽位：三态契约类名不变（[data-ad]/.ad-slot/ins） */
.ad-slot{
  margin:18px 0;
  min-height:90px;
  border:1px solid var(--line);
  border-radius:3px;
  background:var(--paper);
}
.ad-slot:not(:empty){
  padding:9px 11px;
  border-color:#cfc0dc;
  background:#fdfbf7;
}
.ad-slot:not(:empty)::before{
  content:"Advertisement";
  display:block;
  font-size:10px;
  letter-spacing:.1em;
  text-transform:uppercase;
  font-family:var(--mono);
  color:var(--gold);
  text-align:right;
  margin-bottom:7px;
  opacity:.9;
}
.ad-slot:empty{display:none}
/* 双栏布局中，top/footer 广告横跨整行 */
.stub-shell > .ad-slot[data-ad="top"],
.stub-shell > .ad-slot[data-ad="footer"]{grid-column:1 / -1}

/* ---- 页脚：深紫签批栏 ---- */
.stub-foot{background:var(--deep);color:#e9ddf2;padding:34px 20px 28px;font-size:13px;margin-top:34px;border-top:3px solid var(--gold)}
.stub-foot .stub-wrap{max-width:1060px;margin:0 auto}
body.stub-body .stub-foot a{color:#e9ddf2;text-decoration:none;opacity:.88}
body.stub-body .stub-foot a:hover{opacity:1;text-decoration:underline}
/* 四块 grid：品牌块居左占 1.3 份，三个链接组靠右均分 */
.stub-fgrid{display:grid;grid-template-columns:1.3fr 1fr 1fr 1fr;gap:26px;padding-bottom:22px}
.stub-fbrand{min-width:0}
.stub-flogo{display:inline-flex;align-items:center;gap:9px;font-family:var(--mono);font-weight:700;font-size:17px;letter-spacing:.3px;color:#f7f0fa}
.stub-flogo .stub-mk{color:#e0b84f}
.stub-ftag{margin:12px 0 0;font-size:12.5px;color:#cbb8d8;max-width:250px;line-height:1.6}
.stub-fcol{display:flex;flex-direction:column;gap:9px;font-family:var(--mono);font-size:12.5px;justify-self:end;text-align:left;min-width:130px}
.stub-fhead{margin:0 0 3px;font-family:var(--mono);font-size:10.5px;letter-spacing:.14em;text-transform:uppercase;color:#e0b84f;border-bottom:1px dashed rgba(224,184,79,.45);padding-bottom:7px}
.stub-fine{opacity:.75;font-size:12px;border-top:1px dashed rgba(233,221,242,.4);padding-top:14px}
@media(max-width:900px){.stub-fgrid{grid-template-columns:1fr 1fr}.stub-fbrand{grid-column:1/-1}.stub-fcol{justify-self:start}}
@media(max-width:480px){.stub-fgrid{grid-template-columns:1fr}}

/* ---- 移动端汉堡菜单（纯 CSS 切换） ---- */
.stub-navcb{position:absolute;width:1px;height:1px;margin:-1px;opacity:0;pointer-events:none}
.stub-navtg{display:none;cursor:pointer;width:42px;height:38px;margin-left:auto;border:1px solid rgba(233,221,242,.5);border-radius:2px;flex-direction:column;align-items:center;justify-content:center;gap:5px;background:transparent}
.stub-navtg span{display:block;width:20px;height:2px;background:#f7f0fa;border-radius:2px;transition:transform .2s,opacity .2s}
.stub-navtg:focus{outline:2px solid #e0b84f;outline-offset:2px}
@media(max-width:780px){
  .stub-headin{position:relative;padding-bottom:12px}
  .stub-masttag{display:none}
  .stub-navtg{display:flex}
  .stub-nav{display:none;position:absolute;top:100%;left:0;right:0;flex-direction:column;gap:0;background:var(--deep);border-top:1px solid rgba(233,221,242,.18);padding:6px 20px 14px;margin:0;box-shadow:0 8px 16px rgba(38,25,47,.25);z-index:20}
  body.stub-body .stub-nav a{padding:13px 2px;border-bottom:1px solid rgba(233,221,242,.12);font-size:14.5px}
  body.stub-body .stub-nav a:last-child{border-bottom:0}
  .stub-navcb:checked ~ .stub-nav{display:flex}
  .stub-navcb:checked ~ .stub-navtg span:nth-child(1){transform:translateY(7px) rotate(45deg)}
  .stub-navcb:checked ~ .stub-navtg span:nth-child(2){opacity:0}
  .stub-navcb:checked ~ .stub-navtg span:nth-child(3){transform:translateY(-7px) rotate(-45deg)}
}

/* ============================================================================
   深度美化层（2026-08-29 下午第二轮）：首页 hero · 工具卡 · 图标 · 细节
   ========================================================================== */

/* ---- 首页 hero：工资单票据大版头 ---- */
.stub-hero{position:relative;background:var(--deep);color:#f7f0fa;border-radius:4px;overflow:hidden;margin:0 0 26px;border-bottom:3px solid var(--gold)}
/* 底纹：大格纸线条（低对比，纯装饰） */
.stub-hero::before{content:"";position:absolute;inset:0;
  background:repeating-linear-gradient(0deg,transparent 0 30px,rgba(247,240,250,.045) 30px 31px),
             repeating-linear-gradient(90deg,transparent 0 30px,rgba(247,240,250,.045) 30px 31px);
  pointer-events:none}
.stub-hero::after{content:"";position:absolute;top:0;left:0;right:0;height:10px;
  background:radial-gradient(circle at 11px 5px,var(--bg) 3px,transparent 3.6px) repeat-x;
  background-size:22px 10px;opacity:.9}
.stub-heroin{position:relative;display:grid;grid-template-columns:1.2fr .8fr;gap:24px;align-items:center;padding:34px 34px 30px}
.stub-herotag{display:inline-block;font-family:var(--mono);font-size:10.5px;letter-spacing:.16em;text-transform:uppercase;color:#e0b84f;border:1px solid rgba(224,184,79,.55);padding:4px 11px;border-radius:2px;margin:0 0 14px}
.stub-herotitle{font-family:var(--mono);font-size:30px;line-height:1.18;margin:0 0 12px;color:#fdfaf4;letter-spacing:.01em;font-weight:700}
.stub-herotitle .hl{color:#e0b84f}
.stub-herosub{font-size:15.5px;color:#d9c8e4;margin:0 0 20px;max-width:52ch;line-height:1.6}
.stub-herobtns{display:flex;flex-wrap:wrap;gap:11px}
.stub-herocta{display:inline-block;font-family:var(--mono);font-weight:700;font-size:13.5px;letter-spacing:.05em;text-transform:uppercase;text-decoration:none;padding:12px 22px;border-radius:2px;transition:background .15s,transform .12s}
.stub-herocta.solid{background:var(--gold);color:#2a1a33;box-shadow:0 2px 0 rgba(0,0,0,.3)}
.stub-herocta.solid:hover{background:#c2953f;transform:translateY(-1px)}
.stub-herocta.ghost{border:1px solid rgba(233,221,242,.55);color:#f0e8f6}
.stub-herocta.ghost:hover{border-color:#e0b84f;color:#fff;background:rgba(224,184,79,.08)}
/* hero 右侧插画：支票+钢笔+印章 静态 SVG */
.stub-heroart{display:flex;justify-content:center}
.stub-heroart svg{width:100%;max-width:300px;height:auto;display:block}
/* hero 底部数据条：三格关键数字（用页面已有实算数据） */
.stub-herobits{position:relative;display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:rgba(233,221,242,.22);border-top:1px solid rgba(233,221,242,.22)}
.stub-herobit{background:var(--deep);padding:14px 22px;text-align:left}
.stub-herobit .n{display:block;font-family:var(--mono);font-weight:700;font-size:21px;color:#e0b84f;letter-spacing:.02em}
.stub-herobit .t{display:block;font-family:var(--mono);font-size:10.5px;letter-spacing:.1em;text-transform:uppercase;color:#c9b3d8;margin-top:3px}

/* ---- 首页工具导航卡（calculator 下方快捷入口） ---- */
.stub-toolgrid{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;margin:26px 0 6px}
.stub-toolcard{background:var(--paper);border:1px solid var(--line);border-radius:3px;padding:16px 16px 14px;text-decoration:none;display:flex;flex-direction:column;gap:7px;transition:transform .15s,box-shadow .15s,border-color .15s;position:relative;overflow:hidden}
.stub-toolcard::after{content:"";position:absolute;top:0;left:0;right:0;height:4px;background:var(--deep);transition:background .15s}
.stub-toolcard:hover{transform:translateY(-2px);box-shadow:0 6px 14px rgba(52,32,64,.12);border-color:#c4b3d1}
.stub-toolcard:hover::after{background:var(--gold)}
.stub-toolcard .ic{width:34px;height:34px;display:flex;align-items:center;justify-content:center;background:#f0e9f6;border-radius:3px;margin-bottom:3px}
.stub-toolcard .ic svg{width:20px;height:20px}
.stub-toolcard .nm{font-family:var(--mono);font-weight:700;font-size:13.5px;color:var(--ink);letter-spacing:.02em}
.stub-toolcard .ds{font-size:12.5px;color:var(--ink-soft);line-height:1.5}
.stub-toolcard .go{font-family:var(--mono);font-size:11px;letter-spacing:.08em;text-transform:uppercase;color:var(--green);margin-top:auto;padding-top:6px}

/* ---- 区块标题（首页分区） ---- */
.stub-secthead{display:flex;align-items:baseline;gap:12px;margin:34px 0 16px;padding-bottom:8px;border-bottom:2px solid var(--deep)}
.stub-secthead h2{font-family:var(--mono);font-size:17px;text-transform:uppercase;letter-spacing:.06em;margin:0}
.stub-secthead .rule{flex:1;border-bottom:2px dotted #c4b3d1;transform:translateY(-4px)}
.stub-secthead .idx{font-family:var(--mono);font-size:11px;color:var(--gold);letter-spacing:.1em}

/* ---- 全站细节：表格行悬停 / 内容页题头带强化 / 打印 ---- */
.stub-table tbody tr{transition:background .12s}
.stub-table tbody tr:hover{background:#f4eefa}
.stub-prose h1{display:flex;align-items:center;gap:12px}
.stub-prose h1::before{content:"";width:10px;height:22px;flex:none;background:repeating-linear-gradient(0deg,var(--gold) 0 3px,transparent 3px 6px)}
.stub-explain h3,.stub-prose h3{position:relative;padding-left:16px}
.stub-explain h3::before,.stub-prose h3::before{content:"";position:absolute;left:0;top:.28em;width:7px;height:7px;background:var(--gold);clip-path:polygon(0 0,100% 50%,0 100%)}

@media(max-width:900px){
  .stub-heroin{grid-template-columns:1fr;padding:26px 22px 22px}
  .stub-heroart{display:none}
  .stub-herotitle{font-size:24px}
  .stub-toolgrid{grid-template-columns:1fr 1fr}
}
@media(max-width:560px){
  .stub-toolgrid{grid-template-columns:1fr}
  .stub-herobits{grid-template-columns:1fr;gap:0}
  .stub-herobit{padding:10px 22px;border-top:1px solid rgba(233,221,242,.16)}
  .stub-herobit:first-child{border-top:0}
  .stub-herobit .n{font-size:18px}
}
@media print{
  .stub-head,.stub-foot,.ad-slot,.stub-herobtns,.stub-heroart{display:none!important}
  body.stub-body{background:#fff}
  .stub-hero{background:#fff;color:#000;border:1px solid #000}
}
