/* ============================================================
   RunningHub 工作流工作台 · v2.0 石墨鎏金
   暖纸底 / 石墨黑 / 鎏金点缀 · 衬线标题数字 · WCAG AAA 正文对比
   ============================================================ */
:root{
  --paper:#F7F6F2;
  --card:#FFFFFF;
  --ink:#16181D;
  --ink-2:#4E525E;
  --muted:#9A9EAB;          /* 兼容旧变量名 */
  --border:#E8E6DF;         /* 兼容旧变量名 */
  --line:#E8E6DF;
  --graphite:#20222B;
  --graphite-h:#33363F;
  --gold:#A98546;
  --gold-soft:#F3ECDD;
  --ok:#3E7C5B; --ok-bg:#E9F2EC;
  --warn:#B07A24; --warn-bg:#F8EFD9;
  --err:#B04A42; --err-bg:#F8E9E7;
  /* 兼容旧变量名（页面内联样式引用） */
  --primary:#A98546;
  --primary2:#C09A55;
  --text:#16181D;
  --bg:#F7F6F2;
  --serif:"Georgia","Songti SC","Noto Serif SC",serif;
}
*{box-sizing:border-box}
body{
  margin:0;font-family:-apple-system,"PingFang SC","Microsoft YaHei",sans-serif;
  background:var(--paper);color:var(--ink);-webkit-font-smoothing:antialiased;
}
a{color:var(--ink);text-decoration:none}
h2{font-family:var(--serif);font-size:17px;margin:0 0 14px;font-weight:700}

/* ---------- 布局 ---------- */
.wrap{max-width:1080px;margin:0 auto;padding:22px 20px 90px}
@media(min-width:1024px){ .wrap{padding:28px 40px 60px} }

