/* ============================================================
   扶摇鲲基础组件样式（生产站自有副本·2026-10-18 与演示站解耦）
   依据：01§2.6 组件库全清单 / §2.2 排版 / §2.3 栅格 / §2.4 elevation
   命名：fk- 前缀 kebab-case
   ============================================================ */
*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{
  margin:0;font-family:var(--font-sans);font-size:var(--text-base);
  line-height:var(--lh-body);color:var(--ink-900);background:var(--page-bg);
  font-variant-numeric:tabular-nums;
}
h1,h2,h3,h4{margin:0 0 var(--sp-3);line-height:1.3;color:var(--ink-900)}
h1{font-size:var(--text-h1);font-weight:700}
h2{font-size:var(--text-h2);font-weight:700}
h3{font-size:var(--text-h3);font-weight:700}
h4{font-size:var(--text-h4);font-weight:700}
p{margin:0 0 var(--sp-3)}
a{color:var(--info);text-decoration:none}
a:hover{text-decoration:underline}
:focus-visible{outline:none;box-shadow:var(--focus);border-radius:var(--r-sm)}
img,svg{max-width:100%}
.muted{color:var(--ink-muted-strong)}
.xs{font-size:var(--text-xs)} .sm{font-size:var(--text-sm)} .lg{font-size:var(--text-lg)}
.tnum{font-variant-numeric:tabular-nums}
.kpi-num{font-size:30px;font-weight:700;line-height:1.15}
.kpi-grad{background:var(--grad-brand);-webkit-background-clip:text;background-clip:text;color:transparent}

/* ---------- DR-1006 设计改版试点批·纯追加辅助类（2026-10-06） ----------
   思路③ 文字主次三档色（深/灰/浅灰）＋粗细只留常规/加粗；
   思路④ 彩底白字三档；思路⑥ 小图标背景形状容器；思路⑦ 彩色强调边线。
   命名随既有 fk-* 体系；全部消费主题化令牌，暗色自动保值。 */
.fk-t-strong{color:var(--ink-900)}
.fk-t-mid{color:var(--ink-700)}
.fk-t-faint{color:var(--ink-muted-strong)} /* 浅灰档取 AA 达标的 --ink-muted-strong（#6E6E78≈4.7:1）；--n-500 仅装饰/大字用 */
.fk-w-reg{font-weight:400}
.fk-w-bold{font-weight:700}
.fk-on-accent{color:var(--on-accent)}
.fk-on-accent-dim{color:var(--on-accent-dim)}
.fk-on-accent-faint{color:var(--on-accent-faint)}
.fk-accent-left{border-left:3px solid var(--accent-line)} /* 思路⑦：面板/提示框彩色强调侧边 */
.fk-icon-plate{
  display:inline-flex;align-items:center;justify-content:center;flex:0 0 auto;
  width:40px;height:40px;border-radius:var(--r-md);background:var(--icon-plate);color:var(--ink-700);
} /* 思路⑥：16~24px 小图标不硬放大，套带底色形状容器 */
.fk-icon-plate svg,.fk-icon-plate img{width:20px;height:20px;stroke:currentColor}
.fk-icon-plate.sm{width:32px;height:32px;border-radius:var(--r-sm)}
.fk-icon-plate.sm svg,.fk-icon-plate.sm img{width:16px;height:16px}
.fk-icon-plate.teal{background:var(--teal-12);color:var(--teal-ink)}
[data-theme="dark"] .fk-icon-plate.teal{color:var(--ok)}
.fk-icon-plate.violet{background:var(--violet-12);color:var(--c-violet)}

/* ---------- A. 布局与导航 ---------- */
#fk-app,.fk-app{display:flex;min-height:100vh}
.fk-sidenav{
  width:var(--fk-nav-w);flex:0 0 var(--fk-nav-w);background:var(--n-0);border-right:1px solid var(--n-100);
  padding:var(--sp-4) var(--sp-3);position:sticky;top:0;height:100vh;overflow:auto;
  transition:width var(--dur-2) var(--ease),flex-basis var(--dur-2) var(--ease);
}
.fk-sidenav .brand{display:flex;align-items:center;gap:var(--sp-2);font-weight:700;margin-bottom:var(--sp-5)}
.fk-sidenav .brand img{width:28px;height:28px}
/* 短入口层（2026-09-22）：侧栏品牌位改为回工作台短入口的链接，颜色沿用文字色不套全局链接蓝 */
.fk-sidenav a.brand{color:inherit}
.fk-nav-group{font-size:var(--text-xs);color:var(--ink-muted-strong);margin:var(--sp-4) 0 var(--sp-2);text-transform:none}
.fk-nav-item{
  display:flex;align-items:center;gap:var(--sp-2);padding:var(--sp-2) var(--sp-3);
  border-radius:var(--r-sm);color:var(--ink-700);font-size:var(--text-base);
  border-left:3px solid transparent;margin-bottom:2px;min-height:32px;
}
.fk-nav-item:hover{background:var(--n-100);text-decoration:none}
.fk-nav-item.on{border-left-color:var(--c-cyan);background:var(--teal-12);color:var(--ink-900);font-weight:700}
.fk-nav-item svg{width:16px;height:16px;stroke:currentColor;flex:0 0 16px}
.fk-main{flex:1;min-width:0;display:flex;flex-direction:column}
.fk-topbar{
  height:56px;display:flex;align-items:center;gap:var(--sp-3);padding:0 var(--sp-4);
  background:var(--n-0);border-bottom:1px solid var(--n-100);position:sticky;top:0;z-index:var(--z-nav);
}
.fk-topbar .spacer{flex:1}
.spacer{flex:1 1 auto;min-width:8px}
.fk-content{max-width:1280px;width:100%;margin:0 auto;padding:var(--sp-4)}
.fk-pageheader{display:flex;align-items:flex-end;justify-content:space-between;gap:var(--sp-3);margin-bottom:var(--sp-3)}
.fk-pageheader .desc{color:var(--ink-muted-strong);font-size:var(--text-sm);margin:0}
.fk-concl{
  border-radius:var(--r-md);padding:var(--sp-3) var(--sp-4);font-size:var(--text-lg);
  margin-bottom:var(--sp-4);border:none;border-left:3px solid var(--accent-line); /* DR-1006 思路②⑦：去全周框，改彩色强调侧边线 */
}
.fk-concl.info{background:var(--teal-12);border-left-color:var(--info);color:var(--ink-900)}
.fk-concl.warn{background:rgba(255,176,32,.12);border-left-color:var(--warn)}
.fk-concl.ok{background:var(--teal-12);border-left-color:var(--ok)}
.fk-tabs{display:flex;gap:var(--sp-1);border-bottom:1px solid var(--n-100);margin-bottom:var(--sp-4);flex-wrap:wrap}
.fk-tab{
  padding:var(--sp-2) var(--sp-3);border:none;background:none;cursor:pointer;
  font-size:var(--text-base);color:var(--ink-700);border-bottom:2px solid transparent;min-height:44px;
}
.fk-tab.on{color:var(--ink-900);font-weight:700;border-bottom-color:var(--c-cyan)}
.fk-tab:disabled{color:var(--n-300);cursor:not-allowed}

/* ---------- 卡片与栅格 ---------- */
.fk-card{
  background:var(--card-bg);border:none;border-radius:var(--r-md); /* DR-1006 思路②：卡去框，靠底色＋下偏阴影分层 */
  box-shadow:var(--shadow-card);padding:var(--sp-4);
}
.fk-card.flat{box-shadow:none;background:var(--card-bg-flat)} /* DR-1006 思路②：无框无影层改底色分隔 */
.fk-card.hoverable{cursor:pointer;transition:transform var(--dur-1) var(--ease),box-shadow var(--dur-1) var(--ease)}
.fk-card.hoverable:hover{transform:translateY(-1px);box-shadow:var(--shadow-pop)}
.fk-grid{display:grid;gap:var(--sp-4)}
/* FK84 批（2026-09-26）：栅格轨道由 1fr 改 minmax(0,1fr)——1fr 等价 minmax(auto,1fr)，
   auto 最小值＝网格项 min-content，凡卡内含无断点长串（如真源 note 尾部溯源串）即把轨道顶宽破版。
   改后 min 归零，内容不再决定轨道宽度（内容超出由卡内自身 overflow／断行处理）。全站原子升版 fk83→fk84。 */
