/* ==========================================================================
   new-deck/css/extra.css
   --------------------------------------------------------------------------
   只放「全局新加」样式：调色板 token、底部结论色框、名词地图、双栏骨架等
   跨页复用组件。单页特有 CSS 仍放在各自 HTML 的 <style>。
   绝不重定义 style.css 已有的字号 / 骨架类，保持字号契约不被打破。
   ========================================================================== */

/* ==========================================================================
   01 · 统一调色板 · Unified Palette
   --------------------------------------------------------------------------
   所有 new-deck 页面只从这 6 个语义色里取色，禁止再在单页中硬编新的品牌色。
   2026-04 全局收口：6 个语义色全部映射到 Apple system colors。
   命名：--ndk-{hue}-a / -b（渐变起止） / -ink（白底文字） / -soft / -line
   如需新色，在这里集中添加，不要散落到各页。
   ========================================================================== */
:root {
    /* Apple system base · 覆盖 css/style.css 的基础品牌色，extra.css 一次启用全 deck */
    --bg-color: #F5F5F7;
    --card-bg: #FFFFFF;
    --text-main: #1D1D1F;
    --text-muted: #54545A; /* 投屏可读：原 #86868B 对比度不足(≈3.5:1)，加深至 ≈6.6:1 */
    --border-color: rgba(60, 60, 67, 0.16);
    --shadow-sm: 0 2px 10px rgba(0, 0, 0, 0.025);
    --shadow-md: 0 14px 36px rgba(0, 0, 0, 0.07);
    --ai-gradient: linear-gradient(135deg, #5856D6 0%, #AF52DE 52%, #FF2D55 100%);
    /* 仅供 .eyebrow 小号大写文字使用：同色系但整体加深，避免粉色端在投影仪上糊掉。
       不替换 --ai-gradient，装饰性渐变（进度条/箭头/色条等）保持原样不受影响。 */
    --ndk-eyebrow-grad: linear-gradient(120deg, #4B36C9 0%, #9A2EC0 50%, #C7244C 100%);
    /* 底部结论条「One Line」等 badge 与第一栏横条 leading kicker 共用 */
    --ndk-conclusion-kicker: #FFD60A;
    --ai-blue: #007AFF;
    --ai-green: #34C759;
    --ai-orange: #FF9500;
    --ai-red: #FF3B30;

    /* Blue · 信息 / 逻辑 / AI 本体 */
    --ndk-blue-a:    #007AFF;
    --ndk-blue-b:    #0A84FF;
    --ndk-blue-ink:  #0057D9;
    --ndk-blue-soft: rgba(0, 122, 255, 0.08);
    --ndk-blue-line: rgba(0, 122, 255, 0.22);

    /* Cyan · 数据 / 感知 / 基础设施 */
    --ndk-cyan-a:    #32ADE6;
    --ndk-cyan-b:    #64D2FF;
    --ndk-cyan-ink:  #0071A4;
    --ndk-cyan-soft: rgba(50, 173, 230, 0.08);
    --ndk-cyan-line: rgba(50, 173, 230, 0.22);

    /* Green · 验证 / 安全 / 通过 */
    --ndk-green-a:    #34C759;
    --ndk-green-b:    #30D158;
    --ndk-green-ink:  #248A3D;
    --ndk-green-soft: rgba(52, 199, 89, 0.08);
    --ndk-green-line: rgba(52, 199, 89, 0.2);

    /* Purple · 生成 / LLM / 创造 */
    --ndk-purple-a:    #5856D6;
    --ndk-purple-b:    #AF52DE;
    --ndk-purple-ink:  #4F46C8;
    --ndk-purple-soft: rgba(88, 86, 214, 0.08);
    --ndk-purple-line: rgba(88, 86, 214, 0.2);

    /* Orange · 警示 / 演进 / 时序 */
    --ndk-orange-a:    #FF9500;
    --ndk-orange-b:    #FF9F0A;
    --ndk-orange-ink:  #B25000;
    --ndk-orange-soft: rgba(255, 149, 0, 0.09);
    --ndk-orange-line: rgba(255, 149, 0, 0.22);

    /* Slate · 中性 / 日志 / 系统 */
    --ndk-slate-a:    #8E8E93;
    --ndk-slate-b:    #3A3A3C;
    --ndk-slate-ink:  #3A3A3C;
    --ndk-slate-soft: rgba(142, 142, 147, 0.1);
    --ndk-slate-line: rgba(142, 142, 147, 0.2);

    /* 品牌收束色 · 结论色框左条默认值 */
    --ndk-accent-a:  #5856D6;
    --ndk-accent-b:  #AF52DE;

    /* 封面专用 hero 渐变色（沿用原 deck 的 Apple 配色，仅限 cover 使用） */
    --ndk-hero-1:    #5856D6;
    --ndk-hero-2:    #007AFF;
    --ndk-hero-3:    #FF2D55;
}

/* ==========================================================================
   02 · 底部结论色框 · Conclusion Band
   --------------------------------------------------------------------------
   复用原 22-conclusion 的深色玻璃卡 + 彩色左条设计。使用方式：在 .layer-3
   上叠加 .ndk-conclusion-band（可选附加 .tone-{hue} 决定左条渐变）。

   new-deck 的结论栏固定为 1 行 "badge + text"，比原 deck 的双行
   .bottom-judgement 更紧凑，因此这里把它压到 --ndk-conclusion-height
   (默认 60px)，把省下来的纵向空间全部让给中间内容区。
   这里仅覆盖 last-child 的 flex 尺寸，其余位置/边距仍沿用骨架定义。
   ========================================================================== */
:root {
    --ndk-conclusion-height: 60px;
}

.content-layout > .layer-3.ndk-conclusion-band:last-child,
.content-layout > .layer-4.ndk-conclusion-band:last-child {
    flex: 0 0 var(--ndk-conclusion-height);
    min-height: var(--ndk-conclusion-height);
    max-height: var(--ndk-conclusion-height);
}

.ndk-conclusion-band {
    position: relative;
    background: rgba(29, 29, 31, 0.9);
    border: 1px solid rgba(255, 255, 255, 0.08);
    border-radius: 12px;
    padding: 8px 22px 8px 24px;
    box-shadow: 0 14px 32px rgba(0, 0, 0, 0.18);
    -webkit-backdrop-filter: blur(30px);
    backdrop-filter: blur(30px);
    overflow: hidden;
}

.ndk-conclusion-band::before {
    content: "";
    position: absolute;
    left: 0; top: 0; bottom: 0;
    width: 4px;
    /* 默认左条 = 标题 .accent 的同款 tri-stop Apple 渐变，
       41 页底部永远一致，也和 main-title .accent 呼应。
       页面需要覆盖时用 .tone-* 改为单色相渐变。 */
    background: var(--ndk-conclusion-bar, var(--ai-gradient));
}

.ndk-conclusion-band.tone-blue   { --ndk-conclusion-bar: linear-gradient(180deg, var(--ndk-blue-a),   var(--ndk-blue-b)); }
.ndk-conclusion-band.tone-cyan   { --ndk-conclusion-bar: linear-gradient(180deg, var(--ndk-cyan-a),   var(--ndk-cyan-b)); }
.ndk-conclusion-band.tone-green  { --ndk-conclusion-bar: linear-gradient(180deg, var(--ndk-green-a),  var(--ndk-green-b)); }
.ndk-conclusion-band.tone-purple { --ndk-conclusion-bar: linear-gradient(180deg, var(--ndk-purple-a), var(--ndk-purple-b)); }
.ndk-conclusion-band.tone-orange { --ndk-conclusion-bar: linear-gradient(180deg, var(--ndk-orange-a), var(--ndk-orange-b)); }
.ndk-conclusion-band.tone-slate  { --ndk-conclusion-bar: linear-gradient(180deg, var(--ndk-slate-a),  var(--ndk-slate-b)); }

/* 结论色框的默认内部排版 · 单行 badge + text */
.ndk-conclusion-line {
    display: flex;
    align-items: center;
    gap: 14px;
    height: 100%;
    padding: 0 8px;
}

.ndk-conclusion-badge {
    font-size: var(--fs-small);
    font-weight: 800;
    letter-spacing: 1px;
    color: var(--ndk-conclusion-kicker);
    text-transform: uppercase;
    border-right: 1px solid rgba(255,255,255,0.18);
    padding-right: 14px;
    white-space: nowrap;
}

.ndk-conclusion-text {
    font-size: var(--fs-body);
    font-weight: 600;
    color: #F5F5F7;
    line-height: 1.5;
    letter-spacing: 0.1px;
}

.ndk-conclusion-text strong { color: var(--ndk-conclusion-kicker); font-weight: 800; }

/* ==========================================================================
   03 · 进场动画 · Stage Utilities
   --------------------------------------------------------------------------
   通用 fade-in-up，ndk-stage-1 .. 6 对应递进延迟。
   ========================================================================== */
@keyframes ndk-fade-in-up {
    from { opacity: 0; transform: translateY(16px); }
    to   { opacity: 1; transform: translateY(0); }
}

.ndk-stage-1 { opacity: 0; animation: ndk-fade-in-up 0.55s cubic-bezier(0.2,0.8,0.2,1) 0.08s forwards; }
.ndk-stage-2 { opacity: 0; animation: ndk-fade-in-up 0.55s cubic-bezier(0.2,0.8,0.2,1) 0.35s forwards; }
.ndk-stage-3 { opacity: 0; animation: ndk-fade-in-up 0.55s cubic-bezier(0.2,0.8,0.2,1) 0.6s forwards; }
.ndk-stage-4 { opacity: 0; animation: ndk-fade-in-up 0.55s cubic-bezier(0.2,0.8,0.2,1) 0.85s forwards; }
.ndk-stage-5 { opacity: 0; animation: ndk-fade-in-up 0.55s cubic-bezier(0.2,0.8,0.2,1) 1.10s forwards; }
.ndk-stage-6 { opacity: 0; animation: ndk-fade-in-up 0.55s cubic-bezier(0.2,0.8,0.2,1) 1.35s forwards; }

@media (prefers-reduced-motion: reduce) {
    .ndk-stage-1, .ndk-stage-2, .ndk-stage-3,
    .ndk-stage-4, .ndk-stage-5, .ndk-stage-6 {
        animation: none !important;
        opacity: 1 !important;
    }
}

/* ==========================================================================
   04 · 内容区共享原语 · Shared Content Primitives
   --------------------------------------------------------------------------
   设计基调（Apple / Linear / Vercel 系）：
     · 白卡 + 极细边框 + 双层软阴影 + 14px 圆角 —— 不再用彩色左条撑结构
     · 色相只通过「眉标 eyebrow 点 + 标题 .hl 渐变字 + 底部 chip」三处微点缀
     · 41 页共用同一刻度（radius / shadow / border），布局和尺寸各页自决
     · hero-band 深色使用 navy 底 + 单色相 tint 光晕，不再用硬编 3-stop 渐变
   ========================================================================== */
:root {
    /* 刻度 · 圆角 */
    --ndk-r-sm:   8px;
    --ndk-r-md:   12px;
    --ndk-r-lg:   14px;
    --ndk-r-pill: 999px;

    /* 刻度 · 阴影（双层，更有质感） */
    --ndk-sh-card:      0 1px 2px rgba(0, 0, 0, 0.035), 0 14px 34px rgba(0, 0, 0, 0.055);
    --ndk-sh-card-lift: 0 2px 4px rgba(0, 0, 0, 0.05), 0 20px 42px rgba(0, 0, 0, 0.08);
    --ndk-sh-band:      0 1px 2px rgba(0, 0, 0, 0.045), 0 18px 40px rgba(0, 0, 0, 0.075);

    /* 白卡外壳（提高白度 + 更浅边框，提升高级感） */
    --ndk-card-bg:     rgba(255, 255, 255, 0.96);
    --ndk-card-border: rgba(60, 60, 67, 0.14);

    /* hero 带深色底 + 默认 blue 光晕 */
    --ndk-hero-tint:   rgba(0, 122, 255, 0.2);
    --ndk-hero-base-1: #1D1D1F;
    --ndk-hero-base-2: #2C2C2E;
}

/* -------------------------------------------------------------------------
   ndk-hero-band · 顶部主张带
   深色版：navy 底 + 左上角 tone 色 radial 光晕 + 渐变高亮词
   浅色版：tone-soft 底 + 细 line 边 + 深字 + ink 高亮词
   ------------------------------------------------------------------------- */
.ndk-hero-band {
    position: relative;
    display: flex;
    align-items: center;
    gap: 18px;
    padding: 14px 22px;
    border-radius: var(--ndk-r-lg);
    background:
        radial-gradient(120% 140% at 0% 0%, var(--ndk-hero-tint) 0%, transparent 55%),
        linear-gradient(180deg, var(--ndk-hero-base-1), var(--ndk-hero-base-2));
    border: 1px solid rgba(255, 255, 255, 0.1);
    box-shadow: var(--ndk-sh-band);
    overflow: hidden;
    flex-shrink: 0;
}
.ndk-hero-band.tone-blue   { --ndk-hero-tint: rgba(0, 122, 255, 0.2); }
.ndk-hero-band.tone-cyan   { --ndk-hero-tint: rgba(50, 173, 230, 0.2); }
.ndk-hero-band.tone-green  { --ndk-hero-tint: rgba(52, 199, 89, 0.18); }
.ndk-hero-band.tone-purple { --ndk-hero-tint: rgba(88, 86, 214, 0.22); }
.ndk-hero-band.tone-orange { --ndk-hero-tint: rgba(255, 149, 0, 0.18); }
.ndk-hero-band.tone-slate  { --ndk-hero-tint: rgba(142, 142, 147, 0.18); }

/* 浅色变体 */
.ndk-hero-band.is-light {
    background: linear-gradient(135deg, var(--ndk-blue-soft), var(--ndk-purple-soft));
    border: 1px solid var(--ndk-blue-line);
    box-shadow: none;
    padding: 10px 20px;
}
.ndk-hero-band.is-light.tone-cyan   { background: linear-gradient(135deg, var(--ndk-cyan-soft),   var(--ndk-blue-soft));   border-color: var(--ndk-cyan-line); }
.ndk-hero-band.is-light.tone-purple { background: linear-gradient(135deg, var(--ndk-purple-soft), var(--ndk-blue-soft));   border-color: var(--ndk-purple-line); }
.ndk-hero-band.is-light.tone-orange { background: linear-gradient(135deg, var(--ndk-orange-soft), var(--ndk-purple-soft)); border-color: var(--ndk-orange-line); }
.ndk-hero-band.is-light.tone-green  { background: linear-gradient(135deg, var(--ndk-green-soft),  var(--ndk-cyan-soft));   border-color: var(--ndk-green-line); }

/* 与底部结论条 .ndk-conclusion-badge 同色：Apple system yellow + ｜ 分隔符 */
.ndk-hero-kicker {
    position: relative;
    display: inline-flex;
    align-items: center;
    font-size: var(--fs-small);
    font-weight: 800;
    letter-spacing: 1.4px;
    text-transform: uppercase;
    white-space: nowrap;
    color: var(--ndk-conclusion-kicker);
    background: none;
    -webkit-text-fill-color: var(--ndk-conclusion-kicker);
}
.ndk-hero-kicker::after {
    content: "｜";
    margin: 0 2px 0 12px;
    font-weight: 300;
    letter-spacing: 0;
    color: var(--ndk-conclusion-kicker);
    -webkit-text-fill-color: var(--ndk-conclusion-kicker);
    background: none;
    background-image: none;
    -webkit-background-clip: border-box;
    background-clip: border-box;
}
.ndk-hero-text {
    position: relative;
    font-size: var(--fs-lead);
    font-weight: 700;
    color: #FFFFFF;
    line-height: 1.5;
    letter-spacing: 0.2px;
}
/* 深色 hero 的高亮词：使用标题同款 ai-gradient，和 .main-title .accent 一致 */
.ndk-hero-band .hl {
    background: var(--ai-gradient);
    background-clip: text;
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
    font-weight: 800;
}

.ndk-hero-band.is-light .ndk-hero-text {
    color: #0F172A;
    font-weight: 600;
}

/* -------------------------------------------------------------------------
   ndk-card · 白色内容卡（Apple-style minimal）
   砍掉彩色左条，色相走「eyebrow 点 + 标题 .hl + chip」三个 micro-accent。
   ------------------------------------------------------------------------- */
.ndk-card {
    position: relative;
    background: var(--ndk-card-bg);
    border: 1px solid var(--ndk-card-border);
    border-radius: var(--ndk-r-lg);
    padding: 16px 18px;
    display: flex;
    flex-direction: column;
    gap: 10px;
    box-shadow: var(--ndk-sh-card);
    overflow: hidden;
    min-height: 0;
    --ndk-tone-ink: var(--ndk-slate-ink);
    --ndk-tone-a:   var(--ndk-slate-a);
    --ndk-tone-b:   var(--ndk-slate-b);
    --ndk-tone-soft:rgba(148, 163, 184, 0.08);
    --ndk-tone-line:var(--ndk-card-border);
}
.ndk-card.tone-blue   { --ndk-tone-ink: var(--ndk-blue-ink);   --ndk-tone-a: var(--ndk-blue-a);   --ndk-tone-b: var(--ndk-blue-b);   --ndk-tone-soft: var(--ndk-blue-soft);   --ndk-tone-line: var(--ndk-blue-line); }
.ndk-card.tone-cyan   { --ndk-tone-ink: var(--ndk-cyan-ink);   --ndk-tone-a: var(--ndk-cyan-a);   --ndk-tone-b: var(--ndk-cyan-b);   --ndk-tone-soft: var(--ndk-cyan-soft);   --ndk-tone-line: var(--ndk-cyan-line); }
.ndk-card.tone-green  { --ndk-tone-ink: var(--ndk-green-ink);  --ndk-tone-a: var(--ndk-green-a);  --ndk-tone-b: var(--ndk-green-b);  --ndk-tone-soft: var(--ndk-green-soft);  --ndk-tone-line: var(--ndk-green-line); }
.ndk-card.tone-purple { --ndk-tone-ink: var(--ndk-purple-ink); --ndk-tone-a: var(--ndk-purple-a); --ndk-tone-b: var(--ndk-purple-b); --ndk-tone-soft: var(--ndk-purple-soft); --ndk-tone-line: var(--ndk-purple-line); }
.ndk-card.tone-orange { --ndk-tone-ink: var(--ndk-orange-ink); --ndk-tone-a: var(--ndk-orange-a); --ndk-tone-b: var(--ndk-orange-b); --ndk-tone-soft: var(--ndk-orange-soft); --ndk-tone-line: var(--ndk-orange-line); }
.ndk-card.tone-slate  { --ndk-tone-ink: var(--ndk-slate-ink);  --ndk-tone-a: var(--ndk-slate-a);  --ndk-tone-b: var(--ndk-slate-b);  --ndk-tone-soft: var(--ndk-slate-soft);  --ndk-tone-line: var(--ndk-slate-line); }

/* 可选：微型顶部 tone 小勾（bar-top 变体），仅在需要强调"这是某 tone 的卡"时使用 */
.ndk-card.bar-top::before {
    content: "";
    position: absolute;
    left: 0; top: 0;
    width: 56px; height: 3px;
    border-radius: 0 0 3px 0;
    background: linear-gradient(90deg, var(--ndk-tone-a), var(--ndk-tone-b));
}

/* Eyebrow 小眉标 · 色点 + 小号大写 ink 文字（承担卡的 tone 归属） */
.ndk-card-eyebrow {
    display: inline-flex;
    align-items: center;
    gap: 7px;
    font-size: var(--fs-micro);
    font-weight: 800;
    letter-spacing: 1.2px;
    color: var(--ndk-tone-ink);
    text-transform: uppercase;
    white-space: nowrap;
    flex-shrink: 0;
}
.ndk-card-eyebrow::before {
    content: "";
    width: 7px;
    height: 7px;
    border-radius: 999px;
    background: linear-gradient(135deg, var(--ndk-tone-a), var(--ndk-tone-b));
    box-shadow: 0 0 0 2px rgba(255, 255, 255, 0.9), 0 0 0 3px var(--ndk-tone-line);
}

.ndk-card-head {
    display: flex;
    align-items: baseline;
    gap: 10px;
    flex-wrap: wrap;
}
.ndk-card-title {
    font-size: var(--fs-h3);
    font-weight: 800;
    color: #0F172A;
    line-height: 1.25;
    letter-spacing: -0.2px;
}
/* 卡内高亮词：使用卡自身 tone 的渐变文字（而非硬编黄） */
.ndk-card-title .hl,
.ndk-card-body .hl {
    background: linear-gradient(135deg, var(--ndk-tone-a), var(--ndk-tone-b));
    background-clip: text;
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
    font-weight: 800;
}
.ndk-card-en {
    font-family: var(--font-mono);
    font-size: var(--fs-small);
    font-weight: 600;
    color: #475569;
    letter-spacing: 0.4px;
}
.ndk-card-body {
    font-size: var(--fs-body);
    color: #334155;
    line-height: 1.55;
}
.ndk-card-body strong { color: #0F172A; font-weight: 700; }
.ndk-card-foot {
    display: flex;
    flex-wrap: wrap;
    gap: 6px;
    margin-top: auto;
    padding-top: 2px;
}

/* -------------------------------------------------------------------------
   ndk-chip · 标签 / 药丸
   ------------------------------------------------------------------------- */
.ndk-chip {
    font-size: var(--fs-micro);
    font-weight: 600;
    padding: 3px 10px;
    border-radius: var(--ndk-r-sm);
    background: #F1F5F9;
    border: 1px solid #E2E8F0;
    color: #334155;
    letter-spacing: 0.1px;
    white-space: nowrap;
    display: inline-flex;
    align-items: center;
    gap: 4px;
}
.ndk-chip.is-pill { border-radius: var(--ndk-r-pill); }
.ndk-chip.tone-blue   { background: var(--ndk-blue-soft);   border-color: var(--ndk-blue-line);   color: var(--ndk-blue-ink); }
.ndk-chip.tone-cyan   { background: var(--ndk-cyan-soft);   border-color: var(--ndk-cyan-line);   color: var(--ndk-cyan-ink); }
.ndk-chip.tone-green  { background: var(--ndk-green-soft);  border-color: var(--ndk-green-line);  color: var(--ndk-green-ink); }
.ndk-chip.tone-purple { background: var(--ndk-purple-soft); border-color: var(--ndk-purple-line); color: var(--ndk-purple-ink); }
.ndk-chip.tone-orange { background: var(--ndk-orange-soft); border-color: var(--ndk-orange-line); color: var(--ndk-orange-ink); }
.ndk-chip.tone-slate  { background: var(--ndk-slate-soft);  border-color: var(--ndk-slate-line);  color: var(--ndk-slate-ink); }

/* 无 tone 的 chip 自动继承父 ndk-card 的 tone 变量 */
.ndk-card .ndk-chip:not([class*="tone-"]) {
    background: var(--ndk-tone-soft);
    border-color: var(--ndk-tone-line);
    color: var(--ndk-tone-ink);
}

/* -------------------------------------------------------------------------
   ndk-num · 步骤标号 / 小图章（可选）
   ------------------------------------------------------------------------- */
.ndk-num {
    width: 28px;
    height: 28px;
    border-radius: var(--ndk-r-sm);
    display: inline-flex;
    align-items: center;
    justify-content: center;
    color: white;
    font-family: 'Inter', sans-serif;
    font-size: var(--fs-small);
    font-weight: 800;
    letter-spacing: 0.3px;
    flex-shrink: 0;
    background: linear-gradient(135deg, var(--ndk-tone-a, var(--ndk-blue-a)), var(--ndk-tone-b, var(--ndk-blue-b)));
    box-shadow: 0 4px 10px rgba(15, 23, 42, 0.15);
}
.ndk-num.tone-blue   { --ndk-tone-a: var(--ndk-blue-a);   --ndk-tone-b: var(--ndk-blue-b); }
.ndk-num.tone-cyan   { --ndk-tone-a: var(--ndk-cyan-a);   --ndk-tone-b: var(--ndk-cyan-b); }
.ndk-num.tone-green  { --ndk-tone-a: var(--ndk-green-a);  --ndk-tone-b: var(--ndk-green-b); }
.ndk-num.tone-purple { --ndk-tone-a: var(--ndk-purple-a); --ndk-tone-b: var(--ndk-purple-b); }
.ndk-num.tone-orange { --ndk-tone-a: var(--ndk-orange-a); --ndk-tone-b: var(--ndk-orange-b); }
.ndk-num.tone-slate  { --ndk-tone-a: var(--ndk-slate-a);  --ndk-tone-b: var(--ndk-slate-b); }
.ndk-num.is-sm { width: 22px; height: 22px; font-size: var(--fs-micro); }
.ndk-num.is-lg { width: 40px; height: 40px; font-size: var(--fs-h3); border-radius: 11px; }

/* -------------------------------------------------------------------------
   Grid helpers · 常用列数（灵活套用在任何 .ndk-card 或页面私有卡类）
   ------------------------------------------------------------------------- */
.ndk-grid-2 { display: grid; grid-template-columns: repeat(2, 1fr); gap: 12px; flex: 1; min-height: 0; }
.ndk-grid-3 { display: grid; grid-template-columns: repeat(3, 1fr); gap: 12px; flex: 1; min-height: 0; }
.ndk-grid-4 { display: grid; grid-template-columns: repeat(4, 1fr); gap: 12px; flex: 1; min-height: 0; }
.ndk-grid-5 { display: grid; grid-template-columns: repeat(5, 1fr); gap: 12px; flex: 1; min-height: 0; }
.ndk-grid-6 { display: grid; grid-template-columns: repeat(6, 1fr); gap: 12px; flex: 1; min-height: 0; }

/* ==========================================================================
   05 · Apple 全局视觉收口层 · Apple Global Cohesion
   --------------------------------------------------------------------------
   一键全局启用：所有 new-deck 页面都已链接 extra.css，因此本层不改 DOM、
   不改排版，只用更高选择器权重收口各页自定义 card / panel / tag / icon
   的颜色、边框、阴影和 SVG 饱和度。
   ========================================================================== */
:root {
    --ndk-apple-label: #1D1D1F;
    --ndk-apple-secondary-label: #3C3C43;
    --ndk-apple-tertiary-label: #86868B;
    --ndk-apple-separator: rgba(60, 60, 67, 0.16);
    --ndk-apple-fill: rgba(120, 120, 128, 0.08);
    --ndk-apple-highlight: #FFD60A;
}

body .dynamic-bg {
    background:
        radial-gradient(68% 58% at 12% 4%, rgba(88, 86, 214, 0.11), transparent 62%),
        radial-gradient(62% 58% at 88% 90%, rgba(0, 122, 255, 0.1), transparent 64%),
        linear-gradient(180deg, #FBFBFD 0%, #F5F5F7 100%);
}

body .color-blob {
    opacity: 0.32;
    filter: blur(132px);
}

body .blob-purple { background: rgba(88, 86, 214, 0.2); }
body .blob-blue { background: rgba(0, 122, 255, 0.18); }

.slides-container .strategic-slide .content-layout .ndk-card,
.slides-container .strategic-slide .content-layout :is(
    [class$="-card"], [class*="-card "],
    [class$="-panel"], [class*="-panel "],
    [class$="-banner"], [class*="-banner "],
    [class$="-box"], [class*="-box "],
    [class$="-block"], [class*="-block "],
    [class$="-example"], [class*="-example "]
):not(.code-panel):not(.ndk-conclusion-band) {
    background: var(--ndk-card-bg);
    border: 1px solid var(--ndk-card-border);
    box-shadow: var(--ndk-sh-card);
    color: var(--ndk-apple-label);
}

.slides-container .strategic-slide .content-layout :is(
    [class$="-card"], [class*="-card "],
    [class$="-panel"], [class*="-panel "],
    [class$="-banner"], [class*="-banner "],
    [class$="-box"], [class*="-box "],
    [class$="-block"], [class*="-block "],
    [class$="-example"], [class*="-example "]
):not(.code-panel):not(.ndk-conclusion-band)::before {
    background: linear-gradient(90deg, var(--ndk-tone-a, var(--ndk-blue-a)), var(--ndk-tone-b, var(--ndk-purple-b)));
}

.slides-container .strategic-slide .content-layout :is(
    .tone-blue, .tone-1, .row-classify, .panel-info
) {
    --ndk-tone-a: var(--ndk-blue-a);
    --ndk-tone-b: var(--ndk-blue-b);
    --ndk-tone-ink: var(--ndk-blue-ink);
    --ndk-tone-soft: var(--ndk-blue-soft);
    --ndk-tone-line: var(--ndk-blue-line);
}

.slides-container .strategic-slide .content-layout :is(
    .tone-cyan, .tone-2, .row-predict
) {
    --ndk-tone-a: var(--ndk-cyan-a);
    --ndk-tone-b: var(--ndk-cyan-b);
    --ndk-tone-ink: var(--ndk-cyan-ink);
    --ndk-tone-soft: var(--ndk-cyan-soft);
    --ndk-tone-line: var(--ndk-cyan-line);
}

.slides-container .strategic-slide .content-layout :is(
    .tone-green, .tone-3, .ex-good, .panel-pros, .row-execute
) {
    --ndk-tone-a: var(--ndk-green-a);
    --ndk-tone-b: var(--ndk-green-b);
    --ndk-tone-ink: var(--ndk-green-ink);
    --ndk-tone-soft: var(--ndk-green-soft);
    --ndk-tone-line: var(--ndk-green-line);
}

.slides-container .strategic-slide .content-layout :is(
    .tone-purple, .tone-4, .row-generate, .agent
) {
    --ndk-tone-a: var(--ndk-purple-a);
    --ndk-tone-b: var(--ndk-purple-b);
    --ndk-tone-ink: var(--ndk-purple-ink);
    --ndk-tone-soft: var(--ndk-purple-soft);
    --ndk-tone-line: var(--ndk-purple-line);
}

.slides-container .strategic-slide .content-layout :is(
    .tone-orange, .tone-5, .ex-bad, .panel-cons, .row-optimize, .old
) {
    --ndk-tone-a: var(--ndk-orange-a);
    --ndk-tone-b: var(--ndk-orange-b);
    --ndk-tone-ink: var(--ndk-orange-ink);
    --ndk-tone-soft: var(--ndk-orange-soft);
    --ndk-tone-line: var(--ndk-orange-line);
}

.slides-container .strategic-slide .content-layout :is(
    .tone-slate, .tone-6, .panel-entry, .manual
) {
    --ndk-tone-a: var(--ndk-slate-a);
    --ndk-tone-b: var(--ndk-slate-b);
    --ndk-tone-ink: var(--ndk-slate-ink);
    --ndk-tone-soft: var(--ndk-slate-soft);
    --ndk-tone-line: var(--ndk-slate-line);
}

.slides-container .strategic-slide .content-layout :is(
    [class$="-title"], [class*="-title "],
    [class$="-heading"], [class*="-heading "],
    [class$="-name"], [class*="-name "],
    [class$="-value"], [class*="-value "]
):not(.main-title):not(.tool-name) {
    color: var(--ndk-apple-label);
}

.slides-container .strategic-slide .content-layout :is(
    [class$="-text"], [class*="-text "],
    [class$="-desc"], [class*="-desc "],
    [class$="-body"], [class*="-body "],
    [class$="-sub"], [class*="-sub "],
    [class$="-note"], [class*="-note "],
    [class$="-caption"], [class*="-caption "]
):not(.ndk-conclusion-text):not(.tool-tagline) {
    color: var(--ndk-apple-secondary-label);
}

.slides-container .strategic-slide .content-layout :is(
    [class$="-card"], [class*="-card "],
    [class$="-panel"], [class*="-panel "],
    [class$="-box"], [class*="-box "],
    [class$="-block"], [class*="-block "]
) strong {
    color: var(--ndk-apple-label);
}

.slides-container .strategic-slide .content-layout :is(
    [class$="-tag"], [class*="-tag "],
    [class$="-pill"], [class*="-pill "],
    [class$="-chip"], [class*="-chip "],
    [class$="-badge"], [class*="-badge "],
    [class$="-state"], [class*="-state "],
    [class$="-brand"], [class*="-brand "]
):not(.ndk-conclusion-badge) {
    background: var(--ndk-tone-soft, var(--ndk-blue-soft));
    border: 1px solid var(--ndk-tone-line, var(--ndk-blue-line));
    color: var(--ndk-tone-ink, var(--ndk-blue-ink));
}

.slides-container .strategic-slide .content-layout :is(
    [class$="-icon"], [class*="-icon "],
    [class$="-ic"], [class*="-ic "],
    [class$="-num"], [class*="-num "]
):not(.slide-counter):not(.ability-num):not(.limit-num) {
    background: linear-gradient(135deg, var(--ndk-tone-a, var(--ndk-blue-a)), var(--ndk-tone-b, var(--ndk-purple-b)));
    color: #FFFFFF;
    box-shadow: 0 6px 14px rgba(0, 0, 0, 0.12);
}

.slides-container .strategic-slide .content-layout :is(
    [class$="-icon"], [class*="-icon "],
    [class$="-ic"], [class*="-ic "],
    [class$="-num"], [class*="-num "]
) svg {
    filter: none;
}

/* 内容区第一行统一为 sample 的主张带风格。保留页面私有类只作为布局钩子。 */
.slides-container .strategic-slide .content-layout > .layer-2 > :is(
    .ndk-hero-band,
    .data-intro,
    .ml-intro,
    .dl-intro,
    .cnn-intro,
    .trad-intro,
    .tool-intro,
    .usecase-intro,
    .warn-banner,
    .core-claim,
    .role-banner,
    .fm-core,
    .learn-thesis,
    .tool-hero,
    .ch2-timeline-hint,
    .fail-legend,
    .case-banner
) {
    position: relative;
    border-radius: var(--ndk-r-lg);
    background:
        radial-gradient(120% 140% at 0% 0%, rgba(88, 86, 214, 0.22) 0%, transparent 55%),
        linear-gradient(180deg, var(--ndk-hero-base-1), var(--ndk-hero-base-2));
    border: 1px solid rgba(255, 255, 255, 0.1);
    box-shadow: var(--ndk-sh-band);
    color: #FFFFFF;
    overflow: hidden;
}

.slides-container .strategic-slide .content-layout > .layer-2 > :is(
    .data-intro,
    .ml-intro,
    .dl-intro,
    .cnn-intro,
    .trad-intro,
    .tool-intro,
    .usecase-intro,
    .warn-banner,
    .core-claim,
    .role-banner,
    .fm-core,
    .ch2-timeline-hint,
    .fail-legend,
    .case-banner
) {
    padding: 14px 22px;
}

.slides-container .strategic-slide .content-layout > .layer-2 > :is(
    .data-intro,
    .ml-intro,
    .dl-intro,
    .cnn-intro,
    .trad-intro,
    .tool-intro,
    .usecase-intro,
    .warn-banner,
    .core-claim,
    .fm-core,
    .ch2-timeline-hint,
    .case-banner
) {
    display: flex;
    align-items: center;
    gap: 18px;
    flex-shrink: 0;
}

.slides-container .strategic-slide .content-layout > .layer-2 > :is(
    .warn-banner,
    .core-claim,
    .role-banner,
    .tool-hero,
    .case-banner
)::before {
    display: none;
}

.slides-container .strategic-slide .content-layout > .layer-2 > :is(
    .data-intro,
    .ml-intro,
    .dl-intro,
    .cnn-intro,
    .trad-intro,
    .tool-intro,
    .usecase-intro,
    .warn-banner,
    .core-claim,
    .role-banner,
    .fm-core,
    .learn-thesis,
    .ch2-timeline-hint,
    .fail-legend,
    .case-banner
) :is(
    [class$="-kicker"], [class*="-kicker "],
    [class$="-label"], [class*="-label "],
    [class$="-tag"], [class*="-tag "],
    .fm-core-tag
) {
    background: transparent;
    border: 0;
    border-right: 1px solid rgba(255, 255, 255, 0.2);
    border-radius: 0;
    color: rgba(229, 235, 255, 0.9);
    font-size: var(--fs-small);
    font-weight: 800;
    letter-spacing: 1.1px;
    text-transform: uppercase;
    padding: 0 18px 0 0;
    white-space: nowrap;
    box-shadow: none;
}

.slides-container .strategic-slide .content-layout > .layer-2 > .learn-thesis .learn-thesis-kicker {
    border-right: 1px solid rgba(255, 255, 255, 0.2);
    padding-right: 18px;
}

.slides-container .strategic-slide .content-layout > .layer-2 > .learn-thesis .learn-thesis-kicker :is(.learn-thesis-label, .learn-thesis-meta) {
    border-right: 0;
    padding-right: 0;
}

.slides-container .strategic-slide .content-layout > .layer-2 > :is(
    .data-intro,
    .ml-intro,
    .dl-intro,
    .cnn-intro,
    .trad-intro,
    .tool-intro,
    .usecase-intro,
    .warn-banner,
    .core-claim,
    .role-banner,
    .fm-core,
    .learn-thesis,
    .tool-hero,
    .ch2-timeline-hint,
    .fail-legend,
    .case-banner
) :is(
    [class$="-text"], [class*="-text "],
    [class$="-body"], [class*="-body "],
    [class$="-meta"], [class*="-meta "],
    [class$="-tagline"], [class*="-tagline "],
    [class$="-vendor"], [class*="-vendor "],
    .fm-core-body
) {
    color: rgba(255, 255, 255, 0.92);
}

.slides-container .strategic-slide .content-layout > .layer-2 > :is(
    .data-intro,
    .ml-intro,
    .dl-intro,
    .cnn-intro,
    .trad-intro,
    .tool-intro,
    .usecase-intro,
    .warn-banner,
    .core-claim,
    .role-banner,
    .fm-core,
    .learn-thesis,
    .tool-hero,
    .ch2-timeline-hint,
    .fail-legend,
    .case-banner
) strong {
    color: var(--ndk-apple-highlight);
}

.slides-container .strategic-slide .content-layout > .layer-2 > .tool-hero :is(.tool-logo, .tool-meta-item) {
    background: rgba(255, 255, 255, 0.12);
    border: 1px solid rgba(255, 255, 255, 0.18);
    color: #FFFFFF;
}

.slides-container .strategic-slide .content-layout > .layer-2 > .tool-hero :is(.tool-name, .tool-meta-value) {
    color: #FFFFFF;
}

.slides-container .strategic-slide .content-layout > .layer-2 > .learn-thesis .learn-thesis-node {
    background: rgba(255, 255, 255, 0.1);
    border: 1px solid rgba(255, 255, 255, 0.16);
    box-shadow: none;
}

.slides-container .strategic-slide .content-layout > .layer-2 > .learn-thesis .learn-thesis-node.highlight {
    background: rgba(255, 255, 255, 0.16);
    border-color: rgba(255, 255, 255, 0.24);
}

.slides-container .strategic-slide .content-layout > .layer-2 > .learn-thesis :is(.learn-node-text, .learn-node-sub) {
    color: rgba(255, 255, 255, 0.92);
}

.slides-container .strategic-slide .content-layout > .layer-2 > .learn-thesis .learn-node-tag {
    color: var(--ndk-apple-highlight);
}

.slides-container .strategic-slide .content-layout > .layer-2 > :is(.ch2-timeline-hint, .fail-legend, .case-banner) :is(
    [class$="-pill"], [class*="-pill "],
    [class$="-label"], [class*="-label "],
    [class$="-note"], [class*="-note "]
) {
    background: rgba(255, 255, 255, 0.1);
    border: 1px solid rgba(255, 255, 255, 0.16);
    color: rgba(255, 255, 255, 0.9);
}

.slides-container .strategic-slide .content-layout > .layer-2 > .ch2-timeline-hint .ch2-tl-arrow {
    color: rgba(255, 255, 255, 0.42);
}

/* ==========================================================================
   06 · 单一色系锁定层 · One Apple Colorway Lock
   --------------------------------------------------------------------------
   用户要求：每一页色系必须一样。这里把所有 tone 名称收敛到同一套
   Apple blue → indigo 色系；tone-blue / cyan / green / orange / purple /
   slate 只保留为语义 class，不再改变页面色相。
   ========================================================================== */
:root {
    --ndk-brand-a: #007AFF;
    --ndk-brand-b: #5856D6;
    --ndk-brand-ink: #0057D9;
    --ndk-brand-soft: rgba(0, 122, 255, 0.08);
    --ndk-brand-line: rgba(0, 122, 255, 0.2);
    --ndk-brand-tint: rgba(0, 122, 255, 0.2);
    --ndk-svg-fill: rgba(0, 122, 255, 0.16);
    --ndk-svg-stroke: rgba(0, 122, 255, 0.72);

    --ai-blue: var(--ndk-brand-a);
    --ai-green: var(--ndk-brand-a);
    --ai-orange: var(--ndk-brand-a);
    --ai-red: var(--ndk-brand-b);

    --ndk-blue-a: var(--ndk-brand-a);
    --ndk-blue-b: var(--ndk-brand-b);
    --ndk-blue-ink: var(--ndk-brand-ink);
    --ndk-blue-soft: var(--ndk-brand-soft);
    --ndk-blue-line: var(--ndk-brand-line);

    --ndk-cyan-a: var(--ndk-brand-a);
    --ndk-cyan-b: var(--ndk-brand-b);
    --ndk-cyan-ink: var(--ndk-brand-ink);
    --ndk-cyan-soft: var(--ndk-brand-soft);
    --ndk-cyan-line: var(--ndk-brand-line);

    --ndk-green-a: var(--ndk-brand-a);
    --ndk-green-b: var(--ndk-brand-b);
    --ndk-green-ink: var(--ndk-brand-ink);
    --ndk-green-soft: var(--ndk-brand-soft);
    --ndk-green-line: var(--ndk-brand-line);

    --ndk-purple-a: var(--ndk-brand-a);
    --ndk-purple-b: var(--ndk-brand-b);
    --ndk-purple-ink: var(--ndk-brand-ink);
    --ndk-purple-soft: var(--ndk-brand-soft);
    --ndk-purple-line: var(--ndk-brand-line);

    --ndk-orange-a: var(--ndk-brand-a);
    --ndk-orange-b: var(--ndk-brand-b);
    --ndk-orange-ink: var(--ndk-brand-ink);
    --ndk-orange-soft: var(--ndk-brand-soft);
    --ndk-orange-line: var(--ndk-brand-line);

    --ndk-slate-a: var(--ndk-brand-a);
    --ndk-slate-b: var(--ndk-brand-b);
    --ndk-slate-ink: var(--ndk-brand-ink);
    --ndk-slate-soft: var(--ndk-brand-soft);
    --ndk-slate-line: var(--ndk-brand-line);

    --ndk-accent-a: var(--ndk-brand-a);
    --ndk-accent-b: var(--ndk-brand-b);
    --ndk-hero-1: var(--ndk-brand-b);
    --ndk-hero-2: var(--ndk-brand-a);
    --ndk-hero-3: #AF52DE;
}

.slides-container .strategic-slide .content-layout :is(
    .tone-blue, .tone-cyan, .tone-green, .tone-purple, .tone-orange, .tone-slate,
    .tone-1, .tone-2, .tone-3, .tone-4, .tone-5, .tone-6,
    .col-1, .col-2, .col-3,
    .row-classify, .row-predict, .row-generate, .row-optimize, .row-execute,
    .old, .new, .manual, .agent,
    .panel-pros, .panel-cons, .panel-entry,
    .ex-bad, .ex-good
) {
    --ndk-tone-a: var(--ndk-brand-a);
    --ndk-tone-b: var(--ndk-brand-b);
    --ndk-tone-ink: var(--ndk-brand-ink);
    --ndk-tone-soft: var(--ndk-brand-soft);
    --ndk-tone-line: var(--ndk-brand-line);

    --ab-a: var(--ndk-brand-a);
    --ab-b: var(--ndk-brand-b);
    --ac: var(--ndk-brand-a);
    --ac-a: var(--ndk-brand-a);
    --ac-b: var(--ndk-brand-b);
    --ac-soft: var(--ndk-brand-soft);
    --ac-line: var(--ndk-brand-line);
    --bc: var(--ndk-brand-a);
    --bi-a: var(--ndk-brand-a);
    --bi-b: var(--ndk-brand-b);
    --ce-a: var(--ndk-brand-a);
    --ce-b: var(--ndk-brand-b);
    --ce-soft: var(--ndk-brand-soft);
    --ce-line: var(--ndk-brand-line);
    --col-a: var(--ndk-brand-a);
    --col-b: var(--ndk-brand-b);
    --dc-a: var(--ndk-brand-a);
    --dc-b: var(--ndk-brand-b);
    --dc-soft: var(--ndk-brand-soft);
    --dc-line: var(--ndk-brand-line);
    --dlc: var(--ndk-brand-a);
    --ep-a: var(--ndk-brand-a);
    --ep-b: var(--ndk-brand-b);
    --fc-a: var(--ndk-brand-a);
    --fc-b: var(--ndk-brand-b);
    --fc-soft: var(--ndk-brand-soft);
    --fc-line: var(--ndk-brand-line);
    --fr-a: var(--ndk-brand-a);
    --fr-b: var(--ndk-brand-b);
    --fr-soft: var(--ndk-brand-soft);
    --hc: var(--ndk-brand-a);
    --ld-a: var(--ndk-brand-a);
    --ld-b: var(--ndk-brand-b);
    --ld-ink: var(--ndk-brand-ink);
    --ld-soft: var(--ndk-brand-soft);
    --ld-line: var(--ndk-brand-line);
    --ll-a: var(--ndk-brand-a);
    --ll-b: var(--ndk-brand-b);
    --ll-soft: var(--ndk-brand-soft);
    --ll-line: var(--ndk-brand-line);
    --ps-a: var(--ndk-brand-a);
    --ps-b: var(--ndk-brand-b);
    --rc: var(--ndk-brand-a);
    --rc-a: var(--ndk-brand-a);
    --rc-b: var(--ndk-brand-b);
    --rc-soft: var(--ndk-brand-soft);
    --sc-a: var(--ndk-brand-a);
    --sc-b: var(--ndk-brand-b);
    --sc-soft: var(--ndk-brand-soft);
    --sc-line: var(--ndk-brand-line);
    --sk-a: var(--ndk-brand-a);
    --sk-b: var(--ndk-brand-b);
    --sk-soft: var(--ndk-brand-soft);
    --sk-line: var(--ndk-brand-line);
    --sp-a: var(--ndk-brand-a);
    --sp-b: var(--ndk-brand-b);
    --sym: var(--ndk-brand-a);
    --tc-a: var(--ndk-brand-a);
    --tc-b: var(--ndk-brand-b);
    --tml-bar-a: var(--ndk-brand-a);
    --tml-bar-b: var(--ndk-brand-b);
    --tone: var(--ndk-brand-a);
    --tone-b: var(--ndk-brand-b);
    --tone-strong: var(--ndk-brand-ink);
    --tone-soft: var(--ndk-brand-soft);
    --tone-border: var(--ndk-brand-line);
    --tp-a: var(--ndk-brand-a);
    --tp-b: var(--ndk-brand-b);
    --uc-a: var(--ndk-brand-a);
    --uc-b: var(--ndk-brand-b);
    --uc-soft-bg: var(--ndk-brand-soft);
    --uc-line-bg: var(--ndk-brand-line);
    --vc: var(--ndk-brand-a);
    --vc-a: var(--ndk-brand-a);
    --vc-b: var(--ndk-brand-b);
    --ws-a: var(--ndk-brand-a);
    --ws-b: var(--ndk-brand-b);
    --ws-soft: var(--ndk-brand-soft);
    --ws-line: var(--ndk-brand-line);
}

.slides-container .strategic-slide .content-layout :is(.ndk-hero-band, [class$="-intro"], [class*="-intro "], [class$="-banner"], [class*="-banner "], [class$="-claim"], [class*="-claim "], .learn-thesis, .fm-core, .tool-hero) {
    --ndk-hero-tint: var(--ndk-brand-tint);
}

.slides-container .strategic-slide .content-layout :is(
    [class$="-tag"], [class*="-tag "],
    [class$="-pill"], [class*="-pill "],
    [class$="-chip"], [class*="-chip "],
    [class$="-badge"], [class*="-badge "],
    [class$="-state"], [class*="-state "],
    [class$="-brand"], [class*="-brand "]
):not(.ndk-conclusion-badge) {
    background: var(--ndk-brand-soft);
    border-color: var(--ndk-brand-line);
    color: var(--ndk-brand-ink);
}

.slides-container .strategic-slide .content-layout :is(
    [class$="-icon"], [class*="-icon "],
    [class$="-ic"], [class*="-ic "],
    [class$="-num"], [class*="-num "]
):not(.slide-counter) {
    background: linear-gradient(135deg, var(--ndk-brand-a), var(--ndk-brand-b));
}

.slides-container .strategic-slide .content-layout :is(
    [class$="-icon"], [class*="-icon "],
    [class$="-ic"], [class*="-ic "],
    [class$="-num"], [class*="-num "],
    .tool-logo
) svg [stroke]:not([stroke="none"]) {
    stroke: #FFFFFF;
}

.slides-container .strategic-slide .content-layout :is(
    [class$="-icon"], [class*="-icon "],
    [class$="-ic"], [class*="-ic "],
    [class$="-num"], [class*="-num "],
    .tool-logo
) svg [fill]:not([fill="none"]) {
    fill: #FFFFFF;
}

/* ==========================================================================
   07 · 文字颜色与对比锁定 · Text Contrast Lock
   --------------------------------------------------------------------------
   白底区域：Apple label / secondary / tertiary 三档。
   深色主张带：白字 / 浅灰字 / 黄色强调。
   这一层只管颜色，不改变排版。
   ========================================================================== */
.slides-container .strategic-slide :is(.eyebrow, .main-title, .sub-title) {
    text-shadow: none;
}

.slides-container .strategic-slide .eyebrow {
    color: var(--ndk-brand-b);
}

.slides-container .strategic-slide .main-title {
    color: var(--ndk-apple-label);
}

.slides-container .strategic-slide .sub-title {
    color: var(--ndk-apple-secondary-label);
}

.slides-container .strategic-slide .sub-title strong {
    color: var(--ndk-apple-label);
}

.slides-container .strategic-slide .content-layout :is(
    p, li,
    [class$="-text"], [class*="-text "],
    [class$="-desc"], [class*="-desc "],
    [class$="-body"], [class*="-body "],
    [class$="-note"], [class*="-note "],
    [class$="-caption"], [class*="-caption "]
):not(.ndk-conclusion-text):not(.tool-tagline) {
    color: var(--ndk-apple-secondary-label);
}

.slides-container .strategic-slide .content-layout :is(
    [class$="-title"], [class*="-title "],
    [class$="-heading"], [class*="-heading "],
    [class$="-name"], [class*="-name "],
    [class$="-value"], [class*="-value "],
    [class$="-big"], [class*="-big "]
):not(.main-title):not(.tool-name) {
    color: var(--ndk-apple-label);
}

.slides-container .strategic-slide .content-layout :is(
    [class$="-meta"], [class*="-meta "],
    [class$="-en"], [class*="-en "],
    [class$="-kicker"], [class*="-kicker "],
    [class$="-label"], [class*="-label "]
):not(.ndk-hero-kicker):not(.ndk-conclusion-badge) {
    color: var(--ndk-apple-tertiary-label);
}

.slides-container .strategic-slide .content-layout :is(.ndk-card, [class$="-card"], [class*="-card "], [class$="-panel"], [class*="-panel "]) strong {
    color: var(--ndk-apple-label);
}

.slides-container .strategic-slide .content-layout :is(.ndk-card-title, .ndk-card-body, .ndk-card-en) {
    color: inherit;
}

.slides-container .strategic-slide .content-layout .ndk-card-title {
    color: var(--ndk-apple-label);
}

.slides-container .strategic-slide .content-layout .ndk-card-body {
    color: var(--ndk-apple-secondary-label);
}

.slides-container .strategic-slide .content-layout .ndk-card-en {
    color: var(--ndk-apple-tertiary-label);
}

.slides-container .strategic-slide .content-layout .ndk-card-eyebrow {
    color: var(--ndk-brand-ink);
}

.slides-container .strategic-slide .content-layout > .layer-2 > :is(
    .ndk-hero-band,
    .data-intro,
    .ml-intro,
    .dl-intro,
    .cnn-intro,
    .trad-intro,
    .tool-intro,
    .usecase-intro,
    .warn-banner,
    .core-claim,
    .role-banner,
    .fm-core,
    .learn-thesis,
    .tool-hero,
    .ch2-timeline-hint,
    .fail-legend,
    .case-banner
) :is(
    p, li, span, div,
    [class$="-text"], [class*="-text "],
    [class$="-body"], [class*="-body "],
    [class$="-meta"], [class*="-meta "],
    [class$="-desc"], [class*="-desc "],
    [class$="-caption"], [class*="-caption "],
    [class$="-note"], [class*="-note "],
    [class$="-tagline"], [class*="-tagline "],
    [class$="-vendor"], [class*="-vendor "],
    .fm-core-body
) {
    color: rgba(255, 255, 255, 0.92);
}

.slides-container .strategic-slide .content-layout > .layer-2 > :is(
    .ndk-hero-band,
    .data-intro,
    .ml-intro,
    .dl-intro,
    .cnn-intro,
    .trad-intro,
    .tool-intro,
    .usecase-intro,
    .warn-banner,
    .core-claim,
    .role-banner,
    .fm-core,
    .learn-thesis,
    .tool-hero,
    .ch2-timeline-hint,
    .fail-legend,
    .case-banner
) :is(
    [class$="-kicker"], [class*="-kicker "],
    [class$="-label"], [class*="-label "],
    [class$="-tag"], [class*="-tag "],
    .fm-core-tag,
    .ndk-hero-kicker
) {
    color: rgba(229, 235, 255, 0.9);
}

.slides-container .strategic-slide .content-layout > .layer-2 > :is(
    .ndk-hero-band,
    .data-intro,
    .ml-intro,
    .dl-intro,
    .cnn-intro,
    .trad-intro,
    .tool-intro,
    .usecase-intro,
    .warn-banner,
    .core-claim,
    .role-banner,
    .fm-core,
    .learn-thesis,
    .tool-hero,
    .ch2-timeline-hint,
    .fail-legend,
    .case-banner
) :is(strong, .hl) {
    color: var(--ndk-apple-highlight);
}

.slides-container .strategic-slide .content-layout .ndk-conclusion-band :is(.ndk-conclusion-text, .ndk-conclusion-text span) {
    color: #F5F5F7;
}

.slides-container .strategic-slide .content-layout .ndk-conclusion-band .ndk-conclusion-badge {
    color: var(--ndk-conclusion-kicker);
}
.slides-container .strategic-slide .content-layout .ndk-conclusion-band strong {
    color: var(--ndk-apple-highlight);
}

.slides-container .strategic-slide .content-layout :is(
    [class$="-tag"], [class*="-tag "],
    [class$="-pill"], [class*="-pill "],
    [class$="-chip"], [class*="-chip "],
    [class$="-badge"], [class*="-badge "],
    [class$="-state"], [class*="-state "],
    [class$="-brand"], [class*="-brand "]
):not(.ndk-conclusion-badge) {
    color: var(--ndk-brand-ink);
}

/* ==========================================================================
   08 · 参考 16 页的条幅背景 · Reference Bands
   --------------------------------------------------------------------------
   顶部主张带参考第三章智能体对比页的
   .judgement-banner：深蓝 → 靛蓝渐变、白字、浅蓝 kicker、淡黄强调。
   底部结论带参考同页 .layer-3：深色玻璃底 + ai-gradient 左条。
   ========================================================================== */
:root {
    --ndk-band-bg: linear-gradient(135deg, #1E3A8A, #4338CA);
    --ndk-band-border: rgba(255, 255, 255, 0.22);
    --ndk-band-text: #FFFFFF;
    --ndk-band-muted: #FFFFFF;
    --ndk-band-kicker: rgba(219, 234, 254, 0.92);
    --ndk-band-label-bg: rgba(255, 255, 255, 0.1);
    --ndk-band-label-border: rgba(219, 234, 254, 0.24);
    --ndk-band-emphasis: #FDE68A;
    --ndk-conclusion-bg: rgba(29, 29, 31, 0.85);
    --ndk-conclusion-border: rgba(255, 255, 255, 0.08);
    --ndk-apple-highlight: var(--ndk-band-emphasis);
}

.slides-container .strategic-slide .content-layout :is(.ndk-hero-band),
.slides-container .strategic-slide .content-layout > .layer-2 > :is(
    .data-intro,
    .ml-intro,
    .dl-intro,
    .cnn-intro,
    .trad-intro,
    .tool-intro,
    .usecase-intro,
    .warn-banner,
    .core-claim,
    .role-banner,
    .fm-core,
    .learn-thesis,
    .tool-hero,
    .ch2-timeline-hint,
    .fail-legend,
    .case-banner
),
.slides-container .strategic-slide .content-layout .ndk-conclusion-band {
    background: var(--ndk-band-bg);
    border: 1px solid var(--ndk-band-border);
    box-shadow: 0 12px 26px rgba(67, 56, 202, 0.2);
    color: var(--ndk-band-text);
}

.slides-container .strategic-slide .content-layout .ndk-conclusion-band::before {
    background: var(--ai-gradient);
}

.slides-container .strategic-slide .content-layout .ndk-conclusion-band {
    background: var(--ndk-conclusion-bg);
    border-color: var(--ndk-conclusion-border);
    box-shadow: 0 15px 35px rgba(0, 0, 0, 0.15);
}

.slides-container .strategic-slide .content-layout :is(.ndk-hero-band) :is(.ndk-hero-text, .ndk-hero-text span),
.slides-container .strategic-slide .content-layout > .layer-2 > :is(
    .data-intro,
    .ml-intro,
    .dl-intro,
    .cnn-intro,
    .trad-intro,
    .tool-intro,
    .usecase-intro,
    .warn-banner,
    .core-claim,
    .role-banner,
    .fm-core,
    .learn-thesis,
    .tool-hero,
    .ch2-timeline-hint,
    .fail-legend,
    .case-banner
) :is(
    p, li, span, div,
    [class$="-text"], [class*="-text "],
    [class$="-body"], [class*="-body "],
    [class$="-meta"], [class*="-meta "],
    [class$="-desc"], [class*="-desc "],
    [class$="-caption"], [class*="-caption "],
    [class$="-note"], [class*="-note "],
    [class$="-tagline"], [class*="-tagline "],
    [class$="-vendor"], [class*="-vendor "],
    .fm-core-body
),
.slides-container .strategic-slide .content-layout .ndk-conclusion-band :is(.ndk-conclusion-text, .ndk-conclusion-text span) {
    color: var(--ndk-band-muted);
}

.slides-container .strategic-slide .content-layout :is(.ndk-hero-band) :is(.ndk-hero-kicker),
.slides-container .strategic-slide .content-layout > .layer-2 > :is(
    .data-intro,
    .ml-intro,
    .dl-intro,
    .cnn-intro,
    .trad-intro,
    .tool-intro,
    .usecase-intro,
    .warn-banner,
    .core-claim,
    .role-banner,
    .fm-core,
    .learn-thesis,
    .tool-hero,
    .ch2-timeline-hint,
    .fail-legend,
    .case-banner
) :is(
    [class$="-kicker"], [class*="-kicker "],
    [class$="-label"], [class*="-label "],
    [class$="-tag"], [class*="-tag "],
    .fm-core-tag
) {
    color: var(--ndk-conclusion-kicker);
}

.slides-container .strategic-slide .content-layout .ndk-conclusion-band .ndk-conclusion-badge {
    color: var(--ndk-conclusion-kicker);
    border-right-color: rgba(255, 255, 255, 0.18);
}

.slides-container .strategic-slide .content-layout :is(.ndk-hero-band) :is(strong, .hl),
.slides-container .strategic-slide .content-layout > .layer-2 > :is(
    .data-intro,
    .ml-intro,
    .dl-intro,
    .cnn-intro,
    .trad-intro,
    .tool-intro,
    .usecase-intro,
    .warn-banner,
    .core-claim,
    .role-banner,
    .fm-core,
    .learn-thesis,
    .tool-hero,
    .ch2-timeline-hint,
    .fail-legend,
    .case-banner
) :is(strong, .hl),
.slides-container .strategic-slide .content-layout .ndk-conclusion-band strong {
    color: var(--ndk-band-emphasis);
    -webkit-text-fill-color: currentColor;
    background: none;
}

.slides-container .strategic-slide .content-layout > .layer-2 > .tool-hero :is(.tool-logo, .tool-meta-item),
.slides-container .strategic-slide .content-layout > .layer-2 > .learn-thesis .learn-thesis-node,
.slides-container .strategic-slide .content-layout > .layer-2 > .ch2-timeline-hint :is(.ch2-tl-pill, .ch2-tl-note),
.slides-container .strategic-slide .content-layout > .layer-2 > .fail-legend .legend-label {
    background: rgba(255, 255, 255, 0.1);
    border: 1px solid rgba(219, 234, 254, 0.18);
    color: rgba(255, 255, 255, 0.92);
}

.slides-container .strategic-slide .content-layout > .layer-2 > :is(
    .ndk-hero-band,
    .data-intro,
    .ml-intro,
    .dl-intro,
    .cnn-intro,
    .trad-intro,
    .tool-intro,
    .usecase-intro,
    .warn-banner,
    .core-claim,
    .role-banner,
    .fm-core,
    .learn-thesis,
    .tool-hero,
    .ch2-timeline-hint,
    .fail-legend,
    .case-banner
) :is(strong, .hl),
.slides-container .strategic-slide .content-layout .ndk-conclusion-band :is(strong, .ndk-conclusion-text strong) {
    color: var(--ndk-band-emphasis);
    -webkit-text-fill-color: var(--ndk-band-emphasis);
    background: none;
}

/* 修正：不要把普通编号 / 说明文本渲染成色条。 */
.slides-container .strategic-slide .content-layout :is(.ability-num, .limit-num, .ch2-tl-note) {
    background: transparent;
    border: 0;
    box-shadow: none;
}

.slides-container .strategic-slide .content-layout .ability-num {
    color: var(--ndk-apple-tertiary-label);
}

.slides-container .strategic-slide .content-layout .limit-num {
    color: var(--ndk-brand-ink);
}

.slides-container .strategic-slide .content-layout > .layer-2 > .ch2-timeline-hint .ch2-tl-note {
    background: transparent;
    border: 0;
    color: rgba(255, 255, 255, 0.86);
}

.slides-container .strategic-slide .content-layout > .layer-2 > .ch2-timeline-hint :is(.ch2-tl-pill) {
    background: rgba(255, 255, 255, 0.1);
    border-color: rgba(219, 234, 254, 0.18);
    color: rgba(255, 255, 255, 0.92);
}

.slides-container .strategic-slide .content-layout > .method-region.layer-2 > .warn-banner,
.slides-container .strategic-slide .content-layout > .layer-2 > .warn-banner {
    background: var(--ndk-band-bg);
    border: 1px solid var(--ndk-band-border);
    box-shadow: 0 12px 26px rgba(67, 56, 202, 0.2);
}

.slides-container .strategic-slide .content-layout > .method-region.layer-2 > .warn-banner :is(.warn-kicker, .warn-text),
.slides-container .strategic-slide .content-layout > .layer-2 > .warn-banner :is(.warn-kicker, .warn-text) {
    color: var(--ndk-band-kicker);
}

.slides-container .strategic-slide .content-layout > .method-region.layer-2 > .warn-banner .warn-text,
.slides-container .strategic-slide .content-layout > .layer-2 > .warn-banner .warn-text {
    color: var(--ndk-band-text);
}

.slides-container .strategic-slide .content-layout > .method-region.layer-2 > .warn-banner .warn-text strong,
.slides-container .strategic-slide .content-layout > .layer-2 > .warn-banner .warn-text strong {
    color: var(--ndk-band-emphasis);
    -webkit-text-fill-color: var(--ndk-band-emphasis);
}

/* -------------------------------------------------------------------------
   色条清理层：保留版式，只取消被全局规则误放大的文本底色/卡片装饰条。
   ------------------------------------------------------------------------- */
.slides-container .strategic-slide .content-layout :is(
    [class$="-card"], [class*="-card "],
    [class$="-panel"], [class*="-panel "],
    [class$="-row"], [class*="-row "],
    [class$="-layer"], [class*="-layer "],
    [class$="-segment"], [class*="-segment "],
    [class$="-example"], [class*="-example "],
    [class$="-item"], [class*="-item "]
):not(.code-panel):not(.ndk-conclusion-band)::before {
    background: transparent !important;
    box-shadow: none !important;
}

.slides-container .strategic-slide .content-layout :is(
    [class$="-num"], [class*="-num "]
):not(.ndk-num):not(.slide-counter) {
    background: transparent !important;
    border-color: transparent !important;
    box-shadow: none !important;
    color: var(--ndk-brand-ink) !important;
}

.slides-container .strategic-slide .content-layout :is(
    [class$="-num"], [class*="-num "]
):not(.ndk-num):not(.slide-counter)::before {
    background: transparent !important;
    border-color: transparent !important;
    box-shadow: none !important;
    color: var(--ndk-brand-ink) !important;
}

.slides-container .strategic-slide .content-layout :is(
    .ability-num,
    .limit-num,
    .p19-glossary-num,
    .tool-num,
    .tml-phase-num,
    .prompt-num,
    .dispatch-num,
    .role-num,
    .action-num,
    .scarce-num,
    .skill-num
) {
    align-self: flex-start !important;
    width: auto !important;
    min-width: 0 !important;
}

.slides-container .strategic-slide .content-layout :is(
    [class$="-tag"], [class*="-tag "],
    [class$="-chip"], [class*="-chip "],
    [class$="-pill"], [class*="-pill "],
    [class$="-badge"], [class*="-badge "],
    [class$="-brand"], [class*="-brand "]
):not(.ndk-conclusion-badge):not(.slide-counter) {
    background: var(--ndk-brand-soft) !important;
    border: 1px solid var(--ndk-brand-line) !important;
    box-shadow: none !important;
    color: var(--ndk-brand-ink) !important;
}

.slides-container .strategic-slide .content-layout :is(
    [class$="-strip"], [class*="-strip "]
) {
    background: var(--ndk-card-bg) !important;
    border-color: var(--ndk-card-border) !important;
    box-shadow: var(--ndk-sh-card) !important;
    color: var(--ndk-apple-label) !important;
}

.slides-container .strategic-slide .content-layout :is(
    .compare-pivot,
    [class$="-pivot"], [class*="-pivot "]
) {
    background: transparent !important;
    border-color: transparent !important;
    box-shadow: none !important;
    color: var(--ndk-brand-ink) !important;
}

.slides-container .strategic-slide .content-layout :is(
    .break-icon,
    .analysis-step-icon,
    .agent-step-icon,
    .support-icon,
    .model-icon
) {
    background: transparent !important;
    border: 1px solid var(--ndk-blue-line) !important;
    box-shadow: none !important;
    color: var(--ndk-brand-ink) !important;
}

/* 全局条幅锁定：所有内容区第一行使用同一参考页蓝靛条，避免页面私有背景回退成黑色/绿色。 */
.slides-container .strategic-slide .content-layout > .layer-2 > :is(
    .ndk-hero-band,
    .data-intro,
    .ml-intro,
    .dl-intro,
    .cnn-intro,
    .trad-intro,
    .tool-intro,
    .usecase-intro,
    .warn-banner,
    .core-claim,
    .role-banner,
    .fm-core,
    .learn-thesis,
    .tool-hero,
    .ch2-timeline-hint,
    .fail-legend,
    .case-banner
) {
    background: var(--ndk-band-bg) !important;
    border: 1px solid var(--ndk-band-border) !important;
    box-shadow: 0 12px 26px rgba(67, 56, 202, 0.2) !important;
    color: var(--ndk-band-text) !important;
}

.slides-container .strategic-slide .content-layout > .layer-2 > :is(
    .ndk-hero-band,
    .data-intro,
    .ml-intro,
    .dl-intro,
    .cnn-intro,
    .trad-intro,
    .tool-intro,
    .usecase-intro,
    .warn-banner,
    .core-claim,
    .role-banner,
    .fm-core,
    .learn-thesis,
    .tool-hero,
    .ch2-timeline-hint,
    .fail-legend,
    .case-banner
) :is(
    [class$="-label"], [class*="-label "],
    [class$="-tag"], [class*="-tag "],
    [class$="-chip"], [class*="-chip "],
    [class$="-pill"], [class*="-pill "],
    .fm-core-tag
) {
    background: var(--ndk-band-label-bg) !important;
    border: 1px solid var(--ndk-band-label-border) !important;
    box-shadow: none !important;
    color: var(--ndk-band-kicker) !important;
}

.slides-container .strategic-slide .content-layout > .layer-2 > :is(
    .ndk-hero-band,
    .data-intro,
    .ml-intro,
    .dl-intro,
    .cnn-intro,
    .trad-intro,
    .tool-intro,
    .usecase-intro,
    .warn-banner,
    .core-claim,
    .role-banner,
    .fm-core,
    .learn-thesis,
    .tool-hero,
    .ch2-timeline-hint,
    .fail-legend,
    .case-banner
) :is(
    .ndk-hero-kicker,
    [class$="-kicker"], [class*="-kicker "]
) {
    border-radius: 0 !important;
    padding: 3px 10px !important;
    white-space: nowrap;
}

/* -------------------------------------------------------------------------
   第一栏 kicker 统一风格（与 .ndk-conclusion-badge / One Line 同色）
   覆盖 layer-2 第一栏横条里「直接子级」的 leading kicker / fm-core-tag：
     - 去掉 chip 背景、边框、圆角、padding（由下方 !important 压过全局条幅）
     - 字色：--ndk-conclusion-kicker（#FFD60A）
     - ::after "｜" 与字同色（--ndk-conclusion-kicker）
   不含 .learn-thesis：其 .learn-thesis-kicker 为复合块（多行 label+meta），
   避免给容器加 ::after 或透明字破坏内部排版。
   ------------------------------------------------------------------------- */
.slides-container .strategic-slide .content-layout > .layer-2 > :is(
    .ndk-hero-band,
    .data-intro,
    .ml-intro,
    .dl-intro,
    .cnn-intro,
    .trad-intro,
    .tool-intro,
    .usecase-intro,
    .warn-banner,
    .core-claim,
    .role-banner,
    .fm-core,
    .tool-hero,
    .ch2-timeline-hint,
    .fail-legend,
    .case-banner
) > :is(
    [class$="-kicker"], [class*="-kicker "],
    .ndk-hero-kicker,
    .fm-core-tag
) {
    display: inline-flex !important;
    align-items: center;
    background: none !important;
    background-image: none !important;
    -webkit-background-clip: border-box !important;
    background-clip: border-box !important;
    -webkit-text-fill-color: var(--ndk-conclusion-kicker) !important;
    color: var(--ndk-conclusion-kicker) !important;
    border: none !important;
    box-shadow: none !important;
    border-radius: 0 !important;
    padding: 0 !important;
    font-weight: 800;
    letter-spacing: 1.2px;
    text-transform: uppercase;
    white-space: nowrap;
}

.slides-container .strategic-slide .content-layout > .layer-2 > :is(
    .ndk-hero-band,
    .data-intro,
    .ml-intro,
    .dl-intro,
    .cnn-intro,
    .trad-intro,
    .tool-intro,
    .usecase-intro,
    .warn-banner,
    .core-claim,
    .role-banner,
    .fm-core,
    .tool-hero,
    .ch2-timeline-hint,
    .fail-legend,
    .case-banner
) > :is(
    [class$="-kicker"], [class*="-kicker "],
    .ndk-hero-kicker,
    .fm-core-tag
)::after {
    content: "｜";
    margin: 0 2px 0 12px;
    font-weight: 300;
    letter-spacing: 0;
    color: var(--ndk-conclusion-kicker) !important;
    -webkit-text-fill-color: var(--ndk-conclusion-kicker) !important;
    background: none !important;
    background-image: none !important;
    -webkit-background-clip: border-box !important;
    background-clip: border-box !important;
    border: none !important;
    padding: 0 !important;
}

.slides-container .strategic-slide .content-layout > .layer-2 > .learn-thesis .learn-thesis-meta,
.slides-container .strategic-slide .content-layout > .layer-2 > :is(
    .ndk-hero-band,
    .data-intro,
    .ml-intro,
    .dl-intro,
    .cnn-intro,
    .trad-intro,
    .tool-intro,
    .usecase-intro,
    .warn-banner,
    .core-claim,
    .role-banner,
    .fm-core,
    .learn-thesis,
    .tool-hero,
    .ch2-timeline-hint,
    .fail-legend,
    .case-banner
) :is(strong, .hl) {
    color: var(--ndk-band-emphasis) !important;
    -webkit-text-fill-color: var(--ndk-band-emphasis) !important;
}

.slides-container .strategic-slide .content-layout > .layer-2 > .learn-thesis :is(.learn-node-text, .learn-node-sub) {
    color: #FFFFFF !important;
}

.slides-container .strategic-slide .content-layout > .layer-2 > .learn-thesis .learn-thesis-node.highlight :is(.learn-node-text, .learn-node-tag) {
    color: var(--ndk-band-emphasis) !important;
}

/* 表格式组件表头统一，不保留局部第一列黄色强调。 */
.slides-container .strategic-slide .content-layout .task-matrix .matrix-head {
    background: var(--ndk-band-bg) !important;
    color: var(--ndk-band-text) !important;
}

.slides-container .strategic-slide .content-layout .task-matrix .matrix-head > div,
.slides-container .strategic-slide .content-layout .task-matrix .matrix-head > div:first-child {
    color: var(--ndk-band-kicker) !important;
}

/* Kicker 是文字标签，不是 chip。禁止任何全域 chip/tag 规则给 *-kicker 套半透明矩形框。 */
.slides-container .strategic-slide .content-layout :is(
    [class$="-kicker"], [class*="-kicker "],
    .ndk-hero-kicker
):not(.ndk-conclusion-badge) {
    background: none !important;
    background-image: none !important;
    border: none !important;
    box-shadow: none !important;
}