/* ---------- 顶栏 ---------- */
.topbar{
  display:flex;align-items:center;justify-content:space-between;
  padding:0 24px;height:60px;background:var(--graphite);color:#F5F3EC;
  position:sticky;top:0;z-index:40;
}
.topbar h1{
  font-family:var(--serif);font-size:16.5px;margin:0;font-weight:700;
  display:flex;align-items:center;gap:9px;letter-spacing:.02em;
}
.topbar h1::before{
  content:"";width:18px;height:18px;background:#F5F3EC;border-radius:3px;
  display:inline-block;box-shadow:inset 0 0 0 5px #F5F3EC,inset 0 0 0 9px var(--gold);
}
.topbar .nav{display:flex;align-items:center;gap:16px}
.topbar .nav a,.topbar .nav button{
  color:#C9CCD6;font-size:13.5px;cursor:pointer;
  background:none;border:none;padding:6px 2px;transition:color .15s;
}
.topbar .nav a:hover,.topbar .nav button:hover{color:#fff}
.topbar #credits{color:#C9CCD6;font-size:13px;display:inline-flex;align-items:center;gap:6px}
.topbar #credits b{font-family:var(--serif);color:var(--gold);font-size:16px;font-weight:700;margin-left:2px}

/* ---------- 卡片与统计 ---------- */
.card{
  background:var(--card);border:1px solid var(--line);border-radius:10px;
  padding:20px;margin-bottom:16px;
}
.grid{display:grid;gap:16px}
.grid.cols2{grid-template-columns:1fr 1fr}
.grid.cols3{grid-template-columns:repeat(3,1fr)}
.grid.cols4{grid-template-columns:repeat(4,1fr)}
@media(max-width:720px){ .grid.cols3,.grid.cols4{grid-template-columns:1fr 1fr} }
.stat{
  background:var(--card);border:1px solid var(--line);border-radius:10px;padding:18px;
}
.stat .num{font-family:var(--serif);font-size:25px;font-weight:700;color:var(--ink)}
.stat .lbl{color:var(--muted);font-size:12.5px;margin-top:3px;letter-spacing:.03em}

/* ---------- 首页余额卡 ---------- */
.bal-hero{
  margin:0 0 18px;background:var(--graphite);border-radius:12px;
  padding:20px 22px;color:#F5F3EC;display:flex;align-items:center;
  justify-content:space-between;position:relative;overflow:hidden;
}
.bal-hero::after{
  content:"";position:absolute;right:-24px;top:-24px;width:110px;height:110px;
  border-radius:50%;border:1px solid rgba(169,133,70,.5);
}
.bal-hero::before{
  content:"";position:absolute;right:60px;bottom:-40px;width:70px;height:70px;
  border-radius:50%;border:1px solid rgba(169,133,70,.3);
}
.bal-hero .lbl{font-size:11.5px;opacity:.6;letter-spacing:.08em}
.bal-hero .num{font-family:var(--serif);font-size:32px;font-weight:700;color:#fff;line-height:1.2}
.bal-hero .num em{font-style:normal;color:var(--gold);font-size:15px;margin-right:5px;vertical-align:3px}
.bal-hero .rc{
  background:var(--gold);color:#fff;border:none;padding:9px 20px;border-radius:4px;
  font-size:13.5px;font-weight:600;cursor:pointer;letter-spacing:.02em;
}
.bal-hero .rc:hover{filter:brightness(1.08)}

/* ---------- Tab 导航（桌面顶部 / 移动底部） ---------- */
.tabs{
  display:flex;gap:6px;background:#ECEAE2;border-radius:8px;padding:4px;margin:0 0 20px;
}
.tabs button{
  flex:1;background:none;border:none;padding:9px 14px;cursor:pointer;
  font-size:13.5px;color:var(--ink-2);border-radius:6px;font-weight:600;transition:.15s;
}
.tabs button.active{background:var(--card);color:var(--ink);box-shadow:0 1px 4px rgba(22,24,29,.08)}
@media(max-width:1023px){
  .tabs{
    position:fixed;left:0;right:0;bottom:0;z-index:40;margin:0;border-radius:0;
    background:rgba(247,246,242,.96);backdrop-filter:blur(10px);
    border-top:1px solid var(--line);padding:6px 8px calc(8px + env(safe-area-inset-bottom));
  }
  .tabs button{padding:10px 6px;font-size:12.5px}
  .tabs button.active{box-shadow:none;background:var(--card)}
  /* 登录页的登录/注册切换不参与底部导航化 */
  .auth-tabs{
    position:static !important;margin:0 0 16px;border-radius:8px;
    background:#ECEAE2;border:none;padding:4px;backdrop-filter:none;
  }
  .auth-tabs button{padding:9px 14px;font-size:13.5px;border-radius:6px}
  .auth-tabs button.active{background:var(--card)}
}

/* ---------- 表单 ---------- */
label{display:block;font-size:12.5px;font-weight:600;color:var(--ink-2);margin:12px 0 6px;letter-spacing:.02em}
input,textarea,select{
  width:100%;padding:11px 13px;border:1px solid var(--line);border-radius:5px;
  font-size:14px;background:var(--card);color:var(--ink);font-family:inherit;
  outline:none;transition:.15s;
}
input:focus,textarea:focus,select:focus{
  border-color:var(--ink);box-shadow:0 0 0 3px rgba(22,24,29,.06);
}

/* ---------- 按钮 ---------- */
button.btn,.btn{
  display:inline-flex;align-items:center;justify-content:center;
  background:var(--graphite);color:#F5F3EC;border:none;
  padding:10px 20px;border-radius:4px;font-size:14px;cursor:pointer;
  font-weight:600;letter-spacing:.02em;transition:.15s;
}
button.btn:hover:not(:disabled){background:var(--graphite-h)}
button.btn.ghost,.btn.ghost{background:transparent;color:var(--ink);border:1px solid var(--ink)}
button.btn.ghost:hover:not(:disabled){background:var(--gold-soft)}
button.btn.gold,.btn.gold{background:var(--gold);color:#fff}
button.btn.gold:hover:not(:disabled){filter:brightness(1.08)}
button.btn:disabled{opacity:.45;cursor:not-allowed}
.btn.small{padding:4px 12px;font-size:12px;margin-top:4px;display:inline-block}

/* ---------- 状态胶囊 ---------- */
.pill{display:inline-flex;align-items:center;gap:5px;padding:3px 11px;border-radius:2px;font-size:12px;font-weight:600;letter-spacing:.03em}
.pill.ok{background:var(--ok-bg);color:var(--ok)}
.pill.run{background:var(--warn-bg);color:var(--warn)}
.pill.fail{background:var(--err-bg);color:var(--err)}
.pill.ghost{background:#EFEEE9;color:var(--ink-2)}

/* ---------- 工作流卡片 ---------- */
.workflow-card{cursor:pointer;transition:transform .15s,box-shadow .15s;padding:0;overflow:hidden}
.workflow-card:hover{transform:translateY(-2px);box-shadow:0 12px 32px rgba(22,24,29,.10)}
.wf-cover{
  height:132px;display:flex;align-items:center;justify-content:center;font-size:36px;
  background:linear-gradient(140deg,#20222B,#3A3D4A);position:relative;
}
.wf-cover.g2{background:linear-gradient(140deg,#4A4E60,#6B7089)}
.wf-cover.g3{background:linear-gradient(140deg,#6B5A34,#A98546)}
.wf-cover .tag{
  position:absolute;top:10px;left:12px;font-size:10.5px;letter-spacing:.06em;font-weight:600;
  padding:2px 9px;border-radius:2px;background:rgba(255,255,255,.88);color:var(--ink-2);
}
.wf-cover .series{
  position:absolute;top:10px;left:12px;z-index:2;font-size:10.5px;letter-spacing:.12em;
  padding:3px 9px;border-radius:2px;background:rgba(24,24,30,.55);color:#F3D48C;
}
.wf-cover .ovname{
  position:absolute;bottom:10px;left:12px;z-index:2;font-family:var(--serif);
  font-size:24px;letter-spacing:.18em;color:#fff;
  padding:2px 12px 2px 14px;border-radius:3px;background:rgba(24,24,30,.55);
}
.workflow-card .desc{
  color:var(--muted);font-size:12.5px;margin:14px 0 12px;min-height:38px;padding:0 16px;
  display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;
}
.workflow-card .row{padding:0 16px 16px;display:flex;align-items:center;gap:10px}
.workflow-card .price{font-family:var(--serif);color:var(--gold);font-weight:700;font-size:16.5px}

/* ---------- 表格 ---------- */
.table{width:100%;border-collapse:collapse;font-size:13px}
.table th,.table td{text-align:left;padding:11px 12px;border-bottom:1px solid var(--line)}
.table th{color:var(--muted);font-weight:600;font-size:12px;letter-spacing:.03em}

/* ---------- 执行弹窗（三步向导） ---------- */
.modal-bg{position:fixed;inset:0;background:rgba(22,24,29,.5);display:none;align-items:center;justify-content:center;z-index:50;padding:16px}
.modal-bg.show{display:flex}
.modal{
  background:var(--card);border-radius:10px;padding:0;width:560px;max-width:94vw;
  max-height:90vh;overflow:auto;box-shadow:0 32px 80px rgba(0,0,0,.35);
}
.modal h2{padding:18px 22px 0}
.modal-body{padding:6px 22px 20px}
.m-steps{display:flex;align-items:center;padding:14px 22px 2px}
.m-stp{display:flex;flex-direction:column;align-items:center;gap:3px;font-size:10.5px;color:var(--muted);flex:1;letter-spacing:.05em}
.m-stp .c{width:22px;height:22px;border-radius:50%;background:#ECEAE2;color:var(--muted);display:flex;align-items:center;justify-content:center;font-size:11px;font-weight:700}
.m-stp.on .c{background:var(--graphite);color:#F5F3EC}
.m-stp.done .c{background:var(--gold);color:#fff}
.m-stp.on{color:var(--ink);font-weight:700}
.m-line{flex:0 0 24px;height:1px;background:#D8D5CC;margin-bottom:16px}
.m-foot{
  display:flex;align-items:center;gap:12px;padding:14px 22px 18px;
  border-top:1px solid var(--line);background:#FCFBF8;border-radius:0 0 10px 10px;
}
.m-foot .cost{font-size:11.5px;color:var(--muted)}
.m-foot .cost b{color:var(--gold);font-family:var(--serif);font-size:14px}
.m-foot .spacer{flex:1}

/* ---------- 其他既有组件 ---------- */
.detect-card{background:#FCFBF8;border:1px solid var(--line);border-left:3px solid var(--gold);border-radius:8px;padding:14px 16px;margin:12px 0;font-size:13.5px;line-height:1.7}
.detect-card ul.det-list{margin:8px 0 6px;padding-left:20px}
.detect-card ul.det-list li{margin:4px 0}
.detect-card code{background:var(--gold-soft);padding:1px 6px;border-radius:4px;font-size:12px;color:#6B5426}
.adv{margin:10px 0}
.adv summary{cursor:pointer;color:var(--gold);font-size:13px;user-select:none}
.adv textarea{margin-top:8px;font-family:ui-monospace,monospace;font-size:12px}
.rh-acct{display:flex;gap:12px;flex-wrap:wrap;margin-top:8px}
.rh-stat{flex:1;min-width:110px;background:#FCFBF8;border:1px solid var(--line);border-radius:8px;padding:12px;text-align:center}
.rh-stat .num{font-family:var(--serif);font-size:21px;font-weight:700;color:var(--gold)}
.rh-stat .lbl{font-size:12px;color:var(--muted);margin-top:2px}
.center-screen{
  min-height:100vh;display:flex;align-items:center;justify-content:center;
  background:var(--paper);padding:20px;position:relative;overflow:hidden;
}
.auth-card{width:380px;border-radius:12px}

/* ============================================================
   登录页背景 · 宣纸鎏金（方案 A 优化版）
   改进要点：动效降至 16-20s 一轮 / 只保留「蒻馨」一枚印章且静止
   / 元素压至卡片两侧不争焦点 / 支持 prefers-reduced-motion
   / 随系统切换暗色
   ============================================================ */

/* --- 底：宣纸暖白 + 极淡径向光 --- */
.pap-bg{position:fixed;inset:0;z-index:0;pointer-events:none;background:var(--paper)}
@media (prefers-color-scheme:dark){ .pap-bg{background:#181A20} }
/* 纸纤维：极细横纹，仅 2.2% 不透明度，靠低对比出质感 */
.pap-fibers{position:fixed;inset:0;z-index:0;pointer-events:none;opacity:.5;
  background-image:repeating-linear-gradient(90deg,rgba(32,34,43,.022) 0 1px,transparent 1px 5px);
}
@media (prefers-color-scheme:dark){
  .pap-fibers{background-image:repeating-linear-gradient(90deg,rgba(220,210,190,.03) 0 1px,transparent 1px 5px)}
}
/* 两处极淡暖金光晕，营造"有光"的呼吸感 */
.pap-glow{position:fixed;inset:0;z-index:0;pointer-events:none;
  background:
    radial-gradient(ellipse 46% 42% at 14% 26%,rgba(169,133,70,.075) 0,transparent 64%),
    radial-gradient(ellipse 40% 38% at 87% 76%,rgba(169,133,70,.055) 0,transparent 62%);
}
@media (prefers-color-scheme:dark){
  .pap-glow{background:
    radial-gradient(ellipse 46% 42% at 14% 26%,rgba(169,133,70,.11) 0,transparent 64%),
    radial-gradient(ellipse 40% 38% at 87% 76%,rgba(169,133,70,.075) 0,transparent 62%);}
}

/* ============================================================
   篆书印文
   字体：马善政毛笔楷书（SIL OFL 1.1 可商用）
   已子集化：原 5.8MB → 4KB，仅保留 馨/朱/颜/造/像 五字
   注：「蒻」(U+84BB) 为生僻字，该字体无字形，改以 SVG 朱线篆意绘制
   ============================================================ */
@font-face{
  font-family:"Zhuanti Seal";
  src:url("/fonts/zhuan-subset.woff2") format("woff2");
  font-weight:400;font-style:normal;font-display:swap;
}
/* 篆书字形基线偏大，纵向需收一点 */
.zhuan{
  font-family:"Zhuanti Seal",var(--serif);
  line-height:1;display:block;
}

/* ============================================================
   朱红落点：品牌叫「朱颜」、印为朱红，页面不可无红。
   原则 —— 红只落在「印章」与「界线」这类静止物上，不落在会动的东西上
   （金色是光，红色是血；光动无妨，血动刺眼）
   ============================================================ */

/* --- 主朱印：左上「蒻馨」由金描改为朱印，是全页朱红的主要来源 --- */
.pap-seal{
  position:fixed;z-index:0;pointer-events:none;
  width:118px;height:118px;border:1px solid rgba(169,59,42,.3);border-radius:2px;
  display:flex;align-items:center;justify-content:center;
  background:rgba(169,59,42,.015);
}
.pap-seal .zhuan{font-size:40px;color:rgba(169,59,42,.74)}
.pap-seal svg{display:block;margin-bottom:3px}
.pap-seal-s1{top:13%;left:6%}
/* 副印：右下保持金色，与主印形成"一朱一金"的呼应 */
.pap-seal-s2{bottom:14%;right:7%;width:82px;height:82px;
  border-color:rgba(169,133,70,.14);background:transparent}
.pap-seal-s2 .zhuan{font-size:28px;color:rgba(169,133,70,.42)}
.pap-seal-s2 svg{stroke:rgba(169,133,70,.4) !important;margin-bottom:2px}
@media (prefers-color-scheme:dark){
  .pap-seal{border-color:rgba(199,96,74,.32);background:rgba(199,96,74,.03)}
  .pap-seal .zhuan{color:rgba(199,96,74,.66)}
  .pap-seal-s2{border-color:rgba(201,178,135,.12)}
  .pap-seal-s2 .zhuan{color:rgba(201,178,135,.36)}
  .pap-seal-s2 svg{stroke:rgba(201,178,135,.34) !important}
}

/* --- 卡片内落款印：统一为品牌朱 + 篆书 + 方角（印章不该切圆角） --- */
.login-hero .seal{
  position:absolute;top:22px;right:22px;width:58px;height:58px;
  border:1.5px solid rgba(169,59,42,.88);border-radius:3px;
  display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1px;
  background:rgba(169,59,42,.05);color:rgba(169,59,42,.9);
  font-family:inherit;letter-spacing:0;writing-mode:horizontal-tb;line-height:1;
}
.login-hero .seal svg{display:block}
.login-hero .seal .zhuan{font-size:23px;color:rgba(169,59,42,.92)}

/* --- 界栏朱线：书画装裱的"界栏"，一横即定气质，静而不抢 --- */
/* 左侧竖界栏：极细朱线，自上而下贯通，与主朱印形成"边栏 + 闲章"的传统版面 */
.pap-rule{
  position:fixed;z-index:0;pointer-events:none;
  width:1px;background:linear-gradient(180deg,
    transparent 0,rgba(169,59,42,.16) 14%,rgba(169,59,42,.16) 82%,transparent 100%);
}
.pap-rule-v{left:20%;top:16%;height:62%}
@media (prefers-color-scheme:dark){
  .pap-rule{background:linear-gradient(180deg,
    transparent 0,rgba(199,96,74,.22) 14%,rgba(199,96,74,.22) 82%,transparent 100%)}
}
/* 窄屏隐藏界栏，避免与卡片区挤在一起 */
@media(max-width:900px){ .pap-rule{display:none} }

/* --- 浮尘：绝大多数保持金色，仅 2 颗提为朱色，作为"落红"的点缀 --- */
.pap-dust{position:fixed;z-index:0;pointer-events:none;
  width:3px;height:3px;border-radius:50%;background:var(--gold);
  box-shadow:0 0 6px rgba(169,133,70,.6);opacity:0;
  animation:papDrift 19s linear infinite;
}
.pap-dust.is-red{background:#A93B2A;box-shadow:0 0 6px rgba(169,59,42,.55)}
@keyframes papDrift{
  0%{transform:translate3d(0,0,0);opacity:0}
  14%{opacity:.42}
  84%{opacity:.42}
  100%{transform:translate3d(12px,-30px,0);opacity:0}
}
/* 全部落在左 2-17% 与右 83-98% 两条竖带，不进入卡片所在中区 */
.pd1{left:5%;top:77%;animation-duration:19s}
.pd2{left:11%;top:85%;animation-duration:20.5s;animation-delay:-7s}
.pd3{left:15%;top:67%;animation-duration:17.5s;animation-delay:-13s}
.pd4{left:3%;top:53%;animation-duration:21s;animation-delay:-4s}
.pd5{left:88%;top:31%;animation-duration:18.5s;animation-delay:-9.5s}
.pd6{left:94%;top:72%;animation-duration:20s;animation-delay:-15s}
.pd7{left:90%;top:15%;animation-duration:17s;animation-delay:-3s}
.pd8{left:85%;top:59%;animation-duration:19.5s;animation-delay:-11.5s}
/* 中等及以上屏幕才显示金尘，窄屏减少干扰 */
@media(max-width:900px){ .pd3,.pd5,.pd8{display:none} }
/* 窄屏同时收起朱色浮尘，只留金色 */
@media(max-width:900px){ .pap-dust.is-red{display:none} }

/* --- 卡片提到背景之上，并加深投影以在浅底上拉开层次 --- */
.center-screen > .card{position:relative;z-index:2;
  box-shadow:0 22px 54px rgba(22,24,29,.14),0 2px 8px rgba(22,24,29,.07)}
@media (prefers-color-scheme:dark){
  .center-screen > .card{box-shadow:0 22px 54px rgba(0,0,0,.5),0 2px 8px rgba(0,0,0,.3)}
}

/* --- 无障碍：用户系统关闭动画时，全部静止 --- */
@media (prefers-reduced-motion:reduce){
  .pap-dust{animation:none;opacity:.18}
  .pap-seal{opacity:.7}
}
.auth-card .logo{
  text-align:center;font-family:var(--serif);font-size:20px;font-weight:700;margin-bottom:6px;color:var(--ink);
}
.auth-card .logo em{font-style:normal;color:var(--gold)}
.auth-card .sub{text-align:center;color:var(--muted);font-size:12.5px;margin-bottom:18px}
.login-hero{
  background:var(--graphite);color:#F5F3EC;margin:-20px -20px 0;padding:44px 24px 56px;
  position:relative;overflow:hidden;border-radius:10px 10px 0 0;
}
.login-hero::after{content:"";position:absolute;right:-30px;bottom:-40px;width:140px;height:140px;border-radius:50%;border:1px solid rgba(169,133,70,.5)}
.login-hero::before{content:"";position:absolute;left:-40px;top:-30px;width:110px;height:110px;border-radius:50%;border:1px solid rgba(169,133,70,.3)}
.login-hero h2{font-family:var(--serif);font-size:22px;font-weight:700;color:#fff;margin:0}
.login-hero h2 em{font-style:normal;color:var(--gold)}
.login-hero p{font-size:12.5px;opacity:.65;margin-top:8px}
/* 注：.login-hero .seal 的篆书样式已上移至「篆书印文」区统一维护，
   旧规则（橘红楷体 54px/圆角6px/vertical-rl）已删除，避免覆盖 */
.row{display:flex;align-items:center;gap:10px}
.spacer{flex:1}
.muted{color:var(--muted);font-size:13px}
.toast{
  position:fixed;bottom:80px;left:50%;transform:translateX(-50%);
  background:var(--graphite);color:#F5F3EC;padding:10px 20px;border-radius:6px;
  font-size:13.5px;opacity:0;transition:opacity .2s;z-index:100;pointer-events:none;
}
@media(min-width:1024px){ .toast{bottom:28px} }
.toast.show{opacity:1}
img.result{max-width:100%;border-radius:6px;border:1px solid var(--line)}
.kv{font-size:13px;color:var(--muted);margin:4px 0}
.kv b{color:var(--ink)}
.live-dot{display:inline-block;width:7px;height:7px;border-radius:50%;background:var(--gold);margin-right:6px;animation:pulse 1.4s infinite}
@keyframes pulse{0%{opacity:1}50%{opacity:.3}100%{opacity:1}}
.paybox{text-align:center;padding:22px}
.paybox img{width:220px;height:220px}
.previewbox{width:560px;max-width:94vw;text-align:center;padding:22px}
.previewbox img{max-width:100%;max-height:60vh;border-radius:8px;border:1px solid var(--line)}
.previewbox .row{margin-top:16px;padding:0}

/* ---------- 管理后台：桌面侧栏形态 ---------- */
@media(min-width:1024px){
  body.admin .topbar{padding-left:214px}
  body.admin .wrap{max-width:none;margin-left:190px;padding:28px 32px 60px}
  body.admin .tabs{
    position:fixed;left:0;top:60px;bottom:0;width:190px;z-index:39;
    flex-direction:column;margin:0;border-radius:0;background:var(--graphite);
    padding:14px 0;border-top:none;
  }
  body.admin .tabs button{
    text-align:left;flex:none;padding:12px 22px;border-radius:0;
    color:#B9BCC7;font-size:13.5px;font-weight:500;
  }
  body.admin .tabs button.active{
    background:rgba(255,255,255,.07);color:#fff;box-shadow:none;
    border-left:3px solid var(--gold);border-radius:0;
  }
}

/* ---------- 点选式预设控件（图片比例等） ---------- */
.chips{display:flex;flex-wrap:wrap;gap:8px;margin:4px 0 10px}
.chip{
  font-size:12.5px;line-height:1.2;border:1px solid var(--border);border-radius:20px;
  padding:7px 15px;color:var(--ink-2);background:var(--card);cursor:pointer;
  user-select:none;transition:border-color .15s,color .15s,background .15s;
}
.chip:hover{border-color:var(--gold)}
.chip.on{border-color:var(--gold);color:var(--gold);background:var(--gold-soft);font-weight:600}

/* ---------- 工作流封面：使用 RunningHub 提供的示例图 ---------- */
.wf-cover.has-img{background-size:cover;background-position:50% 28%;background-repeat:no-repeat}
.wf-cover.has-img::after{
  content:'';position:absolute;inset:0;
  background:linear-gradient(180deg,rgba(22,24,29,.05) 40%,rgba(22,24,29,.42) 100%);
}