.fk-grid.c4{grid-template-columns:repeat(4,minmax(0,1fr))}
.fk-grid.c3{grid-template-columns:repeat(3,minmax(0,1fr))}
.fk-grid.c2{grid-template-columns:repeat(2,minmax(0,1fr))}
@media(max-width:1439px){.fk-grid.c4{grid-template-columns:repeat(2,minmax(0,1fr))}.fk-grid.c3{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:1023px){.fk-grid.c4,.fk-grid.c3,.fk-grid.c2{grid-template-columns:minmax(0,1fr)}}

/* ---------- B. 数据展示 ---------- */
.fk-kpi{position:relative}
.fk-kpi .label{font-size:var(--text-sm);color:var(--ink-muted-strong);display:flex;align-items:center;gap:var(--sp-1)}
.fk-kpi .value{margin:var(--sp-1) 0}
.fk-kpi .trend{font-size:var(--text-xs)}
.fk-kpi .trend.up{color:var(--ok)} .fk-kpi .trend.down{color:var(--err)} .fk-kpi .trend.flat{color:var(--n-500)}
.fk-kpi .dot{position:absolute;top:var(--sp-3);right:var(--sp-3);width:8px;height:8px;border-radius:50%;background:var(--c-coral)}
.fk-calib{font-size:var(--text-xs);color:var(--ink-muted-strong);margin-top:var(--sp-2)}
.fk-gauge{display:flex;flex-direction:column;align-items:center;gap:var(--sp-2)}
.fk-gauge .center-num{font-size:32px;font-weight:700}
.fk-badge{
  display:inline-flex;align-items:center;gap:var(--sp-1);font-size:var(--text-xs);
  padding:2px var(--sp-2);border-radius:var(--r-pill);font-weight:700;white-space:nowrap;
}
.fk-badge.teal{background:var(--teal-12);color:var(--teal-ink)}
[data-theme="dark"] .fk-badge.teal{color:var(--ok)}
.fk-badge.violet{background:var(--violet-12);color:var(--c-violet)}
.fk-badge.warn{background:rgba(255,176,32,.15);color:var(--warn-deep)}
[data-theme="dark"] .fk-badge.warn{color:var(--warn)}
.fk-badge.red{background:var(--err-12);color:var(--err)}
.fk-badge.neutral{background:var(--n-100);color:var(--ink-700)}
.fk-evidence{font-size:var(--text-xs);padding:2px var(--sp-2);border-radius:var(--r-sm);font-weight:700;display:inline-block}
.fk-evidence.e0{background:rgba(154,154,165,.15);color:var(--ink-muted-strong);border:1px dashed var(--n-300)}
.fk-evidence.e1,.fk-evidence.e2{background:var(--n-100);color:var(--ink-700)}
.fk-evidence.e3{background:var(--teal-12);color:var(--teal-ink)}
.fk-evidence.e4,.fk-evidence.e5{background:var(--violet-12);color:var(--c-violet)}
.fk-progress{height:8px;border-radius:var(--r-pill);background:var(--n-100);overflow:hidden}
.fk-progress>i{display:block;height:100%;background:var(--grad-brand);border-radius:var(--r-pill);transition:width var(--dur-2) var(--ease)}
.fk-progress.warn>i{background:var(--warn)}
.fk-progress.mini{height:6px}
.fk-table-wrap{overflow-x:auto;border:none;border-radius:var(--r-md);background:var(--card-bg);box-shadow:var(--shadow-card)} /* DR-1006 思路②：表容器去外框（行分隔线保留，功能位） */
table.fk-table{width:100%;border-collapse:collapse;font-size:var(--text-base)}
.fk-table th{
  text-align:left;font-weight:700;color:var(--ink-700);font-size:var(--text-sm);
  padding:var(--sp-3) var(--sp-4);border-bottom:1px solid var(--card-line);white-space:nowrap;
}
.fk-table td{padding:var(--sp-3) var(--sp-4);border-bottom:1px solid var(--card-line);min-height:44px}
.fk-table tr:last-child td{border-bottom:none}
.fk-table td.num,.fk-table th.num{text-align:right;font-variant-numeric:tabular-nums}
.fk-table tr.top{border-left:3px solid var(--c-cyan)}
.fk-compare-row{display:grid;grid-template-columns:140px 1fr 64px;align-items:center;gap:var(--sp-3);margin-bottom:var(--sp-3)}
.fk-compare-row .bar{height:16px;border-radius:var(--r-sm);background:var(--n-300)}
.fk-compare-row.me .bar{background:var(--grad-brand)}
.fk-compare-row .val{text-align:right;font-weight:700;font-size:var(--text-sm)}

/* ---------- C. 表单与按钮 ---------- */
.fk-btn{
  display:inline-flex;align-items:center;justify-content:center;gap:var(--sp-2);
  font-size:var(--text-base);font-weight:700;border-radius:var(--r-sm);cursor:pointer;
  padding:var(--sp-2) var(--sp-4);min-height:40px;border:1px solid transparent;
  transition:all var(--dur-1) var(--ease);text-decoration:none;font-family:inherit;
}
.fk-btn:hover{text-decoration:none}
.fk-btn.primary{background:var(--grad-brand);color:var(--surface);box-shadow:var(--shadow-cta)} /* DR-1006 思路⑤：主按钮下偏投影 */
.fk-btn.primary:hover{filter:brightness(1.06)}
.fk-btn.secondary{background:transparent;border-color:var(--n-300);color:var(--ink-900)}
.fk-btn.ghost{background:transparent;color:var(--info)}
/* DR-1006 思路①：不常用操作＝文字链接态（无底无边框，下划线；触控位仍走 .fk-btn 基座 ≥40/44px） */
.fk-btn.link{background:transparent;border-color:transparent;color:var(--info);font-weight:400;padding:var(--sp-2) var(--sp-3);text-decoration:underline;text-underline-offset:3px}
.fk-btn.link:hover{filter:brightness(.92);text-decoration:underline}
.fk-btn.danger{background:var(--err);color:var(--surface)}
.fk-btn:disabled,.fk-btn.disabled{opacity:.5;cursor:not-allowed;pointer-events:none}
/* DR-1006 v0.2 批α（17:15 批复）：全触点回弹＋主钮 :active 阴影收一档（P-J4 一行级速赢） */
.fk-btn:active{transform:scale(.97)}
.fk-btn.primary:active{box-shadow:0 1px 2px rgba(11,27,51,.16)}
.fk-btn .spin{width:14px;height:14px;border:2px solid rgba(255,255,255,.4);border-top-color:var(--surface);border-radius:50%;animation:fk-spin .8s linear infinite}
/* 162 批2·消费收编：行内等待自旋点（email-auth 等表单态 .fk-spin 消费者；复用既有 fk-spin 关键帧，零新动画体系） */
.fk-spin{display:inline-block;animation:fk-spin .8s linear infinite}
@keyframes fk-spin{to{transform:rotate(360deg)}}
.fk-field{margin-bottom:var(--sp-4)}
.fk-field label{display:block;font-size:var(--text-sm);font-weight:700;margin-bottom:var(--sp-1)}
.fk-field .req{color:var(--err)}
.fk-field input,.fk-field select,.fk-field textarea{
  width:100%;padding:var(--sp-2) var(--sp-3);font-size:var(--text-base);font-family:inherit;
  border:1px solid var(--n-300);border-radius:var(--r-sm);background:var(--n-0);color:var(--ink-900);min-height:40px;
}
.fk-field input:focus,.fk-field select:focus,.fk-field textarea:focus{border-color:var(--info);box-shadow:var(--focus);outline:none}
.fk-field .err-text{color:var(--err);font-size:var(--text-xs);margin-top:var(--sp-1)}
.fk-pills{display:flex;gap:var(--sp-2);flex-wrap:wrap}
.fk-pill{
  padding:var(--sp-1) var(--sp-3);border-radius:var(--r-pill);border:1px solid var(--n-300);
  background:var(--n-0);color:var(--ink-700);cursor:pointer;font-size:var(--text-sm);min-height:32px;font-family:inherit;
}
.fk-pill.on{background:var(--teal-12);border-color:var(--c-cyan);color:var(--ink-900);font-weight:700}
.fk-pill:disabled{opacity:.5;cursor:not-allowed}

/* ---------- D. 反馈与状态 ---------- */
.fk-skel{
  background:var(--skel);background-size:200% 100%;border-radius:var(--r-sm);
  animation:fk-shimmer 1.2s linear infinite;min-height:16px;
}
@keyframes fk-shimmer{from{background-position:200% 0}to{background-position:-200% 0}}
@media(prefers-reduced-motion:reduce){.fk-skel{animation:none}}
.fk-empty,.fk-error{
  text-align:center;padding:var(--sp-6) var(--sp-4);color:var(--ink-muted-strong);
}
.fk-empty .icon,.fk-error .icon{font-size:32px;margin-bottom:var(--sp-2)}
.fk-toast-wrap{position:fixed;top:var(--sp-4);right:var(--sp-4);z-index:var(--z-toast);display:flex;flex-direction:column;gap:var(--sp-2)}
.fk-toast{
  background:var(--ink-900);color:var(--n-0);padding:var(--sp-3) var(--sp-4);border-radius:var(--r-md);
  box-shadow:var(--shadow-pop);font-size:var(--text-sm);min-width:240px;
}
.fk-toast.ok{background:var(--ok)} .fk-toast.warn{background:var(--warn-deep)} .fk-toast.err{background:var(--err)}
.fk-drawer-mask{position:fixed;inset:0;background:rgba(11,27,51,.45);z-index:var(--z-drawer)}
.fk-drawer{
  position:fixed;top:0;right:0;bottom:0;width:min(420px,100vw);background:var(--n-0);z-index:calc(var(--z-drawer) + 1);
  box-shadow:var(--shadow-pop);padding:var(--sp-4);overflow:auto;animation:fk-slidein var(--dur-2) var(--ease);
}
@keyframes fk-slidein{from{transform:translateX(40px);opacity:.4}to{transform:none;opacity:1}}
.fk-modal-mask{position:fixed;inset:0;background:rgba(11,27,51,.5);z-index:var(--z-modal);display:flex;align-items:center;justify-content:center;padding:var(--sp-4)}
.fk-modal{background:var(--n-0);border-radius:var(--r-lg);box-shadow:var(--shadow-elev);padding:var(--sp-5);max-width:420px;width:100%}
.fk-inline-alert{
  display:none;border-radius:var(--r-sm);padding:var(--sp-3);font-size:var(--text-sm);
  background:rgba(240,68,82,.1);color:var(--err);border:1px solid rgba(240,68,82,.3);margin-top:var(--sp-3);
}
.fk-inline-alert.show{display:block}

/* ---------- E. 业务复合 ---------- */
.fk-step-rail{display:flex;gap:var(--sp-1);flex-wrap:wrap;margin-bottom:var(--sp-4)}
.fk-step{
  font-size:var(--text-xs);padding:var(--sp-1) var(--sp-2);border-radius:var(--r-pill);
  background:var(--n-100);color:var(--ink-700);white-space:nowrap;
}
.fk-step.done{background:var(--teal-12);color:var(--teal-ink)}
[data-theme="dark"] .fk-step.done{color:var(--ok)}
.fk-step.cur{background:var(--grad-brand);color:var(--surface);font-weight:700}
.fk-kanban{display:grid;grid-template-columns:repeat(4,minmax(200px,1fr));gap:var(--sp-3);overflow-x:auto}
.fk-kanban-col{background:var(--n-100);border-radius:var(--r-md);padding:var(--sp-3);min-width:200px}
[data-theme="dark"] .fk-kanban-col{background:rgba(255,255,255,.04)}
.fk-kanban-col h4{font-size:var(--text-sm);margin-bottom:var(--sp-3);display:flex;justify-content:space-between}
.fk-sign-dots{display:inline-flex;gap:var(--sp-1);align-items:center}
.fk-sign-dots i{width:12px;height:12px;border-radius:50%;border:2px solid var(--n-300);display:inline-block}
.fk-sign-dots i.done{background:var(--ok);border-color:var(--ok)}
.fk-evi-triplet{display:inline-flex;gap:var(--sp-2);font-size:var(--text-xs)}
.fk-evi-triplet span{display:inline-flex;align-items:center;gap:2px}
.fk-evi-triplet .yes{color:var(--ok)} .fk-evi-triplet .doing{color:var(--warn-deep)} .fk-evi-triplet .no{color:var(--n-500)}
.fk-dotnav{position:fixed;right:var(--sp-3);top:50%;transform:translateY(-50%);display:flex;flex-direction:column;gap:var(--sp-2);z-index:var(--z-nav)}
.fk-dotnav a{width:10px;height:10px;border-radius:50%;background:var(--n-300);display:block}
.fk-dotnav a.on{background:var(--c-cyan);transform:scale(1.3)}
.fk-demo-badge{
  position:fixed;bottom:var(--sp-3);left:var(--sp-3);z-index:var(--z-toast);
  background:var(--c-deep);color:var(--surface);font-size:var(--text-xs);padding:var(--sp-1) var(--sp-3);
  border-radius:var(--r-pill);opacity:.92;
  pointer-events:none; /* N626：纯展示水印不参与命中——杜绝悬浮胶囊吃掉下层交互位的点击 */
}

/* ---------- 营销页 ---------- */
.fk-mkt-topbar{
  display:flex;align-items:center;gap:var(--sp-4);padding:var(--sp-3) var(--sp-5);
  max-width:1280px;margin:0 auto;
}
.fk-hero{
  background:var(--c-deep);color:var(--surface);padding:var(--sp-6) var(--sp-4);
  text-align:center;position:relative;overflow:hidden;
}
.fk-hero h1{color:var(--surface);margin-bottom:var(--sp-3)}
.fk-hero .sub{font-size:var(--text-lg);color:var(--on-accent-dim);margin-bottom:var(--sp-5)} /* DR-1006 思路④：深底次级文字走彩底白字令牌（计算值同 rgba(255,255,255,.75)，零回归） */
.fk-hero .cta-row{display:flex;gap:var(--sp-3);justify-content:center;flex-wrap:wrap}
.fk-hero .arc{position:absolute;pointer-events:none;opacity:.25}
.fk-band{max-width:1080px;margin:0 auto;padding:var(--sp-6) var(--sp-4)}
.fk-flow{display:flex;gap:var(--sp-2);justify-content:center;flex-wrap:wrap;align-items:center}
.fk-flow .node{background:var(--n-100);border:none;border-radius:var(--r-pill);padding:var(--sp-2) var(--sp-4);font-weight:700;font-size:var(--text-sm)} /* DR-1006 思路②③：去框改底色；粗细收敛 700 */
.fk-flow .arrow{color:var(--n-500)}
.fk-footer{border-top:1px solid var(--n-100);padding:var(--sp-5);text-align:center;color:var(--ink-muted-strong);font-size:var(--text-xs)}

/* ---------- 响应式（01§6.1；T-67：中宽窗 768-1023 改分流布局，不再遮挡） ----------
   N626（2026-09-19 京研社手机实测）：旧 ≤767px 两块（图标窄轨＋内容收紧）已下沉至文末
   N626 统一块（断点改 ≤768px；窄轨方案退役——仍挤压主内容）；本处不再保留规则体。 */

/* ---------- T-20260903-79 侧栏第四轮（京研社反馈）：开关归侧栏头部左区＋侧栏全程文档流占位 ----------
   范式对齐 Ant Design Pro / Arco 布局：展开=200px（--fk-nav-w）／收起=60px 图标窄轨（--fk-nav-rail-w）；
   .fk-main flex:1+min-width:0 随侧栏宽自动让位，transition 0.2s 平滑；任何视口展开态不遮挡内容。 */
:root{--fk-nav-w:200px;--fk-nav-rail-w:60px}
.fk-sidenav{display:flex;flex-direction:column;position:sticky}
.fk-side-head{display:flex;align-items:center;justify-content:space-between;gap:var(--sp-2);margin-bottom:var(--sp-5)}
.fk-side-head .brand{margin-bottom:0}
.fk-nav-collapse{
  display:inline-flex;align-items:center;justify-content:center;min-width:32px;min-height:32px;
  background:none;border:1px solid var(--n-300);border-radius:var(--r-sm);cursor:pointer;color:var(--ink-700);
}
.fk-nav-collapse:hover{background:var(--n-100)}
html.nav-collapsed .fk-sidenav{width:var(--fk-nav-rail-w);flex:0 0 var(--fk-nav-rail-w);padding:var(--sp-3) var(--sp-2)}
html.nav-collapsed .fk-side-head{flex-direction:column;align-items:center;gap:var(--sp-3)}
html.nav-collapsed .fk-sidenav .brand{justify-content:center}
html.nav-collapsed .fk-sidenav .brand span,
html.nav-collapsed .fk-nav-group,
html.nav-collapsed .fk-nav-item span{display:none}
html.nav-collapsed .fk-nav-item{justify-content:center;padding-left:0;padding-right:0}

/* ---------- T-20260903-67 侧栏根修：导航区独立滚动（收起钮不再被滚走）＋收起钮常驻顶栏 ---------- */
.fk-sidenav{overflow:hidden}
.fk-nav-scroll{overflow:auto;flex:1;min-height:0}

/* ---------- N626 响应式统一块（≤768px；2026-09-19 京研社手机实测反馈五页＋壳） ----------
   A 侧栏→顶部横滑导航条（纯 CSS·零 JS·全入口可达；T-20260903-79 图标窄轨退役）
   A 主内容全宽＋卡片/栅格留白收紧＋底部呼吸位（给悬浮演示胶囊留位，零遮挡交互位）
   B 结果可见性：结论条字号可读＋触达区 ≥44px（滚动逻辑在页 JS reveal/say）
   C 输入框可见性：边框/底色/focus 态（!important 压过页内联 var(--n-200) 旧写法）
   E 页签统一（email-auth 三页签同形）＋标签孤字断行收口
   N-2026-09-25-H5MOBILE：断点 768→1023 上探（本批）。理由＝768-1023 区间（平板／窄窗／分屏）仍走桌面 200px 侧栏，
   而栅格已在 ≤1023 折为单列 ⇒ 侧栏挤窄主内容、表格与顶栏溢出；上探后该区间同享 H5 壳，
   与既有 .fk-grid ≤1023 单列口径对齐。**≥1024px 渲染逐字节不变**（本块全部规则仅在 ≤1023px 生效）。
   F 段为本批追加（顶栏换行／身份位收窄／表格兜底／toast 不溢出），详见块内注释。 */
@media(max-width:1023px){
  /* A. 侧栏 → 顶部横滑导航条 */
  #fk-app,.fk-app{flex-direction:column}
  .fk-sidenav{
    width:100%;flex:0 0 auto;height:auto;position:static;overflow:visible;
    display:flex;flex-direction:row;align-items:center;gap:var(--sp-2);padding:0;
    border-right:none;border-bottom:1px solid var(--n-100);
  }
  .fk-side-head{flex:0 0 auto;flex-direction:row;margin-bottom:0;padding:var(--sp-2) var(--sp-1) var(--sp-1) var(--sp-3)}
  .fk-sidenav .brand{margin-bottom:0}
  .fk-nav-collapse{display:none}
  .fk-nav-scroll{
    display:flex;flex:1 1 auto;min-width:0;overflow-x:auto;overflow-y:hidden;
    -webkit-overflow-scrolling:touch;scrollbar-width:none;padding:var(--sp-1) var(--sp-2) 0;
  }
  .fk-nav-scroll::-webkit-scrollbar{display:none}
  .fk-nav-group{display:none}
  .fk-nav-item{
    flex:0 0 auto;white-space:nowrap;justify-content:flex-start;margin-bottom:0;
    border-left:none;border-bottom:2px solid transparent;border-radius:var(--r-sm) var(--r-sm) 0 0;
    padding:var(--sp-2) var(--sp-3);min-height:44px;
  }
  .fk-nav-item.on{border-bottom-color:var(--c-cyan)}
  html.nav-collapsed .fk-sidenav{width:100%;flex:0 0 auto;padding:0}
  html.nav-collapsed .fk-side-head{flex-direction:row;align-items:center;gap:var(--sp-2)}
  html.nav-collapsed .fk-sidenav .brand{justify-content:flex-start}
  html.nav-collapsed .fk-sidenav .brand span,
  html.nav-collapsed .fk-nav-item span{display:inline}
  html.nav-collapsed .fk-nav-item{justify-content:flex-start;padding-left:var(--sp-3);padding-right:var(--sp-3)}
  .fk-dotnav{display:none}

  /* A. 主内容全宽＋留白收紧＋底部呼吸 */
  .fk-content{padding:var(--sp-3);padding-bottom:calc(64px + env(safe-area-inset-bottom,0px))}
  .fk-pageheader{flex-direction:column;align-items:flex-start}
  /* h1/h2 阶梯已移入 tokens.css 移动断点（单一真源；本处不再写双份，防两处叠加把 h1 压到 24px） */
  .fk-kanban{grid-template-columns:repeat(4,minmax(200px,1fr))}
  .fk-card{padding:var(--sp-3)}
  .fk-grid{gap:var(--sp-3)}

  /* B. 结果可见性：结论条可读＋触达区 ≥44px */
  .fk-concl.xs{font-size:var(--text-base)}
  .fk-btn{min-height:44px!important}
  .fk-pill{min-height:44px}

  /* C. 输入框可见性：边框/底色/focus 态（含压过页内联 min-height:38px 旧写法） */
  .fk-card input:not([type=checkbox]):not([type=radio]):not([type=range]),
  .fk-card select,.fk-card textarea{
    border:1px solid var(--n-300)!important;background:var(--n-0)!important;min-height:44px!important;
  }
  .fk-card input:not([type=checkbox]):not([type=radio]):not([type=range]):focus,
  .fk-card select:focus,.fk-card textarea:focus{
    border-color:var(--info)!important;box-shadow:var(--focus)!important;outline:none!important;
  }

  /* E. 页签统一：三页签同形等宽胶囊（激活=品牌渐变，未激活=中性底），不再「一凸两平」 */
  .fkea-tabs .fk-btn{flex:1 1 0;min-width:0;background:var(--n-100);color:var(--ink-700);border:1px solid var(--n-300);font-weight:700}
  .fkea-tabs .fk-btn.primary{background:var(--grad-brand);color:var(--surface);border-color:transparent}
  .fkea-tabs .fk-btn.ghost{background:var(--n-100);color:var(--ink-700)}

  /* E. 标签断行：孤字收口（balance 平衡行宽；全宽布局后多数标签单行即容下） */
  .fk-card label.xs{text-wrap:balance}

  /* ==== F. H5-MOBILE 批追加（2026-09-25）==== */
  /* F1 顶栏：原 height:56px 单行，375px 下「标题＋身份位＋两个按钮」必溢出；改可换行两行制 */
  .fk-topbar{height:auto;min-height:56px;flex-wrap:wrap;padding:var(--sp-2) var(--sp-3);gap:var(--sp-2)}
  .fk-topbar>strong{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
  /* F2 身份位：窄屏只留徽标＋动作，长邮箱不再撑破（邮箱仍在 [title] 与登录页可见，不丢身份） */
  #fk-top-identity{display:inline-flex;align-items:center;gap:var(--sp-2);min-width:0;flex-wrap:wrap}
  #fk-top-identity span:not(.fk-badge){display:none}
  /* F3 表格宽页兜底：宽表自身成横滚盒（免改页内结构；仍走表格布局，列对齐不变）
     实证：generate-station 的 .fkwk-table 行宽 410>360（375px 视口）⇒ 整页横溢；本规则后归零 */
  .fk-content table{display:block;overflow-x:auto;-webkit-overflow-scrolling:touch;max-width:100%}
  /* F3b 表单控件不撑破容器：长选项 label 的 <select> 按最长项定宽（console 角色选择器实测 427px）
     兜底口径=max-width:100%；不动页内既有 width，也不改选项文案 */
  select,input,textarea{max-width:100%}
  /* F4 toast 不溢出视口（原 min-width:240px 在 375px 贴边） */
  .fk-toast{min-width:0;max-width:calc(100vw - 32px)}
  /* F5 对比条窄列不挤孤字 */
  .fk-compare-row{grid-template-columns:minmax(88px,auto) 1fr 56px}
  /* F6 看板列横滚阻尼（4 列 × 200px 在小屏必横滚，加接近吸附避免滑到卡缝里） */
  .fk-kanban{scroll-snap-type:x proximity}
  .fk-kanban-col{scroll-snap-align:start}
}

/* ============================================================
   FKAO · 自动操作授权面（P1 产品位批 · 2026-09-22）
   ------------------------------------------------------------
   纯追加块：本块**不改任何既有选择器**，只新增 .fkao-* 前缀类，
   供「授权台账卡 / 逐次授权弹层 / 执行留痕卡 / 独立浏览器环境卡」四处渲染。
   状态灯口径与 .fkma-lamp 同色系（绿=有效／黄=临期／灰=过期·未建立／红=已撤回·已拒绝）。
   ============================================================ */
.fkao-grid{display:grid;gap:14px;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));margin-top:14px}
.fkao-lamp{display:inline-block;width:10px;height:10px;border-radius:50%;margin-right:4px}
.fkao-lamp.ok{background:var(--ok,#16a34a)}
.fkao-lamp.warn{background:var(--warn,#ffb020)}
.fkao-lamp.red{background:var(--err,#f04452)}
.fkao-lamp.neutral{background:var(--n-300,#c9c9d1)}
.fkao-banner{margin-top:12px}
.fkao-flow{display:flex;flex-wrap:wrap;align-items:center;gap:6px;margin:8px 0}
.fkao-step{font-size:11px;padding:2px 8px;border-radius:999px;background:var(--n-100,#ececf1);color:var(--ink-muted-strong,#6b6b76);white-space:nowrap}
.fkao-step.on{background:var(--teal-12,rgba(0,196,143,.12));color:var(--teal-ink)}
.fkao-step.cur{outline:1px solid rgba(59,164,250,.45);font-weight:700}
.fkao-step.red{background:var(--err-12);color:var(--err,#f04452)}
.fkao-arrow{color:var(--n-300,#c9c9d1);font-style:normal}
.fkao-actions{margin:8px 0 0;padding-left:18px;display:grid;gap:2px}
.fkao-actions li{color:var(--ink-muted-strong,#6b6b76)}
.fkao-empty{margin-top:12px}
.fkao-grant,.fkao-run,.fkao-profile{margin-bottom:0}

/* ============================================================
   T-20261002-P1（京研社令「全面双通道走查 → 优化」）：窄屏顶栏压缩 ＋ 导航渐隐提示
   D4：手机顶栏原为四行（导航条／标题／身份行／?◐行）≈200px ⇒ 收成一行「标题＋身份徽标＋⋯」，
       改密码/退出/主题/术语 收进「⋯」菜单（FK.openTopMenu）；桌面 ≥1024px 渲染逐字节不变。
   D5：导航条横滑可滚但右侧"硬切"无提示 ⇒ 加右侧渐隐；并吸顶单行。
   ============================================================ */
.fk-top-more{display:none}
.fk-top-actions{display:inline-flex;align-items:center;gap:var(--sp-2)}
@media(max-width:1023px){
  .fk-topbar{flex-wrap:nowrap;position:static;height:auto;min-height:52px;padding:var(--sp-2) var(--sp-3);gap:var(--sp-2)}
  .fk-topbar>strong{flex:1 1 auto;min-width:0}
  .fk-topbar .spacer{display:none}
  .fk-top-actions{display:none}
  .fk-top-more{display:inline-flex;flex:0 0 auto}
  #fk-top-identity{flex:0 1 auto;flex-wrap:nowrap;overflow:hidden}
  #fk-top-identity .fk-id-action{display:none}
  .fk-sidenav{position:sticky;top:0;z-index:var(--z-nav);background:var(--n-0)}
  .fk-sidenav::after{content:'';position:absolute;right:0;top:0;bottom:0;width:28px;pointer-events:none;
    background:linear-gradient(to right,transparent,var(--n-0))}
}
/* ============================================================
   P3-1 吸顶步骤条（.fk-steprail）—— 长页页内主线导航（2026-10-02）
   用途：超长页（如「内容发布」202KB 六环节同页）把主线各步固化在吸顶条上，
         随时可跳、随时可知「身在几步」——不新增数据、不新增阈值。
   实现：仅复用页面既有锚点；顶距与滚动留白由页面 JS 按当前断点实测写入（CSS 不写死）。
   影响面：仅在启用该组件的页面生效，其余页零影响（全部为新增选择器）。
   ============================================================ */
.fk-steprail{
  display:flex;align-items:center;gap:4px;flex-wrap:nowrap;overflow-x:auto;
  background:var(--n-0);border:1px solid var(--n-100);border-radius:var(--r-pill);
  padding:6px;margin:0 0 var(--sp-3);box-shadow:var(--shadow-card);
  position:sticky;top:56px;z-index:calc(var(--z-nav) - 10);
  -webkit-overflow-scrolling:touch;scrollbar-width:none;
}
.fk-steprail::-webkit-scrollbar{display:none}
.fk-steprail>a{
  flex:0 0 auto;display:inline-flex;align-items:center;gap:6px;white-space:nowrap;
  padding:6px 12px;border-radius:var(--r-pill);font-size:var(--text-sm);
  color:var(--ink-muted-strong);text-decoration:none;min-height:36px;
}
.fk-steprail>a:hover{background:var(--n-100);text-decoration:none}
.fk-steprail>a.on{background:var(--teal-12);color:var(--ink-900);font-weight:700}
.fk-steprail>a.done{color:var(--ink-700)}
.fk-steprail .fk-steprail-num{
  display:inline-flex;align-items:center;justify-content:center;
  width:18px;height:18px;border-radius:var(--r-pill);font-size:11px;
  background:var(--n-100);color:var(--ink-muted-strong);flex:0 0 18px;
}
.fk-steprail>a.on .fk-steprail-num{background:var(--c-cyan);color:var(--surface)}
.fk-steprail .fk-steprail-sep{width:1px;height:16px;background:var(--n-200);flex:0 0 auto;margin:0 2px}
@media(max-width:1023px){
  .fk-steprail{top:49px;padding:5px;margin-bottom:var(--sp-2)}
  .fk-steprail>a{padding:6px 10px}
}

/* ============================================================
   DR-1006 v0.2 批β·组件追加组（2026-10-06）
   依据：00_设计规范_v0.2 §5 ＋ 12 号件 §4.3。纪律：只追加不改既有行；
   全部消费令牌（零裸 hex）；暗色经令牌双值自动适配，组件层无需暗色覆写。
   ============================================================ */

/* ---- fk-select：tint 底无外框筛选器（44px 触控基座；收编页内联 select 的组件位） ---- */
.fk-select{
  appearance:none;-webkit-appearance:none;
  min-height:44px;padding:var(--sp-2) var(--sp-5) var(--sp-2) var(--sp-3);
  border:none;border-radius:var(--r-sm);color:var(--ink-900);
  background-color:var(--tint-1);cursor:pointer;font-family:inherit;font-size:var(--text-base);
  /* 下拉箭头＝两段合成的 ‹∨›（颜色走令牌，暗场自动换档）；background-color 与 image 分列声明防互盖 */
  background-image:linear-gradient(45deg,transparent 50%,var(--ink-700) 50%),linear-gradient(135deg,var(--ink-700) 50%,transparent 50%);
  background-position:calc(100% - 18px) calc(50% - 2px),calc(100% - 13px) calc(50% - 2px);
  background-size:5px 5px;background-repeat:no-repeat;
  transition:background-color var(--dur-1) var(--ease),box-shadow var(--dur-1) var(--ease);
}
.fk-select:hover{background-color:var(--tint-2)}
.fk-select:focus{outline:none;box-shadow:var(--focus)}
.fk-select:disabled{opacity:.5;cursor:not-allowed}

/* ---- fk-pager：统一分页（页码胶囊组；.gap=省略号；.more=加载更多形态，同组件双范式收编） ---- */
.fk-pager{display:flex;align-items:center;justify-content:center;gap:var(--sp-1);flex-wrap:wrap}
.fk-pager .pg{
  display:inline-flex;align-items:center;justify-content:center;margin:0;
  min-width:36px;min-height:40px;padding:0 var(--sp-2);border:none;border-radius:var(--r-sm);
  background:transparent;color:var(--ink-700);font-size:var(--text-sm);font-family:inherit;cursor:pointer;
  transition:background var(--dur-1) var(--ease),color var(--dur-1) var(--ease),transform var(--dur-1) var(--ease-spring);
}
.fk-pager .pg:hover{background:var(--tint-2);text-decoration:none}
.fk-pager .pg.on{background:var(--tint-3);color:var(--ink-900);font-weight:700}
.fk-pager .pg:disabled{opacity:.5;cursor:not-allowed;background:transparent}
.fk-pager .pg:active{transform:scale(.97)}
.fk-pager .gap{min-width:24px;text-align:center;color:var(--ink-muted-strong);font-size:var(--text-sm)}
.fk-pager .more{
  width:100%;min-height:44px;margin:0;border:none;border-radius:var(--r-pill);
  background:var(--tint-1);color:var(--ink-700);font-size:var(--text-base);font-weight:700;
  font-family:inherit;cursor:pointer;
  transition:background var(--dur-1) var(--ease),transform var(--dur-1) var(--ease-spring);
}
.fk-pager .more:hover{background:var(--tint-2)}
.fk-pager .more:active{transform:scale(.97)}
@media(max-width:1023px){.fk-pager .pg{min-height:44px}}

/* ---- fk-table 密度双档＋行反馈（默认档 12/16；comfort=原 16/24 留详情页；hover 走 tint-1；alert 行走 err-12） ---- */
table.fk-table th,table.fk-table td{padding:12px 16px}
table.fk-table.comfort th,table.fk-table.comfort td{padding:var(--sp-3) var(--sp-4)}
.fk-table tbody tr:hover{background:var(--tint-1)}
.fk-table tbody tr.alert{background:var(--err-12)}
.fk-table tbody tr.alert:hover{background:var(--err-12)} /* 告警行悬停不褪色：告警语义优先于 hover 反馈 */

/* ---- fk-empty--v2 空态三件套（插画位 64–96px＋主句 ink-700/16px＋唯一 CTA 位；与存量 .fk-empty 并存零干扰） ---- */
.fk-empty--v2{
  display:flex;flex-direction:column;align-items:center;text-align:center;
  padding:var(--sp-6) var(--sp-4);color:var(--ink-muted-strong);
}
.fk-empty--v2 .fig{
  display:inline-flex;align-items:center;justify-content:center;
  width:96px;height:96px;border-radius:var(--r-xl);background:var(--tint-1);color:var(--ink-muted-strong);
}
.fk-empty--v2 .fig svg,.fk-empty--v2 .fig img{width:64px;height:64px;stroke:currentColor}
.fk-empty--v2 .fig.brand{background:var(--teal-12);color:var(--accent-line)} /* 品牌档：暗场自动换提亮色（沿 --accent-line 双值） */
.fk-empty--v2 .title{margin:var(--sp-3) 0 0;font-size:var(--text-lg);font-weight:700;color:var(--ink-700)}
.fk-empty--v2 .sub{margin:var(--sp-1) 0 0;font-size:var(--text-sm);color:var(--ink-muted-strong);max-width:420px}
.fk-empty--v2 .cta{margin-top:var(--sp-4)} /* 唯一 CTA 位（建议 fk-btn secondary；文案由页面接线层出，本层零文案） */

/* ---- fk-badge.dot：状态点前缀（三套状态方言归一的 badge 内置形；颜色随徽标语义走 currentColor） ----
   间距适配：.fk-badge 基类已是 inline-flex＋gap:var(--sp-1)，圆点作 flex 首项由 gap 自然让位，无需 margin-right */
.fk-badge.dot::before{content:'';flex:0 0 8px;width:8px;height:8px;border-radius:50%;background:currentColor}

/* ---- 语义骨架轮廓（FK.skeleton(kind) 消费；纯结构零文案；shimmer 复用 --skel 渐变令牌） ---- */
@keyframes fk-skel-shimmer{from{background-position:200% 0}to{background-position:-200% 0}}
.fk-skel-kpi,.fk-skel-card,.fk-skel-table,.fk-skel-list{display:flex;flex-direction:column;gap:var(--sp-2);width:100%}
.fk-skel-bar{
  height:12px;border-radius:var(--r-pill);
  background:var(--skel);background-size:200% 100%;
  animation:fk-skel-shimmer 1.2s linear infinite;
}
.fk-skel-bar.h10{height:10px}
.fk-skel-bar.big{height:28px;border-radius:var(--r-sm)}
.fk-skel-bar.w32{width:32%} .fk-skel-bar.w38{width:38%} .fk-skel-bar.w45{width:45%}
.fk-skel-bar.w60{width:60%} .fk-skel-bar.w72{width:72%} .fk-skel-bar.w100{width:100%}
.fk-skel-bar.thumb{width:40px;height:40px;flex:0 0 40px;border-radius:var(--r-sm)}
.fk-skel-item{display:flex;align-items:center;gap:var(--sp-2)}
.fk-skel-lines{flex:1;min-width:0;display:flex;flex-direction:column;gap:var(--sp-1)}
@media(prefers-reduced-motion:reduce){.fk-skel-bar{animation:none}}

/* ============================================================
   DR-1006 v0.2 批γ·组件追加组（2026-10-06 京研社令 om_x100b63786b0324a0b1ba0c233d62af6「开γ」）
   依据：00_设计规范_v0.2 §5-7/9/10 ＋ 12 号件 §4.3-7/8。纪律：只追加不改既有行；
   全部消费既有 token；唯一例外裸 hex＝图表渐变 stop 定义（s1/s2/s3 及暗变体，
   暗值沿 --accent-line 暗档 #1ADBA8 家族与 β 批 --grad-stage 暗档同型提亮）。
   动效白名单仅两项：doing 呼吸（fk-ai-pulse）＋进度条过渡（--dur-3 内）。
   ============================================================ */

/* ---- 图表基座：渐变 stop 类系（FK.chart 的 JS 只挂类名不写色值——定义即真源在此） ---- */
.fk-chart-s1{stop-color:#06D6C8}
.fk-chart-s2{stop-color:#3BA4FA}
.fk-chart-s3{stop-color:#6E52F5}
.fk-chart-f1{stop-color:var(--chart-surface)}   /* 面积顶部＝令牌色阶，暗色自动换档 */
.fk-chart-f0{stop-color:transparent}             /* 面积底部＝透明（主题无关） */
[data-theme="dark"] .fk-chart-s1{stop-color:#1ADBA8}
[data-theme="dark"] .fk-chart-s2{stop-color:#5FB6FB}
[data-theme="dark"] .fk-chart-s3{stop-color:#7A60F6}
.fk-chart-spark{display:block;width:100%;height:40px}
.fk-chart-ring{display:block}
.fk-chart-bars{display:block;width:100%;height:auto}
.fk-ring-track{fill:none;stroke:var(--chart-grid);stroke-width:10}
.fk-ring-arc{fill:none;stroke-width:10;stroke-linecap:round}
.fk-ring-num{font-family:var(--font-sans);font-size:24px;font-weight:700;fill:var(--ink-900)}
.fk-bar-col{fill:var(--chart-surface)}
.fk-bars-base{stroke:var(--chart-grid);stroke-width:1;shape-rendering:crispEdges}
.fk-bars-labels{display:flex;margin-top:var(--sp-1)}
.fk-bars-labels span{flex:1 1 0;min-width:0;text-align:center;font-size:var(--text-xs);color:var(--ink-muted-strong);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.fk-chart-note{font-size:var(--text-xs);color:var(--ink-muted-strong)}

/* ---- fk-ai-stream：AI 过程思考流时间线（步骤行＝icon-plate sm 位＋标签位；三态＋步骤间连线） ----
   结构契约：.step 首子元素须为 .fk-icon-plate.sm（32px，连线左 15px 即其圆心）；
   .done 态隐藏步骤图标、以 CSS 勾替代（teal 家族，暗场自动提亮） */
@keyframes fk-ai-pulse{0%,100%{opacity:1}50%{opacity:.55}}
.fk-ai-stream{display:flex;flex-direction:column}
.fk-ai-stream .step{position:relative;display:flex;align-items:center;gap:var(--sp-2);padding:8px 0}
.fk-ai-stream .step + .step::before{content:'';position:absolute;left:15px;top:-8px;width:2px;height:16px;background:var(--tint-2);border-radius:1px}
.fk-ai-stream .label{font-size:var(--text-base);color:var(--ink-muted-strong)}
.fk-ai-stream .step.doing .label{color:var(--ink-900);font-weight:700}
.fk-ai-stream .step.done .label{color:var(--ink-700)}
.fk-ai-stream .step.doing .fk-icon-plate{background:var(--teal-12);color:var(--teal-ink);box-shadow:var(--glow-brand);animation:fk-ai-pulse 1.6s ease-in-out infinite}
[data-theme="dark"] .fk-ai-stream .step.doing .fk-icon-plate{color:var(--ok)}
.fk-ai-stream .step.done .fk-icon-plate{background:var(--teal-12);color:var(--teal-ink)}
[data-theme="dark"] .fk-ai-stream .step.done .fk-icon-plate{color:var(--ok)}
.fk-ai-stream .step.done .fk-icon-plate svg{display:none}
.fk-ai-stream .step.done .fk-icon-plate::after{content:'';width:9px;height:5px;border-left:2px solid currentColor;border-bottom:2px solid currentColor;transform:rotate(-45deg) translateY(-1px)}
@media(prefers-reduced-motion:reduce){.fk-ai-stream .step.doing .fk-icon-plate{animation:none}}

/* ---- fk-progress-narrative：生成进度叙事（阶段名＋百分比＋grad-stage 进度条＋中间产物缩略位） ----
   .fill 宽度经 --fk-p 自定义属性驱动（默认 0%；接线位设 --fk-p:62% 类变量即得过渡动画） */
.fk-progress-narrative{display:flex;flex-direction:column;gap:var(--sp-2)}
.fk-progress-narrative .head{display:flex;align-items:baseline;justify-content:space-between;gap:var(--sp-2)}
.fk-progress-narrative .stage{font-size:var(--text-base);font-weight:700;color:var(--ink-700)}
.fk-progress-narrative .pct{font-size:var(--text-sm);color:var(--ink-muted-strong);font-variant-numeric:tabular-nums}
.fk-progress-narrative .bar{height:4px;border-radius:var(--r-pill);background:var(--tint-1);overflow:hidden}
.fk-progress-narrative .fill{height:100%;border-radius:var(--r-pill);background:var(--grad-stage);width:var(--fk-p,0%);transition:width var(--dur-3) var(--ease)}
.fk-progress-narrative .thumbs{display:flex;gap:var(--sp-2);flex-wrap:wrap}
.fk-progress-narrative .thumb{width:48px;height:48px;border-radius:var(--r-sm);background:var(--tint-2);flex:0 0 48px;overflow:hidden}
.fk-progress-narrative .thumb svg{width:100%;height:100%;stroke:currentColor;color:var(--ink-muted-strong)}
.fk-progress-narrative .thumb img{display:block;width:100%;height:100%;object-fit:cover}

/* ============================================================
   DR-1006 v0.2 批δ·画廊卡片墙（2026-10-07 00:36 令 om_x100b636676b0aca8de7cba9e1de14b2）
   依据：00_设计规范_v0.2 §5-12（meshy gallery 模式：渐变封面占位＋状态徽标＋hover 浮起＋入场级联）
   纪律：只追加；全部消费既有令牌，零新增 hex；动效仅入场一次性（prefers-reduced-motion 全关）。
   ============================================================ */
.fk-gallery{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:var(--sp-4)}
.fk-gallery-card{display:flex;flex-direction:column;overflow:hidden;background:var(--card-bg-flat);border:none;border-radius:var(--r-card);box-shadow:var(--shadow-card);transition:transform var(--dur-2) var(--ease),box-shadow var(--dur-2) var(--ease);animation:fk-gallery-in var(--dur-3) var(--ease) both}
.fk-gallery-card:hover{transform:translateY(-2px);box-shadow:var(--shadow-cta)}
.fk-gallery-card:nth-child(2){animation-delay:var(--stagger-1)}
.fk-gallery-card:nth-child(3){animation-delay:var(--stagger-2)}
.fk-gallery-card:nth-child(4){animation-delay:var(--stagger-3)}
@keyframes fk-gallery-in{from{opacity:0;transform:translateY(4px)}to{opacity:1;transform:none}}
@media (prefers-reduced-motion:reduce){.fk-gallery-card{animation:none;transition:none}}
.fk-gallery-card .cover{min-height:72px;background:var(--grad-soft);display:flex;align-items:flex-end;gap:8px;padding:10px 12px}
.fk-gallery-card .cover .fk-icon-plate{background:var(--glass-bg-l);backdrop-filter:var(--glass-blur)}
[data-theme="dark"] .fk-gallery-card .cover .fk-icon-plate{background:var(--glass-bg-d)}
.fk-gallery-card .cover .fk-badge{margin-left:auto}
.fk-gallery-card .body{padding:12px;display:flex;flex-direction:column;gap:8px;flex:1;min-width:0}
.fk-gallery-card .title{font-weight:700;font-size:var(--text-sm);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.fk-gallery-card .meta{display:flex;gap:6px;align-items:center;flex-wrap:wrap}
.fk-gallery-card .fkcf-actions{display:flex;gap:8px;flex-wrap:wrap;margin-top:auto}

/* ============================================================
   DR-1006 v0.2 批δ·试点二·topic-studio 创作流水线（2026-10-07 00:36 令 om_x100b636676b0aca8de7cba9e1de14b2）
   依据：00_设计规范_v0.2 §5-7；10 号件 §6-1（左窄步骤栏/中央工作区；≥1280 思考流自然位由既有
   fk-ai-stream 自适应承担，零新结构——本块对该位零规则）。
   纪律：只追加；全令牌零新 hex（.on:hover 复用页内既有 rgba 字面）；当前步高亮纯 CSS
   :target＋:has()（零 JS，不支持 :has() 的浏览器优雅退化为无高亮、锚点仍可达）；触控 ≥44px；
   动效仅 hover 浮起与步骤高亮过渡（均 --dur-2 内）；prefers-reduced-motion 全关。
   ============================================================ */
.fkts-pipeline{display:grid;grid-template-columns:180px minmax(0,1fr);gap:var(--sp-4);align-items:start}
.fkts-steps{position:sticky;top:72px;display:flex;flex-direction:column;gap:8px}
.fkts-step{position:relative;display:flex;align-items:center;gap:10px;min-height:44px;padding:8px 10px;border-radius:var(--r-card);color:var(--ink-700);text-decoration:none;font-size:var(--text-sm);transition:background var(--dur-2) var(--ease),color var(--dur-2) var(--ease)}
.fkts-step:hover{background:var(--tint-1)}
.fkts-step-ico{width:28px;height:28px;flex:0 0 28px;display:flex;align-items:center;justify-content:center;border-radius:8px;background:var(--icon-plate);color:var(--ink-muted-strong);transition:background var(--dur-2) var(--ease),color var(--dur-2) var(--ease)}
.fkts-step-ico svg{width:16px;height:16px}
/* 步骤间连线：icon 圆心（10+14=24px）处 2px tint-2 竖线，只画在 flex gap 8px 内（不压任何步骤行） */
.fkts-step:not(:last-child)::after{content:"";position:absolute;left:23px;top:100%;height:8px;border-left:2px solid var(--tint-2)}
/* 当前步（:target 驱动；无 target 时缺省第一步）＝tint-2 圆角块＋品牌色图标 */
.fkts-pipeline:not(:has(:target)) .fkts-step[href="#fkts-scope"],
.fkts-pipeline:has(#fkts-scope:target) .fkts-step[href="#fkts-scope"],
.fkts-pipeline:has(#fkts-workbench:target) .fkts-step[href="#fkts-workbench"],
.fkts-pipeline:has(#fkts-gensec:target) .fkts-step[href="#fkts-gensec"],
.fkts-pipeline:has(#fkts-selfauth:target) .fkts-step[href="#fkts-selfauth"]{background:var(--tint-2);font-weight:700}
.fkts-pipeline:not(:has(:target)) .fkts-step[href="#fkts-scope"] .fkts-step-ico,
.fkts-pipeline:has(#fkts-scope:target) .fkts-step[href="#fkts-scope"] .fkts-step-ico,
.fkts-pipeline:has(#fkts-workbench:target) .fkts-step[href="#fkts-workbench"] .fkts-step-ico,
.fkts-pipeline:has(#fkts-gensec:target) .fkts-step[href="#fkts-gensec"] .fkts-step-ico,
.fkts-pipeline:has(#fkts-selfauth:target) .fkts-step[href="#fkts-selfauth"] .fkts-step-ico{background:var(--violet-12);color:var(--violet-deep)}
html:has(.fkts-pipeline){scroll-behavior:smooth}
.fkts-flow>section{scroll-margin-top:76px}
/* 2.1 三区推荐卡：grad-stage 2px 顶条＋hover 浮起（translateY(-2px)＋shadow-cta） */
#fkts-zones-sec .fkts-card{position:relative;overflow:hidden;transition:transform var(--dur-2) var(--ease),box-shadow var(--dur-2) var(--ease)}
#fkts-zones-sec .fkts-card::before{content:"";position:absolute;top:0;left:0;right:0;height:2px;background:var(--grad-stage)}
#fkts-zones-sec .fkts-card:hover{transform:translateY(-2px);box-shadow:var(--shadow-cta)}
#fkts-zones-sec .fkts-card.on:hover{box-shadow:0 0 0 2px rgba(124,92,255,.35),var(--shadow-cta)} /* 选中环与浮起并存：rgba 逐字复用页内 .fkts-card.on 既有字面，非新增色值 */
/* ≤1023px（与共享壳移动档同界）：步骤栏退化为横向 chip 条（可横滚），四 section 纵向堆叠照旧 */
@media (max-width:1023px){
  .fkts-pipeline{display:block}
  .fkts-steps{position:static;flex-direction:row;gap:8px;overflow-x:auto;padding:2px;margin-bottom:var(--sp-3);scrollbar-width:thin}
  .fkts-step{flex:0 0 auto;border-radius:999px;padding:6px 14px 6px 8px}
  .fkts-step:not(:last-child)::after{display:none}
  .fkts-step-txt{white-space:nowrap}
}
@media (prefers-reduced-motion:reduce){
  .fkts-step,.fkts-step-ico,#fkts-zones-sec .fkts-card{transition:none}
  html:has(.fkts-pipeline){scroll-behavior:auto}
}

/* ============================================================
   DR-1006 v0.2 批δ-2·A 组（2026-10-07 12:45 铺令）：控制台三页
   mission-control 五问章节头收敛（qHead 内联样式收编·批δ-2）
   ============================================================ */
.fka-qhead{display:flex;align-items:baseline;gap:10px;flex-wrap:wrap;margin:28px 0 12px}
.fka-qhead h3{margin:0}

/* ============================================================
   DR-1006 v0.2 批δ-2·B 组归并（2026-10-07 12:45 铺令·原 d2_css_B.css）
   ============================================================ */
/* ============================================================
   DR-1006 v0.2 批δ-2 · B 组（表格页组）片段 CSS
   ------------------------------------------------------------
   令源：京研社 2026-10-07 12:45「铺」；17 号 §冲突规避（.fkb- 前缀隔离）
   性质：本文件仅收编 B 组 12 页既有内联 style（布局/间距/结构），零色值零 hex，
        亮暗双主题天然中性；仅 .fkb-input 消费既有令牌 var(--n-200)。
   接线：B 组 12 页 head 内 <link>（v=fkb1）；主线复核后归并 components.css，
        归并后各页 link 行可移除（grep d2_css_B 一键定位）。
   覆盖页：tasks/inbox/monitoring/my-accounts/evidence/wechat-article/
        platform-accounts/top100/experiments/share-score/diag/diag-run
   （topic-studio 不消费本文件——FKTS 铁律只加 fk-select，零内联改动）
   ============================================================ */

/* ---- 通用间距（收编自各页内联 margin）---- */
.fkb-m0{margin:0}
.fkb-mb4{margin:0 0 4px}
.fkb-mb8{margin:0 0 8px}
.fkb-mb10{margin:0 0 10px}
.fkb-mt4{margin:4px 0 0}
.fkb-mt6{margin:6px 0 0}
.fkb-mt8{margin:8px 0 0}
.fkb-mt10mb4{margin:10px 0 4px}
.fkb-mt12z{margin:12px 0 0}
.fkb-top8{margin-top:8px}
.fkb-top10{margin-top:10px}
.fkb-top12{margin-top:12px}
.fkb-top14{margin-top:14px}
.fkb-top18{margin-top:18px}
.fkb-top24{margin-top:24px}
.fkb-top26{margin-top:26px}
.fkb-left8{margin-left:8px}
.fkb-left10{margin-left:10px}
.fkb-bottom12{margin-bottom:12px}
.fkb-bottom24{margin-bottom:24px}

/* ---- 段落头（收编 h2/h3/h4 内联 margin+font-size）---- */
.fkb-h2-20{margin:0;font-size:20px}
.fkb-h3-18{margin:0;font-size:18px}
.fkb-sect-gap1{margin:20px 0 10px}
.fkb-sect-gap2{margin:24px 0 10px}

/* ---- 结构行（收编 flex 内联）---- */
.fkb-row-between{display:flex;justify-content:space-between;align-items:center;gap:8px;flex-wrap:wrap}
.fkb-row-center{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.fkb-chips{display:flex;gap:6px;flex-wrap:wrap}
.fkb-filter-row{display:flex;gap:8px;align-items:center;flex-wrap:wrap;margin:10px 0}
.fkb-filter-row--flush{margin:0 0 10px}
.fkb-filter-row--tight{margin:0 0 8px}
.fkb-pager-row{display:flex;justify-content:space-between;align-items:center;margin-top:12px}
.fkb-more-wrap{margin-top:12px;text-align:center}

/* ---- 面与盒（收编 padding/width/height 内联）---- */
.fkb-pad12{padding:12px}
.fkb-pad14{padding:14px}
.fkb-pad16{padding:16px}
.fkb-card-strip{padding:12px 16px}
.fkb-h72{height:72px}
.fkb-h80{height:80px}
.fkb-w104{width:104px}

/* ---- 杂项（收编 cursor/word-break/text-align/宽带容器）---- */
.fkb-pointer{cursor:pointer}
.fkb-break-all{word-break:break-all}
.fkb-center{text-align:center}
.fkb-run-main{max-width:720px;margin:0 auto;padding:24px 0 48px}

/* ---- 输入位（收编 my-accounts 操作条 input 内联；消费既有令牌，零兜底 hex）---- */
.fkb-input{min-height:34px;padding:4px 10px;border:1px solid var(--n-200);border-radius:8px}

/* ============================================================
   DR-1006 v0.2 批δ-2·C1 组归并（2026-10-07 12:45 铺令·原 d2_css_C1.css）
   ============================================================ */
/* ============================================================
   DR-1006 v0.2 批δ-2 · C1 组（表单+设置组）页级片段样式
   令：京研社 2026-10-07 12:45「铺」（om_x100b6368ab79d8a0b15330ef11d9e0a）
   真源：design_revamp_20261006/00_设计规范_v0.2.md §5/§7/§8 ＋ 17_批D2全站铺量执行单_v0.1.md
   纪律：①只收编本组 8 页静态内联 style（属性值逐字照搬＝渲染零变化）；
        ②零新增 hex（px 字面＝被收编内联原值；色一律消费既有令牌）；
        ③前缀 .fkc1-（组隔离，不与 .fkb-/.fkc2-/.fkd- 冲突）；不改 components.css/tokens.css；
        ④JS 动态读写 element.style 的元素不在本表（逐处核对，见执行单 JS 钩子清单）。
   ============================================================ */

/* ---- 通用收编（值＝被收编内联样式的逐字等值；px 字面即原内联值） ---- */
.fkc1-m0{margin:0}                            /* <h2 style="margin:0"> 页题（admin/settings/billing/store/accounts/asset-vault 六页同型） */
.fkc1-mt0{margin-top:0}                       /* <h4 style="margin-top:0"> admin 执行/报告台账卡题 ×2 */
.fkc1-mt6{margin-top:6px}                     /* settings 禁用词详情内层 div */
.fkc1-mt8{margin-top:8px}                     /* settings 回落表 table／details */
.fkc1-mt12{margin-top:12px}                   /* accounts 绑定折叠 details */
.fkc1-mt14{margin-top:14px}                   /* billing/store 页题下 CTA 行 */
.fkc1-mt16{margin-top:16px}                   /* admin 双台账栅格 .fk-grid.c2 */
.fkc1-mb12{margin-bottom:12px}                /* settings 档案卡 .fk-card */
.fkc1-mb16{margin-bottom:16px}                /* settings 表单宿主 #fkbp-form-host */
.fkc1-mb24{margin-bottom:24px}                /* asset-vault 内部面真源指针卡 */
.fkc1-m-6-0-0{margin:6px 0 0}                 /* settings 禁用词条 p／accounts 空态注 p */
.fkc1-m-6-0{margin:6px 0}                    /* accounts 空态注 p（原内联两值简写＝上下 6/6，与 settings 三值型不同型，勿合并） */
.fkc1-m-8-0-0{margin:8px 0 0}                 /* settings 档案摘要行 p／禁用词内部原文 p／最近更新 p */
.fkc1-m-0-0-8{margin:0 0 8px}                 /* asset-vault 内部面说明 p */
.fkc1-ml-auto{margin-left:auto}               /* settings 档案头「编辑」钮右沉 */
.fkc1-w88{width:88px}                         /* settings 回落表标签列 td */
.fkc1-w120{width:120px}                       /* admin 台账表标签列 td ×2 */
.fkc1-flex-base{display:flex;align-items:baseline;gap:8px;flex-wrap:wrap} /* settings 档案卡头行 */
.fkc1-summary{cursor:pointer;padding:10px 0}  /* accounts 绑定折叠 summary */
.fkc1-cursor{cursor:pointer}                  /* settings 禁用词折叠 summary */

/* ---- 覆写型收编（压过既有类规则的，用复合选择器保序不靠加载顺序） ---- */
.fk-concl.fkc1-mb16{margin-bottom:16px}       /* admin 结论条（.fk-concl 默认 --sp-4=24px → 原内联 16px） */

/* ---- 设置页危险区（err-12 红色视觉边界 · 零文案 · 零 JS 改动） ----
   现状（静态扫描实证）：settings 页面 HTML 无「注销/删除」类文案与按钮；页内唯一删除类动作
   ＝品牌档案表单内「删除本行」钮（brand-profile-client.js 渲染进 #fkbp-form-host，禁改 JS
   ⇒ 只能 CSS 接线）。本表按「删除类按钮所在最小块」给 err-12 边界＝钮位红底（.fkc1-danger-zone
   为整块围栏形态，供后续页内自建危险区直接挂类；块级围栏方案挂账呈批，见执行单 §settings）。 */
.fkc1-danger-zone{
  background:var(--err-12);
  border-left:3px solid var(--err);
  border-radius:var(--r-sm);
  padding:var(--sp-3);
}
[data-fkbp-form] .fk-btn.ghost[onclick*="delRow"]{
  background:var(--err-12);
  color:var(--err);
  border-color:transparent;
}

/* ============================================================
   DR-1006 v0.2 批δ-2·C2 组归并（2026-10-07 12:45 铺令·原 d2_css_C2.css）
   ============================================================ */
/* ============================================================
   DR-1006 v0.2 批δ-2 · C2 认证+发布+杂项组 收编片段（.fkc2- 前缀隔离）
   令源：京研社 2026-10-07 12:45「铺」（om_x100b6368ab79d8a0b15330ef11d9e0a）
   真源：design_revamp_20261006/00_设计规范_v0.2.md §5/§7/§8＋17 号执行单
   纪律：仅消费 tokens.css 既有令牌（本文件零 hex）；亮暗双值随令牌自动换档；
        触控位 ≥40px 不回退（各页既有 44px 档零触碰）；零文案（本文件仅注释含中文）；
        主线复核后归并 components.css，届时各页本链接撤除（17 号·冲突规避）。
   ============================================================ */

/* —— 收编：页头/节头排版（email-auth / upgrade / publish-preview）—— */
.fkc2-h2{margin:0}                                  /* 原 style="margin:0"（页头 h2） */
.fkc2-h3{margin:0;font-size:18px}                   /* 原 style="margin:0;font-size:18px"（节头 h3 ×3） */
.fkc2-sec{margin-top:30px}                          /* 原 style="margin-top:30px"（节距 ×2） */

/* —— 收编：通用徽标行（login ×3 / publish-preview ×2）—— */
.fkc2-flexrow{display:flex;align-items:center;gap:8px;flex-wrap:wrap}

/* —— 收编：login 静态内联 10 处（JS 串内 3 处按「最小干预令」保留不收）—— */
.fkc2-mb8{margin-bottom:8px}                        /* h3 副题距 */
.fkc2-lead{margin:0 0 8px}                          /* 副题 p（原 margin:0 0 8px） */
.fkc2-desc{margin:6px 0 10px}                       /* 通道说明 p ×2 */
.fkc2-desc-tight{margin:6px 0 0}                    /* 微信通道说明 p */
.fkc2-mt16{margin-top:16px}                         /* #idbus-note */
.fkc2-channel--dash{border-style:dashed;border-color:var(--n-200)} /* 微信通道卡；JS 仅动态写 style.display，与本类零冲突 */

/* —— 收编：publish-preview 19 处（含 2 处裸 hex 底→令牌消费）—— */
.fkc2-frame{display:block;width:100%;height:560px;border:0;background:var(--surface)} /* 手机框 iframe（原裸 hex 白底；srcdoc 画布自遮，--surface 双主题恒白=原值） */
.fkc2-card{padding:16px}                            /* 载入卡/发布卡（原 style="padding:16px"） */
.fkc2-card--mt{margin-top:12px}                     /* 发布卡节距 */
.fkc2-concl-mt{margin-top:10px}                     /* concl 读数行 ×2 */
.fkc2-note-dest{margin-top:8px}                     /* EX-53 单渠道说明 */
.fkc2-note-rel{margin:8px 0}                        /* 冻结/发布语义说明 */
.fkc2-aside{margin-left:8px}                        /* 「对外发布动作…」随行说明 span */
.fkc2-cap{margin:8px 0 0}                           /* 去向卡能力行＋投递链路行 */
.fkc2-mt14{margin-top:14px}                         /* upgrade 页头动作位 */

/* —— 占位/壳页视觉统一（零文案；现有文字逐字保留）—— */
/* admin-entry 过渡页图标容器：镜像 .fk-icon-plate 几何（40px 档＋r-md）；该页未挂 components.css，避免整包引入副作用 */
.fkc2-entry-brand{width:44px;height:44px;margin:0 auto 14px;display:flex;align-items:center;justify-content:center;border-radius:var(--r-md);background:var(--icon-plate)}
.fkc2-entry-brand img{width:24px;height:24px;display:block}

/* ============================================================
   DR-1006 v0.2 批δ-2·D 组归并（2026-10-07 12:45 铺令·原 d2_css_D.css）
   ============================================================ */
/* ============================================================
   DR-1006 v0.2 批δ-2 · D 组（创作簇·customer-flow 发布流水线化）页级片段样式
   令：京研社 2026-10-07 12:45「铺」（om_x100b6368ab79d8a0b15330ef11d9e0a）
   真源：design_revamp_20261006/00_设计规范_v0.2.md §5/§6/§7 ＋ 17_批D2全站铺量执行单_v0.1.md
   纪律：①零新增 hex（色一律消费既有令牌；px 字面＝被收编内联样式的原值）；
        ②前缀 .fkd-（组隔离，不与 .fkb-/.fkc1-/.fkc2- 冲突）；不改 components.css/tokens.css；
        ③共享类直接消费禁重定义（fk-icon-plate／fk-badge.dot 均用既有定义）；
        ④JS 动态读写 element.style 的元素不在收编表（#fkcf-len-custom／#fkctp-applied-wrap／
          两个 file input 的 display:none——见 17D 执行单钩子清单）；
        ⑤动效仅「呼吸」（doing 微脉冲）一种；reduced-motion 全关；触控目标零缩减。
   ============================================================ */

/* ---- 一、发布流水线骨架（九站平铺 → 节点卡纵列＋rail 连接线） ----
   结构（块一模板·id/锚点全保真）：
   .fkd-pipeline > .fkd-node ×9 ＝ .fkd-rail（icon-plate＋站间连线，装饰位 aria-hidden）
                                  ＋ .fkd-main（既有 section 宿主，JS 写入目标零变动）
   节距策略：pipeline 不加 gap——沿用既有卡片自身 margin 节奏（渲染零扰动），
   连接线随 rail 拉通全节点高，视觉上贯穿站间。 */
.fkd-pipeline{display:flex;flex-direction:column}
.fkd-node{display:flex;align-items:stretch;gap:16px}
.fkd-rail{position:relative;flex:0 0 40px;display:flex;justify-content:center;align-items:flex-start}
.fkd-plate{flex:0 0 auto;margin-top:2px}
/* 站间连接线：纵向 2px tint-2 细线（暗档随 tokens.css [data-theme=dark] 自动换值） */
.fkd-rail::after{content:"";position:absolute;left:50%;top:38px;bottom:0;width:2px;margin-left:-1px;background:var(--tint-2)}
.fkd-node:last-child .fkd-rail::after{display:none}
.fkd-main{flex:1 1 auto;min-width:0}

/* doing 态（真·进行中）：站内出现既有 JS 渲染的 .fkcf-spin（正在生成／校验／导出的
   在跑信号，既有 DOM 零改动）⇒ 节点 plate 品牌色呼吸。纯 CSS :has() 零 JS；
   不支持 :has() 的浏览器优雅退化＝无脉冲、流水线结构不受影响。 */
.fkd-node:has(.fkcf-spin) .fkd-plate{
  background:var(--teal-12);color:var(--c-cyan);
  animation:fkd-breathe 2.4s var(--ease) infinite;
}
@keyframes fkd-breathe{
  0%,100%{box-shadow:0 0 0 0 var(--tint-2)}
  50%{box-shadow:0 0 0 6px var(--tint-1)}
}

/* ---- 二、stage-chip 三态徽标（裁4 已批三态词：已发布／进行中／待启动） ----
   消费既有 .fk-badge 基座＋.fk-badge.dot 圆点（徽标归一，不重定义）；
   本类只落三态色与 doing 呼吸。静态位＝色类＋态类成对出现；
   动态位（CH2 等运行时色类）走同族别名：teal≡done、neutral/info≡todo、
   warn/red（暂停·等待／异常）保持既有注意色、不入三态。 */
.fkd-stage-chip.done{background:var(--teal-12);color:var(--teal-ink)}
.fkd-stage-chip.todo{background:var(--n-100);color:var(--ink-700)}
.fkd-stage-chip.doing{
  background:var(--teal-12);color:var(--c-cyan);
  animation:fkd-breathe 2.4s var(--ease) infinite;
}
/* 动态色类别名（运行时 class 由既有 JS 产出，态语义＝已批映射） */
.fkd-stage-chip.teal{background:var(--teal-12);color:var(--teal-ink)}      /* 完成／在线＝done 同视觉 */
.fkd-stage-chip.neutral,.fkd-stage-chip.info{background:var(--n-100);color:var(--ink-700)}  /* 默认·进行中＝todo 同视觉 */

/* reduced-motion：呼吸全关（唯一动效位，一并关闭） */
@media (prefers-reduced-motion: reduce){
  .fkd-node:has(.fkcf-spin) .fkd-plate,
  .fkd-stage-chip.doing{animation:none}
}

/* ---- 三、内联 style 收编（值＝被收编内联样式的逐字等值；行号/处数见 17D 执行单改动表） ---- */
/* 边距族 */
.fkd-m0{margin:0}                    /* 原 style="margin:0"（页题 h2 等 ×3） */
.fkd-mt4{margin-top:4px}             /* ×1 */
.fkd-mt6{margin-top:6px}             /* ×10 */
.fkd-mt8{margin-top:8px}             /* ×5 */
.fkd-mt10{margin-top:10px}           /* ×3 */
.fkd-mt12{margin-top:12px}           /* ×5 */
.fkd-m4{margin:4px 0}                /* ×1 */
.fkd-m4z{margin:4px 0 0}             /* ×4 */
.fkd-m6z{margin:6px 0 0}             /* ×4 */
.fkd-m610{margin:6px 0 10px}         /* ×1 */
.fkd-m8{margin:8px 0}                /* ×10 */
.fkd-m8z{margin:8px 0 0}             /* ×9 */
.fkd-m84{margin:8px 0 4px}           /* ×2 */
.fkd-m10z{margin:10px 0 0}           /* ×1 */
.fkd-m2z{margin:2px 0 0}             /* ×1 */
.fkd-m24{margin:2px 0 4px}           /* ×1 */
.fkd-mb4{margin:0 0 4px}             /* ×1 */
.fkd-mb6{margin:0 0 6px}             /* ×1 */
.fkd-mb8{margin:0 0 8px}             /* ×5 */
.fkd-m144{margin:14px 0 4px}         /* ×2（h4 两处确认/换平台） */
.fkd-ml8{margin-left:8px}            /* ×1 */
/* 卡片/面板族 */
.fkd-card{padding:16px}              /* ×10 */
.fkd-card-mt12{padding:16px;margin-top:12px}                /* ×1 */
.fkd-card-dash{padding:16px;border:1px dashed var(--n-200)} /* ×2（演示兜底/待初稿） */
.fkd-card-p14{padding:14px 16px;margin:0 0 10px}            /* ×1 */
.fkd-card-p10{padding:10px 12px}                            /* ×1（.fkcf-topic 同值并存） */
.fkd-chipcard{padding:12px 16px;display:flex;gap:8px;align-items:center;flex-wrap:wrap} /* ×1（发布号 chip 卡） */
/* 站头行族 */
.fkd-head{display:flex;align-items:center;gap:8px;flex-wrap:wrap}                          /* ×11 */
.fkd-head-mb{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin:0 0 8px}        /* ×1 */
/* 动作行族（属性序不同＝同计算值，共用一类） */
.fkd-actions{display:flex;gap:8px;flex-wrap:wrap}                                          /* ×1 */
.fkd-actions-mt6{display:flex;gap:8px;flex-wrap:wrap;margin-top:6px}                        /* ×1 */
.fkd-actions-mt10{display:flex;gap:8px;flex-wrap:wrap;margin-top:10px}                      /* ×3（两种属性序同值） */
.fkd-actions-c{display:flex;gap:8px;align-items:center;flex-wrap:wrap}                      /* ×1 */
.fkd-actions-c-mt8{display:flex;gap:8px;align-items:center;flex-wrap:wrap;margin-top:8px}   /* ×4 */
.fkd-actions-c-mt10{display:flex;gap:8px;align-items:center;flex-wrap:wrap;margin-top:10px} /* ×2 */
.fkd-actions-c6{display:flex;gap:6px;align-items:center;flex-wrap:wrap}                     /* ×1 */
.fkd-actions-c6-mt10{display:flex;gap:6px;align-items:center;flex-wrap:wrap;margin-top:10px} /* ×1 */
.fkd-actions-c6-mt12{margin-top:12px;display:flex;gap:6px;align-items:center;flex-wrap:wrap} /* ×1 */
/* 行/杂项 */
.fkd-row-bet{display:flex;justify-content:space-between;align-items:center;padding:8px 0}  /* ×2（确认行） */
.fkd-acct-row{display:flex;align-items:center;gap:8px;padding:8px 0;border-bottom:1px solid var(--n-100)} /* ×1（号清单行） */
.fkd-block-mt8{display:block;margin-top:8px}    /* ×2 */
.fkd-block-mt12{display:block;margin-top:12px}  /* ×1 */
.fkd-basis{flex-basis:100%}                     /* ×2 */
.fkd-flexmin{flex:1;min-width:220px}            /* ×1（绘制输入框） */
.fkd-w110{width:110px}                          /* ×2（字数上下限输入） */
.fkd-w340{width:340px;max-width:100%}           /* ×1（客户编号输入） */
.fkd-imgfull{width:100%;height:auto;display:block} /* ×1 */
.fkd-ta{width:100%;box-sizing:border-box;border:1px solid var(--n-200);border-radius:8px;padding:8px 10px} /* ×1（正文 textarea） */
.fkd-mw520{max-width:520px;margin-top:8px}      /* ×1 */
.fkd-mw320{max-width:320px}                     /* ×1 */
.fkd-ptr{cursor:pointer}                        /* ×1（summary） */

/* ---- 四、≤768px：单列保持（纵列唯一形态），rail 收窄贴边 ---- */
@media (max-width:768px){
  .fkd-node{gap:10px}
  .fkd-rail{flex:0 0 34px}
  .fkd-rail::after{top:34px}
}
