:root {
  --bg-deep: #e8e6ff;
  --bg-soft: #fbfaff;
  --text-main: #142c3b;
  --text-soft: #4a6a86;
  --brand-1: #0d9488;
  --brand-2: #0d9488;
  --brand-3: #0d9488;
  --brand-warm: #fb923c;
  --line-soft: rgba(43, 122, 90, 0.18);
  --shadow-soft: 0 18px 55px rgba(22, 49, 71, 0.12);
  --shadow-card: 0 10px 30px rgba(36, 76, 112, 0.1);
  /* 控制条占用的空间：默认 0（控制条改为右侧浮动，不再挤压幻灯片） */
  --deck-chrome: 0px;
}

body {
  margin: 0;
  background:
    radial-gradient(circle at 12% 18%, rgba(45, 108, 223, 0.16), transparent 24%),
    radial-gradient(circle at 86% 12%, rgba(111, 91, 255, 0.18), transparent 22%),
    radial-gradient(circle at 78% 78%, rgba(139, 92, 246, 0.14), transparent 22%),
    linear-gradient(135deg, #f4f2ff 0%, #eef4ff 48%, #faf7ff 100%);
}

.app {
  height: 100svh;
  overflow: hidden;
  display: flex;
  flex-direction: column;
  background:
    linear-gradient(180deg, rgba(255, 255, 255, 0.2), rgba(255, 255, 255, 0)),
    transparent;
  color: var(--text-main);
  font-family: "Segoe UI Variable", "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei UI", "Noto Sans SC",
    ui-sans-serif, system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
}

.deck {
  position: relative;
  flex: 1;
  min-height: 0;
  display: grid;
  place-items: center;
  padding: 8px 0;
  box-sizing: border-box;
}

.is-fullscreen,
:fullscreen,
:-webkit-full-screen {
  --deck-chrome: 0px;
}

.is-fullscreen .deck,
:fullscreen .deck,
:-webkit-full-screen .deck {
  padding: 0;
}

.slide {
  width: min(100vw - 16px, calc(100svh - var(--deck-chrome) - 16px) * 16 / 9);
  max-height: calc(100svh - var(--deck-chrome) - 16px);
  aspect-ratio: 16 / 9;
  height: 100%;
  padding: clamp(16px, 2.2vw, 32px);
  box-sizing: border-box;
  border-radius: 18px;
  background-color: #ffffff;
  background-image: linear-gradient(rgba(255, 255, 255, 0.82), rgba(255, 255, 255, 0.82)), url("./images/dianli2/slide10_bg.webp");
  background-size: cover;
  background-position: center;
  background-repeat: no-repeat;
  border: 1px solid rgba(151, 205, 228, 0.45);
  box-shadow: var(--shadow-soft);
  overflow: hidden;
  position: absolute;
  inset: auto;
  isolation: isolate;
  opacity: 0;
  transform: translateX(28px) scale(0.985);
  transition: opacity 220ms ease, transform 220ms ease;
  pointer-events: none;
  content-visibility: auto;
  contain-intrinsic-size: 1200px 675px;
}

.slide:focus-visible {
  outline: 3px solid rgba(45, 108, 223, 0.55);
  outline-offset: 3px;
}

.is-fullscreen .slide,
:fullscreen .slide,
:-webkit-full-screen .slide {
  width: min(calc(100vw - 32px), calc((100svh - var(--deck-chrome)) * 16 / 9));
}

.slide[data-id="init-align"] .figure {
  background: transparent;
  border: none;
  box-shadow: none;
  padding: 0;
}

.slide[data-id="init-align"] .figure img {
  box-shadow: none;
  border: none;
}

.slide[data-id="roi"] .figure {
  background: transparent;
  border: none;
  box-shadow: none;
  padding: 0;
}

.slide[data-id="roi"] .figure img {
  box-shadow: none;
  border: none;
}

.slide[data-id="results"] .figure {
  background: transparent;
  border: none;
  box-shadow: none;
  padding: 0;
}

.slide[data-id="results"] .figure img {
  box-shadow: none;
  border: none;
}

.slide[data-id="control-errors"] .media {
  height: calc(100% - 140px) !important;
}

.slide[data-id="control-errors"] .figure {
  background: transparent;
  border: none;
  box-shadow: none;
  padding: 0;
}

.slide[data-id="control-errors"] .figure img {
  box-shadow: none;
  border: none;
  max-height: 66vh !important;
}

.slide[data-id="step6-measure"] .media {
  height: calc(100% - 165px) !important;
  overflow: hidden;
}

/* ====== 步骤 5：定制化测量工具开发 · 2+1 紧凑布局 ====== */
.slide[data-id="step5-tools"] {
  display: flex;
  flex-direction: column;
}

.slide[data-id="step5-tools"] h2 {
  font-size: clamp(26px, 2.6vw, 34px);
  font-weight: 900;
  margin-bottom: 4px;
}

.slide[data-id="step5-tools"] .lead {
  font-size: 1.4rem;
  font-weight: 700;
  line-height: 1.5;
  color: var(--text-main);
  margin-bottom: 6px;
  max-width: 60em;
}

.slide[data-id="step5-tools"] .subhead--sm {
  font-size: 22px;
  font-weight: 800;
  color: #0d9488;
  margin-bottom: 4px;
  letter-spacing: 0.02em;
}

/* 2+1 grid：左列 1fr + 右列 1.3fr（右侧大图更突出） */
.slide[data-id="step5-tools"] .step5-grid {
  flex: 1 1 0;
  min-height: 0;
  display: grid;
  grid-template-columns: 1fr 1.3fr;
  gap: 16px;
  margin-top: 6px;
}

/* 左列：上下 2 块 */
.slide[data-id="step5-tools"] .step5-grid__left {
  min-height: 0;
  display: grid;
  grid-template-rows: 1fr 1fr;
  gap: 12px;
}

.slide[data-id="step5-tools"] .step5-cell {
  min-height: 0;
  display: flex;
  flex-direction: column;
  background: rgba(255, 255, 255, 0.82);
  border: 1px solid rgba(116, 172, 224, 0.30);
  border-radius: 14px;
  box-shadow: 0 8px 20px rgba(36, 76, 112, 0.10);
  padding: 6px 10px 8px;
  overflow: hidden;
}

.slide[data-id="step5-tools"] .step5-cell .figure {
  flex: 1 1 0;
  min-height: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  background: transparent;
  border: none;
  box-shadow: none;
  padding: 0;
}

.slide[data-id="step5-tools"] .step5-cell .figure img {
  width: 100%;
  height: 100%;
  max-width: 100%;
  max-height: 100%;
  object-fit: contain;
  border-radius: 8px;
  border: 1px solid rgba(0, 0, 0, 0.06);
}

/* 右列：1 张大图 */
.slide[data-id="step5-tools"] .step5-grid__right {
  min-height: 0;
  display: flex;
  flex-direction: column;
  background: linear-gradient(135deg, rgba(16, 185, 129, 0.08), rgba(45, 212, 191, 0.04));
  border: 1.5px solid rgba(16, 185, 129, 0.40);
  border-radius: 16px;
  box-shadow: 0 10px 26px rgba(36, 76, 112, 0.12);
  padding: 8px 12px;
  overflow: hidden;
}

.slide[data-id="step5-tools"] .step5-grid__right .figure {
  flex: 1 1 0;
  min-height: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  background: transparent;
  border: none;
  box-shadow: none;
  padding: 0;
}

.slide[data-id="step5-tools"] .step5-grid__right .figure img {
  width: 100%;
  height: 100%;
  max-width: 100%;
  max-height: 100%;
  object-fit: contain;
  border-radius: 10px;
  border: 1px solid rgba(0, 0, 0, 0.06);
}

.slide[data-id="step6-measure"] .figure {
  background: rgba(255, 255, 255, 0.72);
  border: 1px solid rgba(116, 172, 224, 0.22);
  box-shadow: 0 14px 28px rgba(48, 91, 133, 0.08);
  padding: 12px;
  border-radius: 24px;
  overflow: hidden;
}

.slide[data-id="step6-measure"] .figure img,
.slide[data-id="step6-measure"] .media img {
  box-shadow: none;
  border: none;
  border-radius: 18px;
  max-height: 58vh;
}

.slide[data-id="step4-bim-align"] .figure {
  background: transparent;
  border: none;
  box-shadow: none;
  padding: 0;
}

.slide[data-id="step4-bim-align"] .figure img,
.slide[data-id="step4-bim-align"] .media img {
  box-shadow: none;
  border: none;
}

/* 步骤 4（BIM 对齐）：图片放大到接近全屏，去掉左右下大量空白 */
.slide[data-id="step4-bim-align"] {
  display: flex;
  flex-direction: column;
}

.slide[data-id="step4-bim-align"] h2 {
  font-size: clamp(24px, 2.4vw, 30px);
  margin-bottom: 4px;
}

.slide[data-id="step4-bim-align"] .media--h-130 {
  height: calc(100% - 50px);
  padding: 0 12px;
  flex: 1 1 0;
  min-height: 0;
}

.slide[data-id="step4-bim-align"] .figure {
  height: 100%;
  display: flex;
  align-items: center;
  justify-content: center;
}

.slide[data-id="step4-bim-align"] .figure img {
  width: 100%;
  max-height: 100%;
  max-width: 100%;
  height: auto;
  object-fit: contain;
}

.slide[data-id="step7-analysis"] .figure {
  background: transparent;
  border: none;
  box-shadow: none;
  padding: 0;
}

.slide[data-id="step7-analysis"] .figure img {
  box-shadow: none;
  border: 1px solid rgba(0, 0, 0, 0.06);
  border-radius: 18px;
}

.slide[data-id="step1"] .media {
  height: calc(100% - 220px) !important;
  overflow: hidden;
}

.slide[data-id="step1"] .figure {
  background: transparent;
  border: none;
  box-shadow: none;
  padding: 0;
}

.slide[data-id="step1"] .figure img,
.slide[data-id="step1"] .media img {
  box-shadow: none;
  border: none;
  max-height: 100% !important;
}

/* 步骤 1：放大所有文字 */
.slide[data-id="step1"] .lead {
  font-size: clamp(20px, 2.4vw, 28px);
  max-width: 52em;
  font-weight: 600;
}

.slide[data-id="step1"] h2 {
  font-size: clamp(32px, 4vw, 46px);
  min-height: 56px;
}

.slide[data-id="step3-post"] {
  display: flex;
  flex-direction: column;
}

.slide[data-id="step3-post"] .figure {
  background: transparent;
  border: none;
  box-shadow: none;
  padding: 0;
}

.slide[data-id="step3-post"] .figure img,
.slide[data-id="step3-post"] .media img {
  box-shadow: 0 10px 26px rgba(11, 16, 32, 0.08);
  border: 1px solid rgba(0, 0, 0, 0.06);
  border-radius: 20px;
}

/* 步骤 3 slide 范围内：字号统一放大到 ≥20px */
.slide[data-id="step3-post"] .lead {
  font-size: 22px;
  line-height: 1.4;
  font-weight: 600;
  color: var(--text-main);
  max-width: 56em;
  margin-bottom: 6px;
}

.slide[data-id="step3-post"] .reg-card__no {
  width: 32px;
  height: 32px;
  font-size: 22px;
  top: 8px;
  left: 10px;
}

.slide[data-id="step3-post"] .reg-card__title {
  font-size: 22px;
  margin-bottom: 2px;
}

.slide[data-id="step3-post"] .reg-card__desc {
  font-size: 20px;
  line-height: 1.3;
}

.slide[data-id="step3-post"] .reg-card__link {
  font-size: 20px;
  padding: 5px 14px;
  margin-top: 6px;
  border-radius: 14px;
}

.slide[data-id="step3-post"] .reg-card__link-icon {
  font-size: 20px;
}

.slide[data-id="step3-post"] .reg-3layers--compact .reg-card {
  padding: 6px 10px 8px 50px;
}

.slide[data-id="step3-post"] .reg-3layers--compact .reg-card__no {
  width: 32px;
  height: 32px;
  font-size: 22px;
  top: 6px;
  left: 8px;
}

.slide[data-id="step3-post"] .reg-3layers--compact .reg-card__title {
  font-size: 22px;
  margin-bottom: 1px;
}

.slide[data-id="step3-post"] .reg-3layers--compact .reg-card__desc {
  font-size: 20px;
  line-height: 1.3;
}

.slide[data-id="step3-post"] .reg-3layers--compact .reg-card__link {
  margin-top: 4px;
  padding: 4px 12px;
  font-size: 20px;
  border-radius: 12px;
}

.slide[data-id="step3-post"] .stitch-compare__label {
  font-size: 22px;
  padding: 4px 14px;
  border-radius: 14px;
  margin-bottom: 4px;
}

.slide[data-id="step3-post"] .stitch-compare__caption {
  font-size: 20px;
  margin-top: 4px;
  line-height: 1.3;
}

.slide[data-id="step3-post"] .stitch-compare__arrow {
  font-size: 72px;
}

.slide[data-id="demos"] {
  display: flex;
  flex-direction: column;
}

.slide[data-id="demos"] .demos-head {
  flex: 0 0 auto;
  margin-bottom: 6px;
}

.slide[data-id="demos"] .demos-head h2 {
  margin-bottom: 6px;
}

.slide[data-id="demos"] .demo-stage {
  width: 100%;
  margin: 6px 0 0;
  display: flex;
  flex-direction: column;
  gap: 12px;
  flex: 1;
  min-height: 0;
}

.slide[data-id="demos"] .demo-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 18px;
  flex: 1;
  min-height: 0;
  align-items: stretch;
}

/* 卡片作为整体可点击的 <a> 链接 */
.slide[data-id="demos"] .demo-card {
  position: relative;
  display: flex;
  flex-direction: column;
  border-radius: 20px;
  background: rgba(255, 255, 255, 0.92);
  border: 1px solid rgba(116, 172, 224, 0.22);
  box-shadow: 0 14px 32px rgba(41, 89, 135, 0.12);
  overflow: hidden;
  text-decoration: none;
  color: inherit;
  transition: transform 200ms ease, box-shadow 200ms ease, border-color 200ms ease;
  min-height: 0;
}

.slide[data-id="demos"] .demo-card:hover {
  transform: translateY(-4px);
  box-shadow: 0 22px 44px rgba(31, 77, 114, 0.22);
  border-color: rgba(45, 108, 223, 0.45);
}

.slide[data-id="demos"] .demo-card--blue:hover {
  border-color: rgba(45, 108, 223, 0.55);
}

.slide[data-id="demos"] .demo-card--green:hover {
  border-color: rgba(30, 156, 137, 0.55);
}

.slide[data-id="demos"] .demo-card--purple:hover {
  border-color: rgba(139, 92, 246, 0.55);
}

/* 顶部彩色装饰条 */
.slide[data-id="demos"] .demo-card::before {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  height: 4px;
  background: linear-gradient(90deg, rgba(45, 108, 223, 0.9), rgba(95, 225, 255, 0.9));
  z-index: 2;
}

.slide[data-id="demos"] .demo-card--green::before {
  background: linear-gradient(90deg, rgba(30, 156, 137, 0.9), rgba(160, 255, 185, 0.9));
}

.slide[data-id="demos"] .demo-card--purple::before {
  background: linear-gradient(90deg, rgba(139, 92, 246, 0.9), rgba(190, 160, 255, 0.9));
}

/* 顶部图片区 */
.slide[data-id="demos"] .demo-card__media {
  position: relative;
  flex: 0 0 180px;
  min-height: 260px;
  max-height: 280px;
  overflow: hidden;
  background: linear-gradient(180deg, rgba(45, 108, 223, 0.06), rgba(45, 108, 223, 0.02));
  display: flex;
  align-items: center;
  justify-content: center;
}

.slide[data-id="demos"] .demo-card--green .demo-card__media {
  background: linear-gradient(180deg, rgba(30, 156, 137, 0.08), rgba(30, 156, 137, 0.02));
}

.slide[data-id="demos"] .demo-card--purple .demo-card__media {
  background: linear-gradient(180deg, rgba(139, 92, 246, 0.08), rgba(139, 92, 246, 0.02));
}

.slide[data-id="demos"] .demo-card__media img {
  width: 100%;
  height: 100%;
  object-fit: contain;
  padding: 12px 14px;
  transition: transform 280ms ease;
}

.slide[data-id="demos"] .demo-card:hover .demo-card__media img {
  transform: scale(1.05);
}

/* 序号 chip */
.slide[data-id="demos"] .demo-card__chip {
  position: absolute;
  top: 10px;
  right: 12px;
  background: rgba(15, 23, 42, 0.82);
  color: #fff;
  font-weight: 800;
  font-size: 12px;
  padding: 4px 10px;
  border-radius: 999px;
  letter-spacing: 0.06em;
  z-index: 3;
  box-shadow: 0 4px 12px rgba(15, 23, 42, 0.18);
}

/* 文字内容区 */
.slide[data-id="demos"] .demo-card__body {
  display: flex;
  flex-direction: column;
  gap: 6px;
  padding: 14px 18px 16px;
  background: rgba(255, 255, 255, 0.94);
  flex: 0 0 auto;
}

.slide[data-id="demos"] .demo-card__title {
  font-weight: 900;
  color: #0f172a;
  font-size: 18px;
  line-height: 1.3;
}

.slide[data-id="demos"] .demo-card--blue .demo-card__title { color: #0d9488; }
.slide[data-id="demos"] .demo-card--green .demo-card__title { color: #065f46; }
.slide[data-id="demos"] .demo-card--purple .demo-card__title { color: #065f46; }

.slide[data-id="demos"] .demo-card__sub {
  font-size: 12px;
  color: #64748b;
  font-weight: 600;
  letter-spacing: 0.04em;
}

.slide[data-id="demos"] .demo-card__desc {
  color: rgba(23, 58, 70, 0.78);
  font-size: 13.5px;
  line-height: 1.55;
}

.slide[data-id="demos"] .demo-card__steps {
  margin: 6px 0 4px 0;
  padding: 0 0 0 4px;
  list-style: none;
  counter-reset: step;
  color: #1e293b;
  font-size: 12.5px;
  line-height: 1.5;
  flex: 1 1 auto;
  overflow: auto;
}

.slide[data-id="demos"] .demo-card__steps li {
  position: relative;
  padding: 2px 0 2px 16px;
  border-bottom: 1px dashed rgba(45, 108, 223, 0.18);
}

.slide[data-id="demos"] .demo-card__steps li:last-child {
  border-bottom: none;
}

.slide[data-id="demos"] .demo-card__steps li b {
  color: #0f172a;
  font-weight: 800;
}

.slide[data-id="demos"] .demo-card--green .demo-card__steps li {
  border-bottom-color: rgba(30, 156, 137, 0.18);
}

.slide[data-id="demos"] .demo-card--purple .demo-card__steps li {
  border-bottom-color: rgba(139, 92, 246, 0.18);
}

.slide[data-id="demos"] .demo-card__actions {
  margin-top: 4px;
  display: flex;
  justify-content: flex-end;
}

.slide[data-id="demos"] .demo-card__cta {
  font-size: 13px;
  font-weight: 700;
  color: #0d9488;
  display: inline-flex;
  align-items: center;
  gap: 4px;
  transition: transform 180ms ease, color 180ms ease;
}

.slide[data-id="demos"] .demo-card--blue .demo-card__cta { color: #0d9488; }
.slide[data-id="demos"] .demo-card--green .demo-card__cta { color: #065f46; }
.slide[data-id="demos"] .demo-card--purple .demo-card__cta { color: #065f46; }

.slide[data-id="demos"] .demo-card:hover .demo-card__cta {
  transform: translateX(3px);
}

/* 旧版 demo-strip 样式保留（兼容未改造的引用） */
.slide[data-id="demos"] .demo-strip {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 16px;
}

.slide[data-id="demos"] .demo-strip__item {
  border-radius: 16px;
  background: rgba(255, 255, 255, 0.62);
  border: 1px solid rgba(116, 172, 224, 0.16);
  box-shadow: 0 10px 22px rgba(41, 89, 135, 0.08);
  height: 150px;
  display: grid;
  place-items: center;
  overflow: hidden;
  position: relative;
}

.slide[data-id="demos"] .demo-strip__item::before {
  content: "";
  position: absolute;
  inset: 0;
  background: radial-gradient(circle at 18% 22%, rgba(45, 108, 223, 0.18), transparent 55%);
  pointer-events: none;
}

.slide[data-id="demos"] .demo-strip__item--green::before {
  background: radial-gradient(circle at 18% 22%, rgba(30, 156, 137, 0.18), transparent 55%);
}

.slide[data-id="demos"] .demo-strip__item--purple::before {
  background: radial-gradient(circle at 18% 22%, rgba(139, 92, 246, 0.18), transparent 55%);
}

.slide[data-id="demos"] .demo-strip__item img {
  width: 106%;
  height: 106%;
  object-fit: cover;
  opacity: 0.92;
  filter: drop-shadow(0 10px 18px rgba(11, 16, 32, 0.12));
}

/* 只在 600px 以下（极小屏/手机）才改 1 列 */
@media (max-width: 600px) {
  .slide[data-id="demos"] .demo-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .slide[data-id="demos"] .demo-strip {
    grid-template-columns: 1fr;
  }
}

.slide:not(.is-active):not(.is-leaving) {
  content-visibility: hidden;
}

.slide.is-active,
.slide.is-leaving {
  content-visibility: visible;
}

.slide::before {
  content: "";
  position: absolute;
  inset: 0;
  border-radius: inherit;
  background:
    linear-gradient(135deg, rgba(45, 108, 223, 0.09), transparent 30%),
    radial-gradient(circle at right top, rgba(30, 156, 137, 0.18), transparent 26%),
    radial-gradient(circle at left bottom, rgba(139, 92, 246, 0.11), transparent 24%),
    radial-gradient(circle at 18% 84%, rgba(255, 138, 91, 0.12), transparent 30%),
    radial-gradient(circle at 62% 46%, rgba(95, 225, 255, 0.1), transparent 34%);
  pointer-events: none;
  z-index: -2;
  transform-origin: 50% 50%;
  animation: bgFloat 14s ease-in-out infinite;
}

.slide::after {
  content: "";
  position: absolute;
  top: 22px;
  right: 112px;
  width: 240px;
  height: 96px;
  background-size: contain;
  background-repeat: no-repeat;
  opacity: 0.7;
  pointer-events: none;
  z-index: -1;
  transform-origin: 50% 50%;
  animation: decoFloat 9s ease-in-out infinite;
}

.slide[data-id="cover"] {
  display: flex;
  flex-direction: column;
  justify-content: flex-start;
  align-items: stretch;
  text-align: center;
  background-color: #ffffff;
  position: relative;
  padding: 0 !important;
}

.slide[data-id="cover"] .cover-content {
  width: 100%;
  height: 100%;
  display: flex;
  flex-direction: column;
  padding: 0;
  z-index: 2;
}

.slide[data-id="cover"] .top-space {
  height: 33.33%;
  position: relative;
  background: white;
}

.slide[data-id="cover"] .cover-logo {
  position: absolute;
  top: 40px;
  left: 40px;
  width: clamp(180px, 18vw, 280px);
}

.slide[data-id="cover"] .cover-title-banner {
  height: 33.33%;
  background-image: linear-gradient(rgba(0, 102, 102, 0.7), rgba(0, 80, 80, 0.7)), url("./images/dianli/image8.webp");
  background-size: cover;
  background-position: center;
  background-repeat: no-repeat;
  padding: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  box-shadow: none;
  margin: 0;
  width: 100%;
}

.slide[data-id="cover"] .bottom-section {
  height: 33.34%;
  background-size: cover;
  background-position: center bottom;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: flex-start;
  padding-top: 20px;
}

.slide[data-id="cover"] h1 {
  color: #ffffff;
  font-size: clamp(42px, 6.5vw, 76px);
  text-shadow: 0 4px 20px rgba(0, 0, 0, 0.4);
  margin: 0;
  padding: 0 40px;
  font-weight: 900;
  letter-spacing: 0.12em;
  background: none;
}

.slide[data-id="cover"] .lead {
  color: #1a5a56;
  font-size: clamp(22px, 3vw, 38px);
  font-weight: 700;
  margin: 0;
  width: 100%;
  letter-spacing: 0.06em;
  background-image: url("./images/dianli/image9.webp");
  background-size: 100% 100%;
  background-position: center;
  background-repeat: no-repeat;
  padding: 20px 0;
  display: block;
}

.slide[data-id="cover"] .meta {
  color: #006666;
  background: rgba(255, 255, 255, 0.6);
  border: 1px solid rgba(0, 102, 102, 0.2);
  box-shadow: 0 8px 20px rgba(0, 0, 0, 0.1);
  font-size: 24px;
  font-weight: 800;
  margin-top: auto;
  margin-bottom: 40px;
  padding: 10px 30px;
  border-radius: 8px;
  letter-spacing: 0.1em;
}


.slide[data-id="end"] {
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  text-align: center;
}

.slide[data-id="end"] .box {
  margin-top: 10px;
}

.slide[data-id="end"] .lead {
  max-width: 44ch;
}

.slide.is-active {
  opacity: 1;
  transform: translateX(0) scale(1);
  pointer-events: auto;
}

.slide.is-prev {
  transform: translateX(-28px) scale(0.985);
}

h1 {
  margin: 10px 0 14px;
  font-size: clamp(38px, 5.3vw, 64px);
  letter-spacing: 0.02em;
  line-height: 1.06;
  font-weight: 900;
  color: var(--text-main);
  text-wrap: balance;
  text-shadow: 0 8px 30px rgba(45, 108, 223, 0.12);
}

h2 {
  position: relative;
  margin: 0 0 24px;
  padding-left: 0;
  min-height: 48px;
  display: flex;
  align-items: center;
  justify-content: flex-end;
  text-align: right;
  font-size: clamp(28px, 3.5vw, 42px);
  letter-spacing: 0.02em;
  line-height: 1.14;
  font-weight: 850;
  color: #16503e;
  -webkit-background-clip: text;
  background-clip: text;
  text-wrap: balance;
}

h2::before {
  content: "";
  width: clamp(120px, 14vw, 200px);
  height: clamp(34px, 4.2vw, 48px);
  background-image: url("./images/dianli/image3.webp");
  background-size: contain;
  background-repeat: no-repeat;
  background-position: left center;
  margin-right: auto;
  opacity: 0.92;
  flex: 0 0 auto;
}

h2::after {
  content: "";
  position: absolute;
  right: 0;
  bottom: -10px;
  width: 50%;
  max-width: 400px;
  height: 4px;
  background: linear-gradient(90deg, #ffffff 0%, #006666 100%);
  border-radius: 2px;
}

h3 {
  margin: 18px 0 10px;
  font-size: clamp(18px, 2.2vw, 24px);
  color: #246390;
  font-weight: 800;
}

p,
li {
  font-size: clamp(16px, 1.6vw, 20px);
  line-height: 1.65;
  color: var(--text-main);
}

ul,
ol {
  margin: 10px 0 0;
  padding-left: 22px;
}

li + li {
  margin-top: 10px;
}

.lead {
  max-width: 42em;
  font-size: clamp(18px, 2.1vw, 24px);
  color: var(--text-soft);
  font-weight: 500;
}

.slide[data-id="reg-method"] .lead--nowrap {
  white-space: nowrap;
}

/* 步骤 4 引出：副标题不换行（内容紧凑） */
.slide[data-id="step4-why"] .lead,
.slide[data-id="step4-ifc"] .lead,
.slide[data-id="step1-consistency"] .lead,
.slide[data-id="step1-incon-types"] .lead {
  white-space: nowrap;
  max-width: none;
  font-size: clamp(16px, 1.85vw, 22px);
}

@media (max-width: 860px) {
  .slide[data-id="reg-method"] .lead--nowrap {
    font-size: clamp(16px, 2vw, 20px);
  }
}

.spec-table {
  width: 100%;
  border-collapse: collapse;
  text-align: left;
  font-size: 0.95rem;
  line-height: 1.4;
  background: #ffffff;
  border: 3px solid #0d9488;
  border-radius: 8px;
  overflow: hidden;
  box-shadow: 0 8px 22px rgba(15, 23, 42, 0.12);
}

.spec-card {
  background: #ffffff;
  border-radius: 10px;
  box-shadow: 0 6px 14px rgba(0, 0, 0, 0.08);
  border: 2px solid #94a3b8;
  overflow: hidden;
}

.spec-table thead {
  background: linear-gradient(180deg, #d1fae5 0%, #a7f3d0 100%);
  border-bottom: 3px solid #0d9488;
}

.spec-table th {
  padding: 10px 8px;
  font-weight: 800;
  color: #0d9488;
  border-right: 1.5px solid #94a3b8;
}

.spec-table th:last-child {
  border-right: none;
}

.spec-table th:first-child {
  padding: 10px 12px;
  width: 28%;
  border-right: 2px solid #64748b;
}

.spec-table th:nth-child(n + 5):nth-child(-n + 7) {
  background: linear-gradient(180deg, #d1fae5 0%, #d1fae5 100%);
}

.spec-table tbody {
  color: #475569;
}

.spec-table td {
  padding: 8px 10px;
  border-bottom: 1.5px solid #cbd5e1;
  border-right: 1.5px solid #e2e8f0;
  vertical-align: middle;
}

.spec-table td:last-child {
  border-right: none;
}

.spec-table tbody tr:last-child td {
  border-bottom: 2px solid #0d9488;
}

.spec-table td:first-child {
  font-weight: 600;
  color: #0f172a;
  border-right: 2px solid #cbd5e1;
  background: #f8fafc;
}

.spec-table__placeholder {
  padding: 8px;
  text-align: center;
  vertical-align: middle;
}

.spec-table__placeholder-content {
  color: #94a3b8;
  font-style: italic;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 8px;
}

.meta {
  margin-top: 28px;
  padding: 10px 18px;
  border-radius: 999px;
  font-size: 15px;
  color: #235d84;
  background: rgba(255, 255, 255, 0.68);
  border: 1px solid rgba(86, 149, 209, 0.22);
  box-shadow: 0 10px 25px rgba(37, 99, 235, 0.08);
  backdrop-filter: blur(10px);
}

.kicker {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  padding: 8px 12px;
  border-radius: 999px;
  border: 1px solid rgba(43, 122, 90, 0.2);
  background: rgba(43, 122, 90, 0.08);
  font-size: 14px;
  color: #2b7a5a;
}

pre {
  margin: 16px 0 0;
  padding: 16px 16px;
  border-radius: 14px;
  background: #f0fbf5;
  border: 1px solid rgba(43, 122, 90, 0.15);
  overflow: auto;
}

img {
  max-width: 100%;
  height: auto;
  display: block;
}

/* 全局 logo 容器已移除（避免与内容图左上角叠加） */

.brand-logo {
  width: clamp(92px, 14vw, 160px);
  margin: 18px auto 10px;
  filter: drop-shadow(0 14px 28px rgba(0, 0, 0, 0.45));
}

.grid {
  display: grid;
  gap: 16px;
}

.grid--3 {
  grid-template-columns: repeat(3, minmax(0, 1fr));
}

.grid--gap-24 {
  gap: 1.5rem;
}

.grid--gap-18 {
  gap: 18px;
}

.grid--2 {
  grid-template-columns: 1.15fr 0.85fr;
  align-items: start;
}

.media {
  margin-top: 14px;
  position: relative;
}

.media--mt8 {
  margin-top: 8px;
}

.media--flex {
  display: flex;
}

.media--items-center {
  align-items: center;
}

.media--justify-center {
  justify-content: center;
}

.media--overflow-hidden {
  overflow: hidden;
}

.media--h-130 {
  height: calc(100% - 130px);
}

.media--h-150 {
  height: calc(100% - 150px);
}

.media--h-170 {
  height: calc(100% - 170px);
}

.u-flex {
  display: flex;
}

.u-abs {
  position: absolute;
}

.u-right-20 {
  right: 20px;
}

.u-bottom-20 {
  bottom: 20px;
}

.u-bottom-0 {
  bottom: 0;
}

.u-z-10 {
  z-index: 10;
}

.u-flex-col {
  flex-direction: column;
}

.u-items-center {
  align-items: center;
}

.u-items-stretch {
  align-items: stretch;
}

.u-justify-center {
  justify-content: center;
}

.u-gap-16 {
  gap: 1rem;
}

.u-gap-24 {
  gap: 1.5rem;
}

.u-gap-32 {
  gap: 2rem;
}

.u-mt-12 {
  margin-top: 0.8rem;
}

.u-mt-6 {
  margin-top: 6px;
}

.u-mt-neg-8 {
  margin-top: -0.5rem;
}

.u-mt-16 {
  margin-top: 1rem;
}

.u-mt-12px {
  margin-top: 12px;
}

.u-mt-24 {
  margin-top: 1.5rem;
}

.u-mt-32 {
  margin-top: 2rem;
}

.u-mb-24 {
  margin-bottom: 1.5rem;
}

.u-flex-1 {
  flex: 1;
}

.u-flex-12 {
  flex: 1.2;
}

.u-h-110 {
  height: calc(100% - 110px);
}

.u-h-130 {
  height: calc(100% - 130px);
}

.u-overflow-auto {
  overflow: auto;
}

.u-text-muted {
  color: #94a3b8;
}

.u-pt-2 {
  padding-top: 0.2rem;
}

.subhead {
  margin-top: 0;
  color: #0f172a;
  margin-bottom: 0.8rem;
}

.subhead--md {
  font-size: 1.2rem;
}

.subhead--sm {
  font-size: 1.1rem;
}

.subhead--center {
  text-align: center;
}

.panel-title {
  margin-top: 0;
  color: #0f172a;
  font-size: 1.2rem;
  border-bottom: 2px solid #e2e8f0;
  padding-bottom: 0.5rem;
}

.status-card {
  padding: 1rem;
  border-radius: 0 8px 8px 0;
  border-left: 4px solid transparent;
}

.status-card--ok {
  background: #f0fdf4;
  border-left-color: #10b981;
}

.status-card--warn {
  background: #fffbeb;
  border-left-color: #f59e0b;
}

.status-card--bad {
  background: #fef2f2;
  border-left-color: #ea580c;
}

.status-card__title {
  display: block;
  margin-bottom: 0.3rem;
}

.status-card--ok .status-card__title {
  color: #15803d;
}

.status-card--warn .status-card__title {
  color: #b45309;
}

.status-card--bad .status-card__title {
  color: #9a3412;
}

.status-card__desc {
  font-size: 0.95rem;
  color: #334155;
  line-height: 1.5;
}

.ifc-tok--blue {
  color: #10b981;
}

.ifc-tok--green {
  color: #10b981;
}

.ifc-tok--amber {
  color: #f59e0b;
}

.ifc-tok--red {
  color: #ea580c;
}

.ifc-tok--purple {
  color: #f59e0b;
}

.ifc-tok--muted {
  color: #64748b;
}

.note-callout {
  margin-top: 1rem;
  padding: 1rem;
  background: #ecfdf5;
  border-radius: 8px;
  border: 1px solid #a7f3d0;
}

.note-callout__text {
  color: #0d9488;
  font-size: 0.95rem;
  line-height: 1.5;
}

.icp-panel {
  background: #f8fafc;
  border: 1px solid #e2e8f0;
  border-radius: 12px;
  padding: 1.5rem 2rem;
  margin-top: 1rem;
  display: flex;
  align-items: stretch;
  gap: 2rem;
}

.icp-panel__main {
  flex: 1;
  display: flex;
  flex-direction: column;
  justify-content: center;
}

.icp-panel__title {
  margin-top: 0;
  color: #0f172a;
  font-size: 1.3rem;
}

.icp-panel__formula {
  font-size: 1.6rem;
  font-family: "Times New Roman", Times, serif;
  background: #ffffff;
  padding: 1.5rem;
  border-radius: 8px;
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.04);
  color: #1e293b;
  text-align: center;
  margin: 1rem 0;
  border: 1px solid #e2e8f0;
}

.icp-panel__notes {
  color: #475569;
  font-size: 0.95rem;
  line-height: 1.7;
  margin-left: 1.5rem;
}

.icp-panel__side {
  width: 320px;
  display: flex;
  flex-direction: column;
  gap: 1rem;
}

.icp-panel__em {
  color: #0f172a;
}

.icp-panel__hint {
  color: #64748b;
  font-size: 0.85rem;
}

.metric-list {
  display: grid;
  gap: 10px;
}

.metric-row {
  display: flex;
  justify-content: space-between;
  gap: 10px;
}

.metric-row--total {
  padding-top: 8px;
  border-top: 1px dashed rgba(43, 122, 90, 0.22);
}

.metric-value {
  font-weight: 900;
  color: #173a46;
  letter-spacing: 0.02em;
}

.metric-value--delta {
  color: #ef6b54;
}

.error-card {
  background: #ffffff;
  border: 1px solid #e2e8f0;
  border-radius: 12px;
  padding: 1.5rem;
  box-shadow: 0 4px 6px rgba(0, 0, 0, 0.02);
  display: flex;
  flex-direction: column;
  min-width: 0;
}

.error-card--muted {
  background: #f8fafc;
  border-color: #cbd5e1;
  box-shadow: none;
}

.error-card__title {
  margin-top: 0;
  color: #0f172a;
  border-bottom: 2px solid #e2e8f0;
  padding-bottom: 0.8rem;
}

.error-card__list {
  color: #334155;
  font-size: 1.05rem;
  line-height: 1.8;
  margin-left: 1.2rem;
  flex: 1;
  display: flex;
  flex-direction: column;
  justify-content: space-around;
}

.error-em--blue {
  color: #10b981;
}

.error-em--red {
  color: #ea580c;
}

.error-em--green {
  color: #10b981;
}

.error-steps {
  display: flex;
  flex-direction: column;
  gap: 1rem;
  margin-top: 1rem;
  flex: 1;
  justify-content: space-around;
}

.error-step {
  background: #ffffff;
  padding: 1rem;
  border-radius: 4px;
  box-shadow: 0 1px 3px rgba(0, 0, 0, 0.05);
  border-left: 4px solid transparent;
}

.error-step--amber {
  border-left-color: #f59e0b;
}

.error-step--red {
  border-left-color: #ea580c;
}

.error-step--green {
  border-left-color: #10b981;
}

.error-step__title {
  display: block;
  margin-bottom: 0.3rem;
}

.error-step--amber .error-step__title {
  color: #b45309;
}

.error-step--red .error-step__title {
  color: #9a3412;
}

.error-step--green .error-step__title {
  color: #047857;
}

.error-step__desc {
  font-size: 0.95rem;
  color: #475569;
  line-height: 1.5;
  display: block;
}

.end-layout {
  display: flex;
  height: 100%;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  text-align: center;
}

.end-title {
  font-size: 3rem;
  margin-bottom: 1rem;
  color: var(--color-primary);
}

.end-lead {
  margin-bottom: 3rem;
}

.end-logo {
  opacity: 0.85;
}

/* 结束页 logo 放大 */
.slide[data-id="end"] .end-logo img {
  height: 240px !important;
  width: auto;
  filter: drop-shadow(0 12px 30px rgba(15, 23, 42, 0.18));
}

.ifc-code {
  background: #1e293b;
  border-radius: 12px;
  padding: 1.5rem;
  color: #e2e8f0;
  font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;
  font-size: 1.05rem;
  line-height: 1.6;
  box-shadow: 0 4px 6px rgba(0, 0, 0, 0.1);
  overflow: hidden;
  position: relative;
}

.ifc-code__bar {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  padding: 0.5rem 1rem;
  background: #0f172a;
  border-bottom: 1px solid #334155;
  font-weight: 700;
  font-size: 1.05rem;
  color: #94a3b8;
  display: flex;
  align-items: center;
  gap: 8px;
}

.ifc-code__body {
  margin-top: 2.2rem;
}

.ifc-tree {
  background: #f8fafc;
  border: 1px solid #cbd5e1;
  border-radius: 12px;
  padding: 0.7rem 0.9rem;
  display: flex;
  flex-direction: column;
  min-width: 0;
}

.ifc-tree__title {
  margin-top: 0;
  color: #0f172a;
  border-bottom: 2px solid #e2e8f0;
  padding-bottom: 0.4rem;
  font-size: 28px;
  line-height: 1.2;
}

.ifc-tree__body {
  flex: 1;
  overflow-y: auto;
  padding-top: 0.4rem;
  font-size: 25px;
  line-height: 1.3;
}

.ifc-tree__node {
  display: flex;
  align-items: center;
  gap: 6px;
}

.ifc-tree__node--building {
  font-weight: 800;
  color: #1e293b;
  font-size: 28px;
}

.ifc-tree__node--room {
  font-weight: 600;
  color: #334155;
  font-size: 26px;
}

.ifc-tree__node--sub {
  color: #475569;
  font-size: 25px;
}

.ifc-tree__indent {
  border-left: 2px solid #e2e8f0;
  padding-left: 0.8rem;
  padding-bottom: 0.2rem;
}

.ifc-tree__indent--room {
  margin-left: 0.9rem;
  margin-top: 0.2rem;
}

.ifc-tree__indent--equip {
  margin-left: 0.7rem;
  margin-top: 0.3rem;
}

.ifc-tree__chip {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  font-weight: 600;
  color: #0f172a;
  background: #ffffff;
  padding: 0.2rem 0.55rem;
  border: 1px solid #cbd5e1;
  border-radius: 6px;
  box-shadow: 0 1px 2px rgba(0, 0, 0, 0.05);
  font-size: 25px;
}

.ifc-tree__badge {
  font-size: 25px;
  background: #f1f5f9;
  color: #64748b;
  padding: 1px 6px;
  border-radius: 4px;
  margin-left: 6px;
  font-family: ui-monospace, "SFMono-Regular", Consolas, monospace;
  line-height: 1.2;
}

.ifc-tree__sub {
  margin-left: 1.1rem;
  border-left: 2px dashed #cbd5e1;
  padding-left: 0.8rem;
  margin-top: 0.25rem;
  position: relative;
}

.ifc-tree__sub-line {
  position: absolute;
  left: 0;
  top: 14px;
  width: 0.7rem;
  height: 2px;
  background: #cbd5e1;
}

.media img,
.figure img,
.demo-card img,
.demo-strip__item img {
  border-radius: 20px;
  overflow: hidden;
  box-shadow: 0 10px 30px rgba(0, 0, 0, 0.12);
  border: 1px solid rgba(0, 0, 0, 0.05);
}

.figure {
  border-radius: 24px;
  background: transparent;
  border: none;
  padding: 0;
  box-shadow: none;
  overflow: hidden;
  display: flex;
  align-items: center;
  justify-content: center;
}

.figure--w-full {
  width: 100%;
}

.figure--flex1 {
  flex: 1;
}

.figure--flex125 {
  flex: 1.25;
}

.figure--pad12 {
  padding: 12px;
}

.img--w100-contain {
  width: 100%;
  max-height: 100%;
  height: auto;
  object-fit: contain;
}

.img--w100-contain-68 {
  width: 100%;
  max-height: 68vh;
  object-fit: contain;
}

.slide[data-id="error-taxonomy"] .media {
  height: calc(100% - 140px);
  margin-top: 10px;
}

/* 误差全谱页面：图片放大到接近全屏，保留 8px 边距 */
.slide[data-id="error-taxonomy"] {
  display: flex;
  flex-direction: column;
}

.slide[data-id="error-taxonomy"] h2 {
  flex: 0 0 auto;
}

.slide[data-id="error-taxonomy"] .media {
  position: relative;
  flex: 1 1 0;
  min-height: 0;
  margin-top: 8px;
  width: 100%;
  height: 100%;
  overflow: hidden;
}

.slide[data-id="error-taxonomy"] .figure {
  position: absolute;
  inset: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  background: transparent;
  border: none;
  box-shadow: none;
  padding: 0;
  overflow: hidden;
}

.slide[data-id="error-taxonomy"] .img--w100-contain-68 {
  display: block;
  width: 100%;
  height: 100%;
  max-width: 100%;
  max-height: 100%;
  object-fit: contain;
  object-position: center;
}

/* 误差量级尺页：图片放大到接近全屏，保留 8px 边距 */
.slide[data-id="error-magnitude"] {
  display: flex;
  flex-direction: column;
  height: 100%;
}

.slide[data-id="error-magnitude"] h2 {
  flex: 0 0 auto;
}

.slide[data-id="error-magnitude"] .lead {
  flex: 0 0 auto;
}

.slide[data-id="error-magnitude"] .media {
  position: relative;
  flex: 1 1 0;
  min-height: 0;
  margin-top: 8px;
  width: 100%;
  height: 100%;
  overflow: hidden;
}

.slide[data-id="error-magnitude"] .figure {
  width: 100%;
  height: 100%;
}

.slide[data-id="error-magnitude"] .img--w100-contain-68 {
  display: block;
  width: 100%;
  height: 100%;
  max-width: 100%;
  max-height: 100%;
  object-fit: contain;
  object-position: center;
}

/* 设备原理页：防止 SVG 超出 media 容器 */
.slide[data-id="device"] {
  display: flex;
  flex-direction: column;
  height: 100%;
}
.slide[data-id="device"] .media {
  position: relative;
  flex: 1 1 0;
  min-height: 0;
  margin-top: 4px;
  width: 100%;
  /* 关键：不要 height: 100% —— 否则会撑满整个 slide 高度，盖住 h2/lead */
  overflow: hidden;
}

.slide[data-id="device"] .lead {
  margin-top: 4px;
  font-size: clamp(16px, 1.9vw, 22px);
}

.slide[data-id="device"] h2 {
  margin-bottom: 8px;
}

.slide[data-id="device"] .figure {
  position: absolute;
  inset: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  background: transparent;
  border: none;
  box-shadow: none;
  padding: 0;
  overflow: hidden;
}

.slide[data-id="device"] .figure img {
  display: block;
  max-width: 100%;
  max-height: calc(100vh - 90px);
  width: auto;
  height: auto;
  object-fit: contain;
  object-position: center;
}

/* 设备原理（下半）：图片放大填满容器，去除左右上下空白 */
.slide[data-id="device-p2"] {
  display: flex;
  flex-direction: column;
  height: 100%;
}

.slide[data-id="device-p2"] h2,
.slide[data-id="device-p2"] .lead {
  flex: 0 0 auto;
}

.slide[data-id="device-p2"] .media {
  position: relative;
  flex: 1 1 0;
  min-height: 0;
  margin-top: 8px;
  width: 100%;
  height: 100%;
  overflow: hidden;
}

.slide[data-id="device-p2"] .figure {
  width: 100%;
  height: 100%;
  background: transparent;
  border: none;
  box-shadow: none;
  padding: 0;
  overflow: hidden;
}

.slide[data-id="device-p2"] .img--w100-contain-68 {
  display: block;
  width: 100%;
  height: 100%;
  max-width: 100%;
  max-height: calc(100vh - 100px);
  object-fit: contain;
  object-position: center;
}

.formula-topic {
  height: calc(100% - 84px);
  display: flex;
  flex-direction: column;
  gap: 18px;
  margin-top: 8px;
  max-width: 1600px;
  margin-left: auto;
  margin-right: auto;
  width: 100%;
  padding: 0 8px;
}

.formula-topic__hero {
  position: relative;
  overflow: hidden;
  /* 纯黑底，去除渐变 */
  background: #0f172a;
  border-radius: 18px;
  padding: 24px 36px 26px;
  color: #ffffff;
  box-shadow: 0 16px 36px rgba(15, 23, 42, 0.28), inset 0 1px 0 rgba(255, 255, 255, 0.08);
  display: grid;
  grid-template-columns: 280px 1fr;
  grid-template-rows: auto auto;
  gap: 8px 32px;
  align-items: center;
}

/* 装饰光斑已删除（违反极简 3 色规范） */
.formula-topic__hero::before,
.formula-topic__hero::after {
  display: none;
}

.formula-topic__eyebrow {
  position: relative;
  z-index: 1;
  grid-column: 1;
  grid-row: 1;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 6px;
  padding: 6px 16px;
  border-radius: 999px;
  background: #10b981;            /* 纯绿，去除渐变 */
  border: 1px solid #10b981;
  font-size: 20px;                /* 提升至 20px */
  font-weight: 800;
  letter-spacing: 0.04em;
  color: #ffffff;
  white-space: nowrap;
}

.formula-topic__formula {
  position: relative;
  z-index: 1;
  grid-column: 2;
  grid-row: 1 / span 2;
  align-self: center;
  justify-self: center;
  font-family: "Cambria Math", "Latin Modern Math", "STIX Two Math", "Times New Roman", serif;
  font-size: clamp(28px, 3.2vw, 44px);
  line-height: 1.2;
  font-weight: 600;
  text-align: center;
  color: #ffffff;                   /* 公式白色，去掉彩色光晕 */
  letter-spacing: 0.01em;
  text-shadow: 0 2px 4px rgba(0, 0, 0, 0.4);
  padding: 4px 12px;
  white-space: nowrap;
  max-width: 100%;
  overflow: hidden;
}

.formula-topic__formula sub,
.formula-topic__formula sup {
  font-size: 0.55em;
  font-weight: 600;
  font-style: italic;
  color: #f59e0b;                    /* 上下标用橘黄 */
  margin: 0 1px;
}

.formula-topic__summary {
  position: relative;
  z-index: 1;
  grid-column: 1;
  grid-row: 2;
  text-align: center;
  color: #ffffff;                    /* 纯白，去掉淡绿色 */
  font-size: 20px;                   /* 提升至 20px */
  line-height: 1.55;
  font-weight: 600;
  align-self: start;
  padding: 0 8px;
}

.formula-topic__summary b {
  color: #f59e0b;                    /* 强调用橘黄 */
  font-weight: 800;
  padding: 0 4px;
}

.formula-topic__grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 18px;
  flex: 1;
  min-height: 0;
  align-content: start;
}

/* 大屏宽：保持 2x2 田字布局，让卡片更宽、公式更大 */
@media (min-width: 900px) {
  .formula-card {
    padding: 18px 22px 20px 28px;
    gap: 8px;
  }
  .formula-card__index {
    font-size: 20px;                       /* 提升至 20px */
    padding: 4px 14px;
    font-weight: 900;
  }
  .formula-card__label {
    font-size: 20px;                       /* 提升至 20px */
    font-weight: 800;
  }
  .formula-card__expr {
    font-size: clamp(28px, 3.0vw, 36px);
    white-space: nowrap;
    min-height: 50px;
    display: flex;
    align-items: center;
  }
  .formula-card__desc {
    font-size: 20px;                       /* 提升至 20px */
    line-height: 1.5;
  }
}

.formula-card {
  position: relative;
  min-height: 110px;
  background: #ffffff;                      /* 纯白，去除渐变 */
  border-radius: 16px;
  padding: 14px 18px 16px 22px;
  border: 1px solid #e2e8f0;
  border-left: 5px solid #0f172a;            /* 默认黑色左条 */
  box-shadow: 0 6px 16px rgba(15, 23, 42, 0.05);
  transition: transform 220ms ease, box-shadow 220ms ease;
  display: flex;
  flex-direction: column;
  gap: 2px;
}

.formula-card:hover {
  transform: translateY(-2px);
  box-shadow: 0 12px 24px rgba(15, 23, 42, 0.1);
}

.formula-card::before {
  content: "";
  position: absolute;
  left: 0;
  top: 8px;
  bottom: 8px;
  width: 5px;
  border-radius: 0 4px 4px 0;
  background: #0f172a;                       /* 默认黑 */
}

.formula-card--blue::before  { background: #10b981; }   /* 绿色强调 */
.formula-card--green::before { background: #10b981; }   /* 绿色强调 */
.formula-card--red::before   { background: #f59e0b; }   /* 橘黄强调 */
.formula-card--violet::before{ background: #f59e0b; }   /* 橘黄强调 */

.formula-card__index {
  display: inline-block;
  font-size: 20px;                           /* 提升至 20px */
  font-weight: 900;
  color: #ffffff;
  background: #0f172a;                       /* 纯黑，去除渐变 */
  letter-spacing: 0.04em;
  padding: 4px 14px;
  border-radius: 999px;
  align-self: flex-start;
}

.formula-card--blue  .formula-card__index { background: #10b981; }   /* 绿 */
.formula-card--green .formula-card__index { background: #10b981; }   /* 绿 */
.formula-card--red   .formula-card__index { background: #f59e0b; }   /* 橘黄 */
.formula-card--violet .formula-card__index { background: #f59e0b; }   /* 橘黄 */

.formula-card__label {
  margin-top: 2px;
  font-size: 20px;                           /* 提升至 20px */
  font-weight: 800;
  color: #0f172a;
  letter-spacing: 0.01em;
}

.formula-card__expr {
  margin-top: 4px;
  font-family: "Cambria Math", "Latin Modern Math", "STIX Two Math", "Times New Roman", serif;
  font-size: 22px;
  line-height: 1.3;
  color: #0f172a;                            /* 公式统一黑色 */
  font-weight: 600;
  letter-spacing: 0.01em;
  padding: 4px 0;
}

.formula-card__expr sub,
.formula-card__expr sup {
  font-size: 0.6em;
  font-weight: 600;
  font-style: italic;
}

/* 公式强调色：1/2 黑色，3/4 橘黄（突出"误差"和"累加"） */
.formula-card--blue  .formula-card__expr { color: #0f172a; }
.formula-card--green .formula-card__expr { color: #0f172a; }
.formula-card--red   .formula-card__expr { color: #f59e0b; }
.formula-card--violet .formula-card__expr { color: #f59e0b; }

.formula-card__desc {
  margin-top: 2px;
  font-size: 20px;                           /* 提升至 20px */
  line-height: 1.5;
  color: #475569;
}


.img--w100-contain-52 {
  width: 100%;
  max-height: 52vh;
  object-fit: contain;
}

.img--w100-contain-48 {
  width: 100%;
  max-height: 48vh;
  object-fit: contain;
}

.img--w100-h100-contain-48 {
  width: 100%;
  height: 100%;
  max-height: 48vh;
  object-fit: contain;
}

.img--w100-contain-max {
  width: 100%;
  max-height: 100%;
  object-fit: contain;
}

/* 视频容器：用于录屏回放页（results 等） */
.slide[data-id="results"] {
  display: flex;
  flex-direction: column;
}

.slide[data-id="results"] .media {
  flex: 1 1 0;
  min-height: 0;
  margin-top: 8px;
  overflow: hidden;
}

.slide[data-id="results"] .figure {
  height: 100%;
  display: flex;
  align-items: center;
  justify-content: center;
  background: transparent;
  border: none;
  box-shadow: none;
  padding: 0;
  overflow: hidden;
}

.slide[data-id="results"] .figure video {
  display: block;
  max-width: 100%;
  max-height: 100%;
  width: auto;
  height: auto;
  object-fit: contain;
  border-radius: 12px;
  background: #000;
}

.img--contain-fit {
  width: auto;
  max-width: 100%;
  max-height: 100%;
  object-fit: contain;
}

/* 总览图（Map）专用样式：让 SVG 铺满 figure 区域 */
.slide[data-id="overview"] .media {
  flex: 1;
  min-height: 0;
  max-height: 100%;
  margin-top: 0;
  padding: 0;
}

.slide[data-id="overview"] .figure--map {
  width: 100%;
  height: 100%;
  max-height: 100%;
  align-items: stretch;
  justify-content: center;
  padding: 0;
  margin: 0;
  overflow: hidden;
}

.img--map {
  width: 100%;
  max-width: 100%;
  max-height: 100%;
  height: 100%;
  object-fit: contain;
  display: block;
  margin: 0 auto;
  border-radius: 12px;
}

.img--reg-steps {
  width: min(800px, 100%);
  height: 160px;
  object-fit: contain;
}

.img--h60 {
  height: 60px;
  width: auto;
}

.figure img.img--cover-58 {
  width: 100%;
  max-height: 58vh;
  object-fit: cover;
  border-radius: 14px;
}

.caption--center {
  text-align: center;
}

.caption {
  margin-top: 10px;
  font-size: 12px;
  color: #67879a;
}

.compact {
  margin-top: 10px;
  padding-left: 20px;
}

.compact li + li {
  margin-top: 8px;
}

.flow {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 14px;
  margin-top: 12px;
}

.box {
  position: relative;
  border-radius: 20px;
  background: linear-gradient(145deg, rgba(255, 255, 255, 0.94) 0%, rgba(244, 250, 255, 0.92) 100%);
  border: 1px solid rgba(116, 172, 224, 0.24);
  box-shadow: var(--shadow-card);
  padding: 18px 20px;
  backdrop-filter: blur(8px);
  transition: transform 0.2s ease, box-shadow 0.2s ease;
}

.box--plain {
  background: #ffffff;
  border-color: #cbd5e1;
}

.box--top-blue {
  border-top: 4px solid #10b981;
}

.box--top-green {
  border-top: 4px solid #10b981;
}

.box--top-purple {
  border-top: 4px solid #0d9488;
}

.box--left-green {
  border-left: 4px solid #0d9488;
}

.box--left-blue {
  border-left: 4px solid #0d9488;
}

.box--left-purple {
  border-left: 4px solid #0d9488;
}

.box::before {
  content: "";
  position: absolute;
  top: 0;
  left: 18px;
  right: 18px;
  height: 4px;
  border-radius: 999px;
  background: linear-gradient(90deg, var(--brand-1) 0%, var(--brand-2) 55%, var(--brand-3) 100%);
  opacity: 0.9;
}

.box:hover {
  transform: translateY(-3px);
  box-shadow: 0 14px 34px rgba(41, 89, 135, 0.14);
}

.box__k {
  font-family: "Segoe UI Variable", "PingFang SC", "Microsoft YaHei UI", sans-serif;
  font-size: 24px;
  color: #173a46;
  font-weight: 800;
  margin-bottom: 10px;
}

.box__k--lg {
  font-size: 1.5rem;
  margin-bottom: 0.8rem;
  color: #1e293b;
}

.box__k--slate {
  color: #1e293b;
}

.box__v {
  font-size: 20px;
  line-height: 1.55;
  color: #45697a;
}

.box__v--lg {
  font-size: 1.2rem;
  line-height: 1.6;
}

.box__v--sm {
  font-size: 0.9rem;
  line-height: 1.6;
}

.box__v--16 {
  font-size: 16px;
}

.box__v--left {
  text-align: left;
}

.box__v b {
  font-family: "Segoe UI Variable", "Helvetica Neue", Arial, sans-serif;
  color: var(--brand-2);
  font-size: 18px;
  letter-spacing: 0.06em;
  display: inline-block;
  margin-bottom: 4px;
}

.slide[data-id="rgb"] {
  display: flex;
  flex-direction: column;
}

.slide[data-id="rgb"] h2 {
  margin-bottom: 10px;
  font-size: clamp(24px, 3vw, 36px);
}

.slide[data-id="rgb"] .lead {
  margin: 0;
  font-size: clamp(16px, 1.8vw, 20px);
}

.slide[data-id="rgb"] .media {
  margin-top: 6px;
  flex: 1;
  min-height: 0;
  position: relative;
  display: flex;
  align-items: center;
  justify-content: center;
}

.slide[data-id="rgb"] .figure {
  background: transparent;
  border: none;
  box-shadow: none;
  padding: 0;
  width: 100%;
  height: 100%;
  display: flex;
  align-items: center;
  justify-content: center;
}

.slide[data-id="rgb"] .media img {
  max-height: 66vh;
  max-width: 100%;
  width: auto;
  height: auto;
  object-fit: contain;
  box-shadow: none;
  border: none;
  border-radius: 18px;
}

.slide[data-id="rgb"] .grid {
  gap: 8px;
  margin-top: 8px;
}

.slide[data-id="rgb"] .box {
  padding: 8px 12px;
  border-radius: 14px;
}

.slide[data-id="rgb"] .box__k {
  font-size: 14px;
  margin-bottom: 2px;
}

.slide[data-id="rgb"] .box__v {
  font-size: 12.5px;
  line-height: 1.4;
}

@media (max-height: 820px) {
  .slide[data-id="rgb"] .media img {
    max-height: 58vh;
  }

  .slide[data-id="rgb"] .box__v {
    font-size: 12px;
  }
}

code {
  font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;
  font-size: 14px;
  color: #246390;
}

.table {
  width: 100%;
  border-collapse: collapse;
  margin-top: 12px;
  overflow: hidden;
  border-radius: 14px;
  border: 1px solid rgba(43, 122, 90, 0.2);
  background: #ffffff;
}

.table--mt0 {
  margin-top: 0;
}

.table--case th:nth-child(1) {
  width: 22%;
}

.table--case th:nth-child(2),
.table--case th:nth-child(3),
.table--case th:nth-child(4) {
  width: 26%;
}

.table th,
.table td {
  padding: 12px 14px;
  border-bottom: 1px solid rgba(43, 122, 90, 0.1);
  vertical-align: top;
  text-align: left;
  font-size: clamp(14px, 1.4vw, 18px);
  line-height: 1.45;
}

.table--nowrap th,
.table--nowrap td {
  white-space: nowrap;
}

.table th {
  background: rgba(43, 122, 90, 0.08);
  color: #1a4a38;
  font-weight: 600;
}

.table tr:last-child td {
  border-bottom: none;
}

.quote {
  margin: 14px 0 0;
  padding: 16px 18px;
  border-left: 4px solid #0d9488;
  background: linear-gradient(135deg, rgba(45, 108, 223, 0.08), rgba(30, 156, 137, 0.07));
  border-radius: 16px;
  color: #285d7f;
  font-size: clamp(16px, 1.7vw, 20px);
  box-shadow: 0 10px 24px rgba(45, 108, 223, 0.08);
}

.pill {
  list-style: none;
  padding-left: 0;
  display: grid;
  gap: 12px;
  margin-top: 14px;
}

.pill li {
  padding: 12px 14px;
  border-radius: 14px;
  background: rgba(255, 255, 255, 0.9);
  border: 1px solid rgba(116, 172, 224, 0.22);
  box-shadow: 0 6px 14px rgba(48, 91, 133, 0.06);
}

hr {
  border: none;
  height: 1px;
  background: rgba(43, 122, 90, 0.15);
  margin: 18px 0;
}

.contact {
  margin-top: 14px;
  display: grid;
  place-items: center;
}

.contact__box {
  width: min(420px, 100%);
  aspect-ratio: 1 / 1;
  display: grid;
  place-items: center;
  border-radius: 18px;
  background: #ffffff;
  border: 1px dashed rgba(43, 122, 90, 0.3);
  color: #55a887;
  font-size: 16px;
}

/* ===== 右侧浮动控制条（可隐藏/显示） ===== */
.hud {
  position: fixed;
  right: 18px;
  top: 50%;
  transform: translateY(-50%);
  z-index: 100;
  display: flex;
  flex-direction: column;
  align-items: flex-end;
  gap: 8px;
  pointer-events: none;
  font-family: inherit;
}

/* 浮动切换按钮（默认始终可见） */
.hud__toggle {
  pointer-events: auto;
  appearance: none;
  border: 1px solid rgba(104, 165, 214, 0.35);
  background: rgba(255, 255, 255, 0.92);
  backdrop-filter: blur(10px);
  color: #0d9488;
  width: 40px;
  height: 40px;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  cursor: grab;
  touch-action: none;
  font-size: 18px;
  box-shadow: 0 8px 24px rgba(31, 77, 114, 0.18);
  transition: transform 160ms ease, box-shadow 160ms ease, background 160ms ease;
}

.hud__toggle:hover {
  transform: scale(1.08);
  background: rgba(255, 255, 255, 1);
  box-shadow: 0 10px 28px rgba(45, 108, 223, 0.32);
}

/* 拖动中状态：抓手光标 + 强化阴影 + 提示可拖动 */
.hud.is-dragging .hud__toggle {
  cursor: grabbing;
  transform: scale(1.06);
  box-shadow: 0 14px 32px rgba(45, 108, 223, 0.40);
  background: rgba(255, 255, 255, 0.98);
  border-color: rgba(45, 108, 223, 0.55);
}

.hud.is-dragging {
  pointer-events: auto;
}

.hud.is-dragging .hud__panel {
  box-shadow: 0 18px 40px rgba(45, 108, 223, 0.32);
}

.hud__toggle svg {
  width: 18px;
  height: 18px;
  fill: #0d9488;
}

/* 控制组容器：默认隐藏，is-open 时显示 */
.hud__panel {
  pointer-events: auto;
  display: flex;
  flex-direction: column;
  align-items: stretch;
  gap: 6px;
  padding: 10px 8px;
  border-radius: 16px;
  background: rgba(255, 255, 255, 0.92);
  backdrop-filter: blur(14px);
  border: 1px solid rgba(104, 165, 214, 0.25);
  box-shadow: 0 12px 32px rgba(31, 77, 114, 0.22);
  opacity: 0;
  transform: translateX(20px) scale(0.94);
  transform-origin: right center;
  transition: opacity 200ms ease, transform 200ms ease;
  visibility: hidden;
  min-width: 56px;
}

.hud.is-open .hud__panel {
  opacity: 1;
  transform: translateX(0) scale(1);
  visibility: visible;
}

/* 进度条在控制条里 */
.hud__panel .progress {
  margin: 0 4px 4px;
}

/* 控制按钮在垂直方向排列 */
.hud__panel .controls {
  display: flex;
  flex-direction: column;
  gap: 4px;
  align-items: stretch;
  padding: 0;
  min-width: 0;
}

.hud__panel .btn {
  width: 40px;
  height: 36px;
  padding: 0;
  font-size: 13px;
  display: flex;
  align-items: center;
  justify-content: center;
  border-radius: 10px;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.hud__panel .counter {
  text-align: center;
  font-size: 12px;
  color: #0d9488;
  font-weight: 700;
  padding: 2px 0;
}

.hud__panel .hint {
  display: none;
}

/* 全屏时只保留切换按钮 */
.is-fullscreen .hud__panel,
:fullscreen .hud__panel,
:-webkit-full-screen .hud__panel {
  display: none;
}

.is-fullscreen .hud__toggle,
:fullscreen .hud__toggle,
:-webkit-full-screen .hud__toggle {
  opacity: 0.4;
  transition: opacity 200ms ease;
}

.is-fullscreen .hud__toggle:hover,
:fullscreen .hud__toggle:hover,
:-webkit-full-screen .hud__toggle:hover {
  opacity: 1;
}

.progress {
  height: 4px;
  border-radius: 999px;
  background: rgba(30, 156, 137, 0.14);
  overflow: hidden;
}

.progress__bar {
  height: 100%;
  width: 0%;
  background: linear-gradient(90deg, #0d9488 0%, #47c6b2 42%, #0d9488 100%);
  transition: width 180ms ease;
}

.controls {
  display: flex;
  gap: 10px;
  align-items: center;
  justify-content: center;
  padding-top: 10px;
}

.btn {
  appearance: none;
  border: 1px solid rgba(104, 165, 214, 0.25);
  background: rgba(255, 255, 255, 0.82);
  color: #0d9488;
  border-radius: 14px;
  padding: 10px 12px;
  font-size: 14px;
  cursor: pointer;
  text-decoration: none;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  box-shadow: 0 8px 18px rgba(41, 89, 135, 0.08);
  font-weight: 700;
  backdrop-filter: blur(10px);
  transition: transform 140ms ease, box-shadow 140ms ease, background 140ms ease, border-color 140ms ease;
}

.btn:hover {
  border-color: rgba(111, 91, 255, 0.26);
  background: linear-gradient(135deg, rgba(255, 255, 255, 0.98), rgba(238, 240, 255, 0.96));
  transform: translateY(-1px);
  box-shadow: 0 12px 26px rgba(43, 88, 140, 0.12);
}

.btn:active {
  transform: translateY(1px);
}

.btn.is-tap,
.box.is-tap {
  animation: tapPulse 520ms ease;
}

.slide.is-enter .figure img,
.slide.is-enter .media img {
  animation: riseIn 520ms ease;
}

@keyframes decoFloat {
  0% {
    transform: translate3d(0, 0, 0);
  }
  50% {
    transform: translate3d(0, -6px, 0);
  }
  100% {
    transform: translate3d(0, 0, 0);
  }
}

@keyframes bgFloat {
  0% {
    transform: translate3d(0, 0, 0) scale(1);
  }
  50% {
    transform: translate3d(-10px, 6px, 0) scale(1.02);
  }
  100% {
    transform: translate3d(0, 0, 0) scale(1);
  }
}

@keyframes tapPulse {
  0% {
    transform: translateY(0) scale(1);
  }
  35% {
    transform: translateY(-1px) scale(1.02);
  }
  100% {
    transform: translateY(0) scale(1);
  }
}

@keyframes riseIn {
  0% {
    opacity: 0;
    transform: translateY(8px) scale(0.992);
  }
  100% {
    opacity: 1;
    transform: translateY(0) scale(1);
  }
}

.btn--ghost {
  background: transparent;
  box-shadow: none;
  border-color: transparent;
}

.btn--ghost:hover {
  background: rgba(43, 122, 90, 0.08);
  border-color: transparent;
}

.counter {
  min-width: 86px;
  text-align: center;
  font-size: 14px;
  color: #5d7f92;
  font-weight: 700;
}

.hint {
  text-align: center;
  padding-top: 6px;
  font-size: 12px;
  color: #89a6b7;
}

.btn--feishu {
  background: #0d9488;
  color: #ffffff;
  padding: 12px 24px;
  font-size: 1.1rem;
  border-radius: 12px;
  box-shadow: 0 10px 25px rgba(45, 108, 223, 0.3);
  border: none;
  transition: all 0.3s ease;
}

.btn--feishu:hover {
  background: #1e5bbd;
  transform: translateY(-3px) scale(1.05);
  box-shadow: 0 15px 35px rgba(45, 108, 223, 0.4);
  color: #ffffff;
}

@media (prefers-reduced-motion: reduce) {
  .slide,
  .progress__bar {
    transition: none;
  }
  .slide::before,
  .slide::after,
  .btn.is-tap,
  .box.is-tap,
  .slide.is-enter .figure img,
  .slide.is-enter .media img {
    animation: none;
  }
}

@media (max-width: 860px) {
  .slide::after {
    right: 88px;
    width: 180px;
    height: 72px;
  }
  .grid--2 {
    grid-template-columns: 1fr;
  }
  .flow {
    grid-template-columns: 1fr;
  }
  h1,
  h2 {
    max-width: none;
  }
}

/* ============ IMU 等级与命名解读 ============ */
.slide[data-id="imu-grades"] {
  display: flex;
  flex-direction: column;
}

.slide[data-id="imu-grades"] h2 {
  margin-bottom: 6px;
  font-size: clamp(22px, 2.6vw, 32px);
}

.slide[data-id="imu-grades"] .lead {
  margin-bottom: 0;
  font-size: 0.92rem;
  line-height: 1.45;
}

.imu-grade-main {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1.05fr);
  gap: 16px;
  margin-top: 10px;
  flex: 1 1 auto;
  min-height: 0;
}

.imu-grade-side {
  display: grid;
  grid-template-rows: 1fr 1fr;
  gap: 12px;
  min-height: 0;
}

.imu-grade-head {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 7px 14px;
  background: linear-gradient(135deg, #ecfdf5 0%, #d1fae5 100%);
  border-bottom: 1px solid #d1fae5;
  color: #0d9488;
  font-size: 0.92rem;
  font-weight: 700;
}

.imu-grade-table {
  font-size: 0.82rem;
  line-height: 1.3;
  table-layout: fixed;
  width: 100%;
}

.imu-grade-table thead th {
  text-align: center;
  padding: 6px 8px;
  font-size: 0.82rem;
}

.imu-grade-table thead th:first-child {
  width: 22%;
}

.imu-grade-table thead th:nth-child(2) {
  width: 28%;
}

.imu-grade-table tbody td {
  text-align: center;
  vertical-align: middle;
  padding: 6px 8px;
}

.imu-grade-table tbody td:nth-child(2) {
  font-family: "Segoe UI Variable", "Helvetica Neue", Arial, sans-serif;
  font-weight: 600;
  color: #0f172a;
  font-size: 0.9rem;
}

.imu-grade-table tbody td:nth-child(3) {
  text-align: left;
  color: #334155;
  font-size: 0.78rem;
  line-height: 1.35;
}

.imu-grade-row--tactical {
  background: linear-gradient(90deg, rgba(236, 72, 153, 0.06) 0%, rgba(139, 92, 246, 0.08) 100%);
}

.imu-grade-row--tactical td {
  font-weight: 600;
}

.imu-grade-row--consumer td:nth-child(2) {
  color: #94a3b8 !important;
}

.imu-grade-row--industrial td:nth-child(2) {
  color: #10b981 !important;
}

.imu-grade-row--navigation td:nth-child(2) {
  color: #0d9488 !important;
}

/* IMU 等级标签 */
.imu-tag {
  display: inline-block;
  padding: 2px 9px;
  border-radius: 999px;
  font-size: 0.74rem;
  font-weight: 700;
  letter-spacing: 0.04em;
  border: 1.5px solid transparent;
}

.imu-tag--consumer {
  background: #f1f5f9;
  color: #64748b;
  border-color: #cbd5e1;
}

.imu-tag--industrial {
  background: #d1fae5;
  color: #0d9488;
  border-color: #93c5fd;
}

/* ===========================================================
   #/6 step1-table  表格仿真数据样式
   =========================================================== */
.slide[data-id="step1-table"] .spec-card {
  max-height: 100%;
  overflow: hidden;
}

.slide[data-id="step1-table"] .spec-table {
  font-size: 20px;
  line-height: 1.35;
  table-layout: fixed;
  width: 100%;
}

.slide[data-id="step1-table"] .spec-table th,
.slide[data-id="step1-table"] .spec-table td {
  padding: 6px 8px;
  text-align: center;
  white-space: normal;
  word-break: break-word;
  vertical-align: middle;
}

.slide[data-id="step1-table"] .spec-table th:first-child,
.slide[data-id="step1-table"] .spec-table td:first-child {
  text-align: left;
  white-space: normal;
  font-weight: 600;
  color: #0f172a;
}

/* 交底照片 */
.spec-cell__photo {
  display: inline-block;
  padding: 2px 8px;
  border-radius: 999px;
  background: linear-gradient(135deg, rgba(45, 108, 223, 0.10), rgba(95, 225, 255, 0.06));
  color: #0d9488;
  font-weight: 700;
  font-size: 20px;
  border: 1px solid rgba(45, 108, 223, 0.25);
}

/* 合格 - 绿色 */
.spec-cell__ok {
  color: #047857;
  font-weight: 800;
  background: rgba(16, 185, 129, 0.08);
  border-radius: 6px;
}

/* 预警 - 橙色 */
.spec-cell__warn {
  color: #b45309;
  font-weight: 800;
  background: rgba(245, 158, 11, 0.12);
  border-radius: 6px;
}

/* 需复核 - 红色 */
.spec-cell__err {
  color: #9a3412;
  font-weight: 800;
  background: rgba(239, 68, 68, 0.10);
  border-radius: 6px;
}

/* 表格底部 - 模拟表格水印提示 */
.spec-watermark {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  margin-top: 12px;
  padding: 8px 16px;
  background: repeating-linear-gradient(
    135deg,
    rgba(245, 158, 11, 0.10) 0,
    rgba(245, 158, 11, 0.10) 12px,
    rgba(245, 158, 11, 0.18) 12px,
    rgba(245, 158, 11, 0.18) 24px
  );
  border: 2px dashed #b45309;
  border-radius: 8px;
  color: #9a3412;
  font-weight: 800;
  font-size: 20px;
  letter-spacing: 0.04em;
}

.spec-watermark__icon {
  font-size: 24px;
  line-height: 1;
}

.spec-watermark__text {
  font-family: "Segoe UI Variable", "Microsoft YaHei UI", sans-serif;
}

/* 表格底部图例 */
.spec-legend {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: center;
  gap: 16px;
  margin-top: 8px;
  padding: 6px 10px;
  background: rgba(15, 23, 42, 0.04);
  border-radius: 8px;
  border: 1px solid rgba(15, 23, 42, 0.06);
  font-size: 20px;
  color: #334155;
}

.spec-legend__item {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  font-weight: 600;
}

.spec-legend__ok {
  color: #047857;
}

.spec-legend__warn {
  color: #b45309;
}

.spec-legend__err {
  color: #9a3412;
}

/* ===========================================================
   #/7  step2-scan SOP 总览页 专用样式
   =========================================================== */
.slide[data-id="step2-scan"] {
  display: flex;
  flex-direction: column;
  height: 100%;
}

.slide[data-id="step2-scan"] h2 {
  flex: 0 0 auto;
  margin-bottom: 4px;
}

.slide[data-id="step2-scan"] .lead {
  flex: 0 0 auto;
  margin-bottom: 8px;
}

.slide[data-id="step2-scan"] .step2-layout {
  flex: 1 1 0;
  min-height: 0;
  display: grid;
  grid-template-columns: minmax(0, 0.72fr) minmax(0, 0.28fr);
  gap: 12px;
}

.slide[data-id="step2-scan"] .step2-top {
  min-height: 0;
  display: grid;
  grid-template-columns: minmax(0, 1.02fr) minmax(0, 1fr);
  gap: 12px;
}

.slide[data-id="step2-scan"] .step2-top__text {
  order: 1;
}

.slide[data-id="step2-scan"] .step2-top__visual {
  order: 2;
  position: relative;
  min-height: 0;
  display: flex;
  flex-direction: column;
  background: linear-gradient(135deg, rgba(45, 108, 223, 0.08), rgba(95, 225, 255, 0.04));
  border: 1px solid rgba(45, 108, 223, 0.22);
  border-radius: 16px;
  padding: 8px 10px 10px;
  box-shadow: 0 10px 24px rgba(36, 76, 112, 0.10);
  overflow: hidden;
  gap: 6px;
}

/* step2-scan 范围内的视觉容器：顶部一行（chip + 飞书按钮），下面图片撑满 */
.slide[data-id="step2-scan"] .step2-visual__topbar {
  flex: 0 0 auto;
  display: flex;
  flex-direction: row;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
  min-height: 0;
}

/* 在 step2-scan 内，chip 改为静态布局（不绝对定位），与飞书按钮同行 */
.slide[data-id="step2-scan"] .sop-overview__chip {
  position: static;
  top: auto;
  right: auto;
  transform: none;
  font-size: 18px;
  padding: 6px 14px;
}

/* 飞书按钮（与 chip 同行） */
.slide[data-id="step2-scan"] .step2-visual__feishu {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 6px 14px;
  border-radius: 999px;
  background: linear-gradient(135deg, #2d6cdf, #5fa8ff);
  color: #ffffff;
  font-size: 18px;
  font-weight: 800;
  text-decoration: none;
  box-shadow: 0 4px 10px rgba(45, 108, 223, 0.22);
  transition: transform 180ms ease, box-shadow 180ms ease;
  white-space: nowrap;
}

.slide[data-id="step2-scan"] .step2-visual__feishu:hover {
  transform: translateY(-1px);
  box-shadow: 0 6px 14px rgba(45, 108, 223, 0.30);
  color: #ffffff;
}

/* 图片区撑满 topbar 之外的剩余空间 */
.slide[data-id="step2-scan"] .step2-top__visual .sop-overview__img {
  flex: 1 1 0;
  min-height: 0;
}

.slide[data-id="step2-scan"] .step2-top__text {
  min-height: 0;
  display: grid;
  grid-template-rows: minmax(0, 0.52fr) minmax(0, 0.48fr);
  gap: 8px;
}

.slide[data-id="step2-scan"] .step2-text-card {
  min-height: 0;
  background: linear-gradient(135deg, rgba(255, 138, 91, 0.10), rgba(139, 92, 246, 0.08));
  border: 1px solid rgba(255, 138, 91, 0.26);
  border-radius: 14px;
  box-shadow: 0 6px 18px rgba(15, 23, 42, 0.06);
  padding: 5px 10px;
  display: flex;
  flex-direction: column;
  overflow: hidden;
}

.slide[data-id="step2-scan"] .step2-text-card--warm {
  background: linear-gradient(135deg, rgba(255, 138, 91, 0.10), rgba(139, 92, 246, 0.08));
  border-color: rgba(255, 138, 91, 0.26);
  flex: 1 1 0;
  min-height: 0;
}

.slide[data-id="step2-scan"] .step2-text-card__title {
  flex: 0 0 auto;
  font-size: 22px;
  font-weight: 800;
  color: #0f172a;
  margin-bottom: 4px;
}

.slide[data-id="step2-scan"] .step2-text-list {
  flex: 1 1 0;
  min-height: 0;
  display: grid;
  grid-template-rows: repeat(4, minmax(0, 1fr));
  gap: 3px;
}

.slide[data-id="step2-scan"] .step2-text-item {
  min-height: 0;
  display: grid;
  grid-template-columns: 36px 1fr;
  gap: 8px;
  align-items: start;
  padding: 1px 0;
  border-top: 1px dashed rgba(148, 163, 184, 0.45);
}

.slide[data-id="step2-scan"] .step2-text-item:first-child {
  border-top: none;
  padding-top: 0;
}

.slide[data-id="step2-scan"] .step2-text-item__no {
  width: 32px;
  height: 32px;
  border-radius: 50%;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-size: 22px;
  font-weight: 900;
  color: #fff;
  background: linear-gradient(135deg, #0d9488, #5eead4);
  box-shadow: 0 4px 10px rgba(45, 108, 223, 0.22);
}

.slide[data-id="step2-scan"] .step2-text-item__title {
  font-size: 20px;
  font-weight: 800;
  color: #0f172a;
  line-height: 1.15;
  margin-bottom: 0;
}

.slide[data-id="step2-scan"] .step2-text-item__desc {
  font-size: 20px;
  line-height: 1.25;
  color: #475569;
}

.slide[data-id="step2-scan"] .step2-note-list {
  margin: 0;
  padding-left: 20px;
  flex: 1 1 0;
  min-height: 0;
  display: grid;
  grid-template-rows: repeat(5, minmax(0, 1fr));
  gap: 0;
  font-size: 20px;
  line-height: 1.2;
  color: #334155;
}

.slide[data-id="step2-scan"] .step2-note-list li b {
  color: #9a3412;
}

.slide[data-id="step2-scan"] .step2-scenes {
  min-height: 0;
  display: grid;
  grid-template-rows: repeat(3, minmax(0, 1fr));
  gap: 8px;
}

.slide[data-id="step2-scan"] .step2-scene {
  min-height: 0;
  display: grid;
  grid-template-columns: minmax(0, 0.42fr) minmax(0, 0.58fr);
  gap: 8px;
  align-items: stretch;
  background: rgba(255, 255, 255, 0.82);
  border: 1px solid rgba(116, 172, 224, 0.28);
  border-radius: 14px;
  box-shadow: 0 6px 18px rgba(36, 76, 112, 0.08);
  padding: 6px 8px;
}

.slide[data-id="step2-scan"] .step2-scene__img {
  min-height: 0;
  min-width: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  background: #f8fafc;
  border-radius: 10px;
  padding: 3px;
}

.slide[data-id="step2-scan"] .step2-scene__img img {
  display: block;
  max-width: 100%;
  max-height: 100%;
  width: auto;
  height: auto;
  object-fit: contain;
  border-radius: 6px;
}

.slide[data-id="step2-scan"] .step2-scene__text {
  min-width: 0;
  min-height: 0;
  display: flex;
  flex-direction: column;
  justify-content: center;
  text-align: left;
  gap: 2px;
}

.slide[data-id="step2-scan"] .step2-scene__title {
  font-size: 20px;
  font-weight: 900;
  color: #0d9488;
  line-height: 1.2;
}

.slide[data-id="step2-scan"] .step2-scene__tip {
  font-size: 18px;
  font-weight: 700;
  color: #64748b;
  line-height: 1.2;
}

.slide[data-id="step2-scan"] .step2-scene__desc {
  margin: 0;
  font-size: 18px;
  line-height: 1.25;
  color: #334155;
  text-align: left;
}

.slide[data-id="step2-scan"] .step2-scene__desc b {
  color: #9a3412;
}

.slide[data-id="step2-scan"] .step2-merge {
  flex: 1 1 0;
  min-height: 0;
  display: grid;
  grid-template-rows: minmax(0, 0.58fr) minmax(0, 0.42fr);
  gap: 10px;
}

.slide[data-id="step2-scan"] .step2-merge .sop-overview {
  flex: unset;
  height: 100%;
}

.slide[data-id="step2-scan"] .sop-merge {
  min-height: 0;
  display: grid;
  grid-template-columns: minmax(0, 1.55fr) minmax(0, 0.75fr);
  gap: 12px;
}

.slide[data-id="step2-scan"] .sop-merge__left {
  min-height: 0;
  display: flex;
  flex-direction: column;
  gap: 8px;
}

.slide[data-id="step2-scan"] .sop-merge__scenario-list {
  flex: 1 1 0;
  min-height: 0;
  display: grid;
  grid-template-rows: repeat(3, 1fr);
  gap: 8px;
}

.slide[data-id="step2-scan"] .sop-scenario--text {
  padding: 10px 12px;
}

.slide[data-id="step2-scan"] .sop-scenario--text .sop-scenario__body {
  gap: 6px;
}

.slide[data-id="step2-scan"] .sop-scenario--text .sop-scenario__desc {
  text-align: left;
  font-size: 12.8px;
}

.slide[data-id="step2-scan"] .sop-general {
  margin-bottom: 0;
  padding: 10px 12px;
  gap: 12px;
}

.slide[data-id="step2-scan"] .sop-general__title {
  font-size: 14px;
  padding-right: 10px;
}

.slide[data-id="step2-scan"] .sop-general__list {
  gap: 4px 14px;
  font-size: 12.8px;
}

.slide[data-id="step2-scan"] .sop-merge__right {
  min-height: 0;
  display: grid;
  grid-template-rows: repeat(3, 1fr);
  gap: 8px;
}

.slide[data-id="step2-scan"] .sop-merge__img-card {
  position: relative;
  display: flex;
  align-items: center;
  justify-content: center;
  background: rgba(255, 255, 255, 0.78);
  border: 1px solid rgba(116, 172, 224, 0.28);
  border-radius: 14px;
  box-shadow: 0 6px 18px rgba(36, 76, 112, 0.08);
  overflow: hidden;
  padding: 8px;
  min-height: 0;
}

.slide[data-id="step2-scan"] .sop-merge__img-card img {
  display: block;
  max-width: 100%;
  max-height: 100%;
  width: auto;
  height: auto;
  object-fit: contain;
  border-radius: 10px;
}

.slide[data-id="step2-scan"] .sop-merge__img-tag {
  position: absolute;
  top: 8px;
  left: 8px;
  padding: 3px 10px;
  border-radius: 999px;
  font-weight: 900;
  font-size: 11.5px;
  color: #fff;
  background: linear-gradient(135deg, #0d9488, #5eead4);
  box-shadow: 0 4px 10px rgba(45, 108, 223, 0.28);
}

.sop-overview {
  flex: 1 1 0;
  min-height: 0;
  display: grid;
  grid-template-columns: minmax(0, 1.2fr) minmax(0, 1fr);
  gap: 14px;
}

/* 左侧主图 */
.sop-overview__hero {
  position: relative;
  display: flex;
  flex-direction: column;
  background: linear-gradient(135deg, rgba(45, 108, 223, 0.08), rgba(95, 225, 255, 0.04));
  border: 1px solid rgba(45, 108, 223, 0.22);
  border-radius: 16px;
  padding: 10px 12px 12px;
  box-shadow: 0 10px 24px rgba(36, 76, 112, 0.10);
  overflow: hidden;
  min-height: 0;
}

.sop-overview__chip {
  position: absolute;
  top: 10px;
  left: 10px;
  padding: 4px 12px;
  border-radius: 999px;
  background: linear-gradient(135deg, #0d9488, #5eead4);
  color: #fff;
  font-weight: 800;
  font-size: 11.5px;
  letter-spacing: 0.04em;
  z-index: 2;
  box-shadow: 0 4px 12px rgba(45, 108, 223, 0.30);
}

.sop-overview__img {
  flex: 1 1 0;
  min-height: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 20px 4px 0;
}

.sop-overview__img img {
  display: block;
  max-width: 100%;
  max-height: 100%;
  width: auto;
  height: auto;
  object-fit: contain;
  border-radius: 8px;
  box-shadow: 0 6px 18px rgba(15, 23, 42, 0.10);
}

/* 右侧 4 个步骤 */
.sop-overview__steps {
  display: grid;
  grid-template-rows: repeat(4, 1fr);
  gap: 8px;
  min-height: 0;
}

.sop-overview__step {
  position: relative;
  display: grid;
  grid-template-columns: 38px 1fr;
  align-items: center;
  gap: 10px;
  padding: 8px 12px 8px 8px;
  border-radius: 12px;
  background: rgba(255, 255, 255, 0.86);
  border: 1px solid rgba(15, 23, 42, 0.08);
  box-shadow: 0 6px 14px rgba(15, 23, 42, 0.06);
  overflow: hidden;
}

.sop-overview__step--blue {
  background: linear-gradient(135deg, rgba(45, 108, 223, 0.10), rgba(95, 225, 255, 0.05));
  border-color: rgba(45, 108, 223, 0.28);
}

.sop-overview__step--green {
  background: linear-gradient(135deg, rgba(30, 156, 137, 0.10), rgba(160, 255, 185, 0.05));
  border-color: rgba(30, 156, 137, 0.28);
}

.sop-overview__step--purple {
  background: linear-gradient(135deg, rgba(139, 92, 246, 0.10), rgba(190, 160, 255, 0.05));
  border-color: rgba(139, 92, 246, 0.28);
}

.sop-overview__step--orange {
  background: linear-gradient(135deg, rgba(255, 138, 91, 0.12), rgba(245, 158, 11, 0.06));
  border-color: rgba(255, 138, 91, 0.32);
}

.sop-overview__num {
  width: 32px;
  height: 32px;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  font-weight: 900;
  font-size: 18px;
  color: #fff;
  font-family: "Segoe UI Variable", Arial, sans-serif;
  box-shadow: 0 4px 10px rgba(15, 23, 42, 0.15);
}

.sop-overview__step--blue .sop-overview__num {
  background: linear-gradient(135deg, #0d9488, #5eead4);
}

.sop-overview__step--green .sop-overview__num {
  background: linear-gradient(135deg, #0d9488, #a0ffb9);
}

.sop-overview__step--purple .sop-overview__num {
  background: linear-gradient(135deg, #0d9488, #bea0ff);
}

.sop-overview__step--orange .sop-overview__num {
  background: linear-gradient(135deg, #fb923c, #f59e0b);
}

.sop-overview__body {
  min-width: 0;
}

.sop-overview__title {
  font-weight: 800;
  font-size: 14.5px;
  color: #0f172a;
  margin-bottom: 2px;
  line-height: 1.2;
}

.sop-overview__desc {
  font-size: 12px;
  line-height: 1.5;
  color: #475569;
}

/* 底部 */
.sop-overview__foot {
  flex: 0 0 auto;
  display: flex;
  align-items: center;
  gap: 12px;
  margin-top: 8px;
  padding: 6px 10px;
  background: rgba(45, 108, 223, 0.06);
  border: 1px solid rgba(45, 108, 223, 0.22);
  border-radius: 10px;
}

.sop-overview__foot .btn {
  flex: 0 0 auto;
  font-size: 12px;
  padding: 5px 12px;
}

.sop-overview__foot-tip {
  font-size: 11.5px;
  color: #475569;
  line-height: 1.45;
}

@media (max-width: 980px) {
  .sop-overview {
    grid-template-columns: 1fr;
    grid-template-rows: minmax(160px, 0.9fr) 1fr;
  }
  .sop-overview__steps {
    grid-template-rows: repeat(4, auto);
  }
}



/* 通用：让 SOP 页采用 flex-column 让主内容自适应 */
.slide[data-id^="sop-"] {
  display: flex;
  flex-direction: column;
  height: 100%;
}

.slide[data-id^="sop-"] h2 {
  flex: 0 0 auto;
  margin-bottom: 4px;
}

.slide[data-id^="sop-"] .lead {
  flex: 0 0 auto;
  margin-bottom: 6px;
}

/* ============ SOP 网格 ============ */
.sop-grid {
  flex: 1 1 0;
  min-height: 0;
  display: grid;
  gap: 10px;
}

.sop-grid--1 {
  /* 一页 3 个 step：第一个 0.5 行，第二个 0.4 行，第三个 0.6 行 */
  grid-template-rows: 0.5fr 0.4fr 0.6fr;
}

.sop-grid--2 {
  /* SOP 二：4 个 step 排成 2 列 */
  grid-template-columns: 1fr 1fr;
  grid-template-rows: 1fr 1fr;
  grid-template-areas:
    "settings newproj"
    "capture save";
}

.sop-grid--2 .sop-step:nth-child(1) { grid-area: settings; }
.sop-grid--2 .sop-step:nth-child(2) { grid-area: newproj; }
.sop-grid--2 .sop-step:nth-child(3) { grid-area: capture; }
.sop-grid--2 .sop-step:nth-child(4) { grid-area: save; }

/* ============ SOP 单个 step 卡片 ============ */
.sop-step {
  position: relative;
  display: flex;
  flex-direction: column;
  background: rgba(255, 255, 255, 0.78);
  border: 1px solid rgba(116, 172, 224, 0.28);
  border-radius: 14px;
  padding: 8px 12px 10px;
  box-shadow: 0 6px 18px rgba(36, 76, 112, 0.08);
  overflow: hidden;
  min-height: 0;
}

.sop-step--wide {
  /* 占用 2 列 */
  grid-column: 1 / span 2;
}

.sop-step--narrow {
  /* 占 1 列 */
  grid-column: 1 / span 1;
}

/* step 头部：序号 + 标题 + 副标题 */
.sop-step__head {
  flex: 0 0 auto;
  display: flex;
  align-items: baseline;
  gap: 8px;
  padding-bottom: 4px;
  border-bottom: 1px dashed rgba(45, 108, 223, 0.22);
  margin-bottom: 6px;
}

.sop-step__no {
  font-weight: 900;
  font-size: 20px;
  color: #0d9488;
  font-family: "Segoe UI Variable", "Helvetica Neue", Arial, sans-serif;
  line-height: 1;
}

.sop-step__title {
  font-weight: 800;
  font-size: 15px;
  color: #0f172a;
}

.sop-step__sub {
  font-size: 11.5px;
  color: #64748b;
  font-weight: 600;
  margin-left: auto;
  text-align: right;
}

/* step 主体 */
.sop-step__body {
  flex: 1 1 0;
  min-height: 0;
  display: grid;
  grid-template-columns: minmax(0, 1.1fr) minmax(0, 1fr);
  gap: 10px;
  align-items: stretch;
}

/* SOP 一 的第 3 行：3 张图横排 */
.sop-step__body--row3 {
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 8px;
}

.sop-step__body--row3 .sop-img {
  display: flex;
  flex-direction: column;
  background: transparent;
  border: none;
  box-shadow: none;
  padding: 0;
}

.sop-step__body--capture {
  grid-template-columns: minmax(0, 1.3fr) minmax(0, 1fr);
  gap: 10px;
}

/* SOP 一 步骤 3 隐藏默认 cap 背景 */
.sop-step__body--row3 .sop-img__cap {
  position: static;
  transform: none;
  background: transparent;
  color: #475569;
  font-size: 11px;
  padding: 4px 0 0;
  text-align: center;
}

/* ============ 图片容器 ============ */
.sop-img {
  position: relative;
  display: flex;
  flex-direction: column;
  background: #f8fafc;
  border: 1px solid rgba(15, 23, 42, 0.06);
  border-radius: 10px;
  padding: 6px 6px 22px;
  overflow: hidden;
  min-height: 0;
  box-shadow: 0 4px 12px rgba(15, 23, 42, 0.05);
}

.sop-img img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: contain;
  flex: 1 1 0;
  min-height: 0;
}

.sop-img--wide img {
  max-height: 100%;
  object-fit: contain;
}

.sop-img--capture {
  padding: 6px 6px 22px;
}

.sop-img__cap {
  position: absolute;
  left: 0;
  right: 0;
  bottom: 0;
  padding: 3px 8px;
  font-size: 11px;
  font-weight: 600;
  color: #0d9488;
  background: linear-gradient(180deg, rgba(219, 234, 254, 0.0), rgba(219, 234, 254, 0.85));
  text-align: center;
  line-height: 1.3;
}

/* ============ 文字说明列表 ============ */
.sop-bullets {
  list-style: none;
  margin: 0;
  padding: 0 4px 0 0;
  font-size: 12.5px;
  line-height: 1.55;
  color: #334155;
  display: flex;
  flex-direction: column;
  gap: 4px;
  align-self: center;
}

.sop-bullets li {
  position: relative;
  padding-left: 14px;
}

.sop-bullets li::before {
  content: "";
  position: absolute;
  left: 0;
  top: 7px;
  width: 6px;
  height: 6px;
  border-radius: 50%;
  background: linear-gradient(135deg, #0d9488, #5eead4);
}

.sop-bullets li b {
  color: #0f172a;
  font-weight: 700;
}

/* ============ 采集界面 15 项编号列表 ============ */
.sop-capture-list {
  list-style: none;
  margin: 0;
  padding: 4px 6px 4px 0;
  font-size: 12px;
  line-height: 1.55;
  color: #334155;
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 3px 12px;
  align-content: start;
  align-self: start;
  max-height: 100%;
  overflow: auto;
}

.sop-capture-list li {
  position: relative;
  padding-left: 22px;
  counter-increment: cap;
}

.sop-capture-list {
  counter-reset: cap;
}

.sop-capture-list li::before {
  content: counter(cap);
  position: absolute;
  left: 0;
  top: 1px;
  width: 16px;
  height: 16px;
  border-radius: 50%;
  background: linear-gradient(135deg, #0d9488, #0d9488);
  color: #fff;
  font-weight: 800;
  font-size: 10px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-family: "Segoe UI Variable", Arial, sans-serif;
}

/* ============ SOP 一 底部：下载按钮 + 提示 ============ */
.sop-foot {
  flex: 0 0 auto;
  display: flex;
  align-items: center;
  gap: 12px;
  margin-top: 6px;
  padding: 6px 8px;
  background: rgba(45, 108, 223, 0.06);
  border: 1px solid rgba(45, 108, 223, 0.22);
  border-radius: 10px;
}

.sop-foot .btn {
  flex: 0 0 auto;
  font-size: 12px;
  padding: 5px 12px;
}

.sop-foot__tip {
  font-size: 11.5px;
  color: #475569;
  line-height: 1.45;
}

/* ===========================================================
   #/10 SOP 三：扫描注意事项 专用样式
   =========================================================== */
.sop-general {
  flex: 0 0 auto;
  display: grid;
  grid-template-columns: minmax(0, 0.6fr) minmax(0, 2fr);
  gap: 16px;
  align-items: center;
  padding: 12px 16px;
  background: linear-gradient(135deg, rgba(255, 138, 91, 0.10), rgba(139, 92, 246, 0.08));
  border: 1px solid rgba(255, 138, 91, 0.30);
  border-radius: 12px;
  margin-bottom: 10px;
}

.sop-general__title {
  font-weight: 800;
  font-size: 16px;
  color: #9a3412;
  text-align: center;
  line-height: 1.3;
  border-right: 1px solid rgba(255, 138, 91, 0.30);
  padding-right: 14px;
}

.sop-general__list {
  list-style: none;
  margin: 0;
  padding: 0;
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 6px 20px;
  font-size: 14px;
  line-height: 1.55;
  color: #334155;
}

.sop-general__list li {
  position: relative;
  padding-left: 26px;
  counter-increment: gl;
}

.sop-general__list {
  counter-reset: gl;
}

.sop-general__list li::before {
  content: counter(gl);
  position: absolute;
  left: 0;
  top: 1px;
  width: 20px;
  height: 20px;
  border-radius: 50%;
  background: linear-gradient(135deg, #fb923c, #f59e0b);
  color: #fff;
  font-weight: 800;
  font-size: 12px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-family: "Segoe UI Variable", Arial, sans-serif;
}

.sop-general__list li b {
  color: #9a3412;
  font-weight: 700;
}

.sop-scenarios {
  flex: 1 1 0;
  min-height: 0;
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 12px;
}

.sop-scenario {
  position: relative;
  display: flex;
  flex-direction: column;
  background: rgba(255, 255, 255, 0.78);
  border: 1px solid rgba(116, 172, 224, 0.28);
  border-radius: 14px;
  padding: 12px 14px 14px;
  box-shadow: 0 6px 18px rgba(36, 76, 112, 0.08);
  overflow: hidden;
  min-height: 0;
}

.sop-scenario__head {
  flex: 0 0 auto;
  display: flex;
  justify-content: space-between;
  align-items: baseline;
  padding-bottom: 6px;
  border-bottom: 1px dashed rgba(45, 108, 223, 0.22);
  margin-bottom: 6px;
}

.sop-scenario__tag {
  font-weight: 900;
  font-size: 16px;
  color: #0d9488;
}

.sop-scenario__tip {
  font-size: 12.5px;
  color: #64748b;
  font-weight: 600;
}

.sop-scenario__body {
  flex: 1 1 0;
  min-height: 0;
  display: flex;
  flex-direction: column;
  gap: 8px;
}

.sop-scenario__body .sop-img {
  flex: 1 1 0;
  min-height: 0;
  padding: 4px 4px 4px;
  background: #f8fafc;
}

.sop-scenario__body .sop-img img {
  max-height: 100%;
}

.sop-scenario__desc {
  flex: 0 0 auto;
  font-size: 13.5px;
  line-height: 1.55;
  color: #334155;
  margin: 0;
  text-align: center;
}

.sop-scenario__desc b {
  color: #9a3412;
  font-weight: 800;
}

/* ===========================================================
   #/11  step3-post 拼接三层 卡片
   =========================================================== */
.reg-3layers {
  flex: 0 0 auto;
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 10px;
  margin-top: 4px;
  margin-bottom: 4px;
}

.reg-card {
  position: relative;
  background: rgba(255, 255, 255, 0.82);
  border-radius: 12px;
  padding: 8px 10px 10px 36px;
  border: 1px solid rgba(15, 23, 42, 0.08);
  box-shadow: 0 6px 16px rgba(15, 23, 42, 0.06);
  min-height: 0;
}

.reg-card--blue {
  background: linear-gradient(135deg, rgba(45, 108, 223, 0.10), rgba(95, 225, 255, 0.06));
  border-color: rgba(45, 108, 223, 0.28);
}

.reg-card--green {
  background: linear-gradient(135deg, rgba(30, 156, 137, 0.10), rgba(160, 255, 185, 0.06));
  border-color: rgba(30, 156, 137, 0.28);
}

.reg-card--purple {
  background: linear-gradient(135deg, rgba(139, 92, 246, 0.10), rgba(190, 160, 255, 0.06));
  border-color: rgba(139, 92, 246, 0.28);
}

.reg-card__no {
  position: absolute;
  left: 10px;
  top: 8px;
  width: 22px;
  height: 22px;
  border-radius: 50%;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-weight: 900;
  font-size: 13px;
  color: #fff;
  font-family: "Segoe UI Variable", Arial, sans-serif;
}

.reg-card--blue .reg-card__no {
  background: linear-gradient(135deg, #0d9488, #5eead4);
}

.reg-card--green .reg-card__no {
  background: linear-gradient(135deg, #0d9488, #a0ffb9);
}

.reg-card--purple .reg-card__no {
  background: linear-gradient(135deg, #0d9488, #bea0ff);
}

.reg-card__title {
  font-weight: 800;
  font-size: 14px;
  color: #0f172a;
  margin-bottom: 2px;
}

.reg-card__desc {
  font-size: 12px;
  line-height: 1.5;
  color: #475569;
}

/* ICP 卡片内的演示链接 */
.reg-card__link {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  margin-top: 8px;
  padding: 5px 12px;
  font-size: 12px;
  font-weight: 800;
  color: #047857;
  background: linear-gradient(135deg, #ecfdf5, #d1fae5);
  border: 1.5px solid #10b981;
  border-radius: 14px;
  text-decoration: none;
  transition: transform 160ms ease, box-shadow 160ms ease, background 160ms ease;
  align-self: flex-start;
  letter-spacing: 0.3px;
}

.reg-card__link:hover {
  background: linear-gradient(135deg, #d1fae5, #a7f3d0);
  box-shadow: 0 6px 16px rgba(16, 185, 129, 0.25);
  transform: translateY(-1px);
}

.reg-card__link-icon {
  display: inline-block;
  font-size: 10px;
  line-height: 1;
  color: #047857;
}

.reg-3layers--compact .reg-card__link {
  margin-top: 6px;
  padding: 4px 10px;
  font-size: 11.5px;
  border-radius: 12px;
}

/* ===========================================================
   响应式：小屏下 SOP 网格降级
   =========================================================== */
@media (max-width: 980px) {
  .sop-grid--2 {
    grid-template-columns: 1fr;
    grid-template-rows: repeat(4, auto);
    grid-template-areas:
      "settings"
      "newproj"
      "capture"
      "save";
  }
  .sop-scenarios {
    grid-template-columns: 1fr;
  }
  .sop-general {
    grid-template-columns: 1fr;
  }
  .sop-general__title {
    border-right: none;
    border-bottom: 1px solid rgba(255, 138, 91, 0.30);
    padding-right: 0;
    padding-bottom: 6px;
  }
  .sop-general__list {
    grid-template-columns: 1fr;
  }
  .reg-3layers {
    grid-template-columns: 1fr;
  }
  .sop-step__body,
  .sop-step__body--capture,
  .sop-step__body--row3 {
    grid-template-columns: 1fr;
  }
}

.imu-tag--tactical {
  background: linear-gradient(135deg, #f59e0b 0%, #0d9488 100%);
  color: #ffffff;
  border-color: #be185d;
  box-shadow: 0 2px 6px rgba(190, 24, 93, 0.25);
}

.imu-tag--navigation {
  background: linear-gradient(135deg, #ecfdf5 0%, #d1fae5 100%);
  color: #065f46;
  border-color: #c4b5fd;
}

/* 含义/总结条目 */
.imu-grade-box {
  height: 100%;
  display: flex;
  flex-direction: column;
  padding: 10px 14px;
  min-height: 0;
}

.slide[data-id="imu-grades"] .box__k--lg {
  font-size: 0.98rem;
  margin-bottom: 5px;
  flex: 0 0 auto;
}

.slide[data-id="imu-grades"] .box__v {
  flex: 1 1 auto;
  display: flex;
  flex-direction: column;
  gap: 5px;
  min-height: 0;
  overflow: hidden;
}

.imu-meaning-item,
.imu-summary-item {
  display: flex;
  gap: 8px;
  background: linear-gradient(135deg, #ecfdf5 0%, #d1fae5 100%);
  border-radius: 6px;
  padding: 5px 9px;
  border-left: 3px solid #0d9488;
  flex: 1 1 auto;
  min-height: 0;
}

.imu-summary-item {
  background: linear-gradient(135deg, #ecfdf5 0%, #ecfdf5 100%);
  border-left-color: #0d9488;
}

.imu-meaning-num,
.imu-summary-icon {
  flex: 0 0 auto;
  font-size: 0.85rem;
  font-weight: 800;
  color: #0d9488;
  line-height: 1.2;
  min-width: 16px;
}

.imu-summary-icon {
  color: #0d9488;
}

.imu-meaning-body,
.imu-summary-body {
  flex: 1 1 auto;
  min-width: 0;
}

.imu-meaning-title,
.imu-summary-title {
  font-size: 0.8rem;
  font-weight: 700;
  color: #0d9488;
  margin-bottom: 1px;
  line-height: 1.3;
}

.imu-summary-title {
  color: #065f46;
}

.imu-meaning-desc,
.imu-summary-desc {
  font-size: 0.74rem;
  line-height: 1.42;
  color: #1e293b;
}


/* ===== #/22 step7-analysis 专用样式 ===== */
.slide[data-id="step7-analysis"] .step7-grid {
  display: grid;
  grid-template-columns: minmax(0, 1.45fr) minmax(0, 1fr);
  gap: 28px;
  margin-top: 12px;
  height: calc(100% - 110px);
  align-items: stretch;
}

.slide[data-id="step7-analysis"] .step7-figure {
  position: relative;
  display: flex;
  flex-direction: column;
  background: rgba(255, 255, 255, 0.92);
  border: 1px solid rgba(116, 172, 224, 0.22);
  border-radius: 18px;
  box-shadow: 0 12px 32px rgba(41, 89, 135, 0.10);
  padding: 12px 16px 16px;
  overflow: hidden;
}

.slide[data-id="step7-analysis"] .step7-figure__chip {
  position: absolute;
  top: 12px;
  right: 16px;
  z-index: 2;
  background: linear-gradient(135deg, #0d9488 0%, #0d9488 100%);
  color: #fff;
  font-size: 12px;
  font-weight: 700;
  letter-spacing: 0.05em;
  padding: 4px 12px;
  border-radius: 999px;
  box-shadow: 0 4px 12px rgba(45, 108, 223, 0.25);
}

.slide[data-id="step7-analysis"] .step7-figure__img {
  flex: 1;
  width: 100%;
  height: 100%;
  object-fit: contain;
  border-radius: 12px;
  border: 1px solid rgba(0, 0, 0, 0.06);
  background: #ffffff;
  padding: 8px;
  max-height: 100%;
}

.slide[data-id="step7-analysis"] .step7-logic {
  display: flex;
  flex-direction: column;
  gap: 14px;
  height: 100%;
  min-height: 0;
}

.slide[data-id="step7-analysis"] .step7-logic__title {
  margin: 0 0 4px 0;
  font-size: 1.3rem;
  font-weight: 800;
  color: #0f172a;
  padding-bottom: 8px;
  border-bottom: 2px solid #e2e8f0;
  letter-spacing: 0.02em;
}

.slide[data-id="step7-analysis"] .step7-card {
  display: flex;
  align-items: flex-start;
  gap: 14px;
  padding: 14px 16px;
  border-radius: 12px;
  border-left: 5px solid transparent;
  box-shadow: 0 4px 14px rgba(15, 23, 42, 0.06);
  transition: transform 200ms ease, box-shadow 200ms ease;
}

.slide[data-id="step7-analysis"] .step7-card:hover {
  transform: translateX(2px);
  box-shadow: 0 8px 22px rgba(15, 23, 42, 0.10);
}

.slide[data-id="step7-analysis"] .step7-card__num {
  flex: 0 0 auto;
  width: 36px;
  height: 36px;
  border-radius: 50%;
  display: grid;
  place-items: center;
  font-size: 18px;
  font-weight: 900;
  color: #ffffff;
  margin-top: 2px;
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.12);
}

.slide[data-id="step7-analysis"] .status-card--ok .step7-card__num {
  background: linear-gradient(135deg, #10b981 0%, #22c55e 100%);
}

.slide[data-id="step7-analysis"] .status-card--warn .step7-card__num {
  background: linear-gradient(135deg, #f59e0b 0%, #fbbf24 100%);
}

.slide[data-id="step7-analysis"] .status-card--bad .step7-card__num {
  background: linear-gradient(135deg, #ea580c 0%, #f87171 100%);
}

.slide[data-id="step7-analysis"] .step7-card__body {
  flex: 1;
  min-width: 0;
}

.slide[data-id="step7-analysis"] .status-card__title {
  display: block;
  margin-bottom: 4px;
  font-size: 1.05rem;
  letter-spacing: 0.01em;
}

.slide[data-id="step7-analysis"] .status-card__desc {
  font-size: 0.95rem;
  line-height: 1.55;
  color: #334155;
}

@media (max-width: 980px) {
  .slide[data-id="step7-analysis"] .step7-grid {
    grid-template-columns: 1fr;
  }
}

.slide[data-id="step7-analysis"] .step7-logic__title {
  display: flex;
  align-items: center;
  gap: 8px;
}
.slide[data-id="step7-analysis"] .step7-logic__icon {
  flex: 0 0 auto;
  vertical-align: middle;
}


/* ===== #/31 step7-field 专用样式：左右布局（左：5张图+2张表；右：3个总结） ===== */
.slide[data-id="step7-field"] .step7-field-grid {
  display: grid;
  grid-template-columns: minmax(0, 1.7fr) minmax(0, 1fr);
  grid-template-rows: 1fr;
  gap: 14px;
  margin-top: 8px;
  height: calc(100% - 80px);
  min-height: 0;
}

/* 左侧容器：上下两行（图集 + 数据表） */
.slide[data-id="step7-field"] .step7-field-left {
  display: grid;
  grid-template-rows: minmax(0, 1.5fr) minmax(0, 1fr);
  gap: 12px;
  min-height: 0;
  min-width: 0;
}

.slide[data-id="step7-field"] .step7-field-img {
  background: rgba(255, 255, 255, 0.92);
  border: 1px solid rgba(116, 172, 224, 0.22);
  box-shadow: 0 14px 28px rgba(48, 91, 133, 0.08);
  border-radius: 18px;
  padding: 8px;
  display: flex;
  align-items: center;
  justify-content: center;
  overflow: hidden;
  min-height: 0;
}

.slide[data-id="step7-field"] .step7-field-img img {
  width: 100%;
  height: 100%;
  max-height: 100%;
  object-fit: contain;
  border-radius: 12px;
}

/* 2×2 网格模式：4 张实景图 */
.slide[data-id="step7-field"] .step7-field-img--gallery {
  display: flex;
  flex-direction: column;
  gap: 6px;
  padding: 10px;
  min-height: 0;
  height: 100%;
}
.slide[data-id="step7-field"] .step7-field-img__grid {
  flex: 1 1 auto;
  min-height: 0;
  display: grid;
  grid-template-columns: 1fr 1fr;
  grid-template-rows: minmax(0, 1fr) minmax(0, 1fr);
  gap: 6px;
  width: 100%;
  height: 100%;
}
.slide[data-id="step7-field"] .step7-field-img__grid img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  border-radius: 10px;
  border: 1px solid rgba(116, 172, 224, 0.18);
  background: #f1f5f9;
}
.slide[data-id="step7-field"] .step7-field-img__caption {
  font-size: 20px;
  font-weight: 700;
  color: #475569;
  letter-spacing: 0.02em;
  padding: 2px 4px 0;
}

/* 1+4 网格模式：5 张现场图
   - celiang.webp（横图 16:9）独占左半 × 2 行（大图）
   - celiang_01~04（竖图 3:4）右侧 2x2 */
.slide[data-id="step7-field"] .step7-field-img__grid--5 {
  display: grid;
  grid-template-columns: minmax(0, 1.45fr) minmax(0, 1fr) minmax(0, 1fr);
  grid-template-rows: minmax(0, 1fr) minmax(0, 1fr);
  gap: 6px;
  min-height: 0;
  width: 100%;
  height: 100%;
  flex: 1 1 auto;
}
/* 横图（celiang）: 跨 1 列 × 2 行 */
.slide[data-id="step7-field"] .step7-field-img__grid--5 img:nth-child(1) {
  grid-column: 1;
  grid-row: 1 / 3;
  object-fit: cover;
  min-height: 0;
  min-width: 0;
}
/* 4 张竖图：右侧 2x2 */
.slide[data-id="step7-field"] .step7-field-img__grid--5 img:nth-child(2) { grid-column: 2; grid-row: 1; }
.slide[data-id="step7-field"] .step7-field-img__grid--5 img:nth-child(3) { grid-column: 3; grid-row: 1; }
.slide[data-id="step7-field"] .step7-field-img__grid--5 img:nth-child(4) { grid-column: 2; grid-row: 2; }
.slide[data-id="step7-field"] .step7-field-img__grid--5 img:nth-child(5) { grid-column: 3; grid-row: 2; }
.slide[data-id="step7-field"] .step7-field-img__grid--5 img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  border-radius: 10px;
  border: 1px solid rgba(116, 172, 224, 0.18);
  background: #f1f5f9;
  min-height: 0;
  min-width: 0;
}

/* ===== 测量数据表格行（2 张表格图） ===== */
.slide[data-id="step7-field"] .step7-field-data {
  background: rgba(255, 255, 255, 0.92);
  border: 1px solid rgba(116, 172, 224, 0.22);
  border-radius: 16px;
  padding: 6px 10px;
  display: flex;
  flex-direction: row;
  align-items: center;
  gap: 12px;
  min-height: 0;
  height: 100%;
  box-shadow: 0 6px 14px rgba(48, 91, 133, 0.05);
  overflow: hidden;
}
.slide[data-id="step7-field"] .step7-field-data__grid {
  flex: 1 1 auto;
  display: grid;
  grid-template-columns: minmax(0, 1.45fr) minmax(0, 1fr);
  gap: 10px;
  min-height: 0;
  min-width: 0;
  height: 100%;
  width: 100%;
  align-items: center;
  justify-items: stretch;
}
.slide[data-id="step7-field"] .step7-field-data__grid img {
  max-width: 100%;
  max-height: 100%;
  width: 100%;
  height: 100%;
  object-fit: contain;
  border-radius: 8px;
  border: 1px solid rgba(15, 23, 42, 0.10);
  background: #f8fafc;
  display: block;
  min-height: 0;
  min-width: 0;
}
/* 竖图 grid2：只显示前 90% 部分，让字看得清 */
.slide[data-id="step7-field"] .step7-field-data__grid img:nth-child(2) {
  width: 100%;
  height: 100%;
  max-height: 90%;
  max-width: 100%;
  object-fit: cover;
  object-position: top center;
  justify-self: stretch;
  align-self: start;
}

/* 横图 grid1：撑满容器 */
.slide[data-id="step7-field"] .step7-field-data__grid img:nth-child(1) {
  width: 100%;
  height: 100%;
  object-fit: contain;
  justify-self: stretch;
  align-self: stretch;
}
.slide[data-id="step7-field"] .step7-field-data__caption {
  flex: 0 0 110px;
  font-size: 16px;
  font-weight: 700;
  color: #475569;
  letter-spacing: 0.02em;
  padding: 0 4px;
  line-height: 1.35;
  white-space: normal;
  text-align: left;
}
.slide[data-id="step7-field"] .step7-field-data__caption-line1 {
  font-size: 18px;
  font-weight: 900;
  color: #1e3a8a;
  display: block;
  margin-bottom: 2px;
}
.slide[data-id="step7-field"] .step7-field-data__caption-line2 {
  font-size: 13px;
  font-weight: 600;
  color: #475569;
  display: block;
}
.slide[data-id="step7-field"] .step7-field-data__caption-line3 {
  font-size: 12px;
  font-weight: 600;
  color: #007a3d;
  display: block;
  margin-top: 2px;
}

.slide[data-id="step7-field"] .step7-field-notes {
  display: grid;
  grid-template-columns: 1fr;
  grid-template-rows: repeat(3, 1fr);
  gap: 10px;
  height: 100%;
  min-height: 0;
  min-width: 0;
  align-items: stretch;
}

.slide[data-id="step7-field"] .field-note-card {
  display: flex;
  align-items: center;
  gap: 14px;
  padding: 16px 20px;
  border-radius: 14px;
  background: rgba(255, 255, 255, 0.94);
  border: 1px solid rgba(116, 172, 224, 0.22);
  box-shadow: 0 8px 18px rgba(48, 91, 133, 0.06);
  transition: transform 180ms ease, box-shadow 180ms ease;
  height: 100%;
}

/* 卡片 1（差）：浅蓝底 */
.slide[data-id="step7-field"] .field-note-card--bad {
  background: linear-gradient(135deg, #dbeafe 0%, #bfdbfe 100%);
  border-color: #93c5fd;
  box-shadow: 0 8px 18px rgba(96, 165, 250, 0.12);
}

/* 卡片 2（中）：浅绿底 */
.slide[data-id="step7-field"] .field-note-card--ok {
  background: linear-gradient(135deg, #bbf7d0 0%, #86efac 100%);
  border-color: #4ade80;
  box-shadow: 0 8px 18px rgba(74, 222, 128, 0.12);
}

/* 卡片 3（最佳）：国网深绿底+白字（最高对比） */
.slide[data-id="step7-field"] .field-note-card--great {
  background: linear-gradient(135deg, #007a3d 0%, #005a2d 100%);
  border-color: #005a2d;
  box-shadow: 0 8px 18px rgba(0, 122, 61, 0.22);
}

.slide[data-id="step7-field"] .field-note-card--great .field-note-card__title,
.slide[data-id="step7-field"] .field-note-card--great .field-note-card__desc {
  color: #ffffff;
}

.slide[data-id="step7-field"] .field-note-card:hover {
  transform: translateX(2px);
  box-shadow: 0 12px 24px rgba(48, 91, 133, 0.10);
}

.slide[data-id="step7-field"] .field-note-card__num {
  flex: 0 0 auto;
  width: 44px;
  height: 44px;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  font-weight: 900;
  font-size: 22px;
  color: #ffffff;
  box-shadow: 0 4px 10px rgba(15, 23, 42, 0.18);
}

.slide[data-id="step7-field"] .field-note-card--bad .field-note-card__num {
  background: linear-gradient(135deg, #60a5fa 0%, #3b82f6 100%);
}

.slide[data-id="step7-field"] .field-note-card--ok .field-note-card__num {
  background: linear-gradient(135deg, #4ade80 0%, #16a34a 100%);
}

.slide[data-id="step7-field"] .field-note-card--great .field-note-card__num {
  background: linear-gradient(135deg, #007a3d 0%, #005a2d 100%);
}

.slide[data-id="step7-field"] .field-note-card__body {
  flex: 1;
  display: flex;
  flex-direction: column;
  gap: 2px;
  min-width: 0;
}

.slide[data-id="step7-field"] .field-note-card__title {
  font-size: 20px;
  font-weight: 800;
  color: #0f172a;
  line-height: 1.3;
  letter-spacing: 0.01em;
}

.slide[data-id="step7-field"] .field-note-card__desc {
  font-size: 20px;
  color: #475569;
  line-height: 1.5;
  margin-top: 2px;
}

.slide[data-id="step7-field"] .field-note-card__metric {
  margin-top: 6px;
  font-size: 24px;
  font-weight: 900;
  line-height: 1.25;
  letter-spacing: 0.01em;
}

.slide[data-id="step7-field"] .field-note-card--bad .field-note-card__metric {
  color: #1d4ed8;
}

.slide[data-id="step7-field"] .field-note-card--ok .field-note-card__metric {
  color: #16a34a;
}

.slide[data-id="step7-field"] .field-note-card--great .field-note-card__metric {
  color: #ffffff;
}

@media (max-width: 980px) {
  .slide[data-id="step7-field"] .step7-field-grid {
    grid-template-columns: 1fr;
  }
}


/* ===== #/25 imu-grades 专用样式：限制 img 不超出容器 ===== */
.slide[data-id="imu-grades"] .media {
  flex: 1;
  min-height: 0;
  max-height: calc(100% - 110px);
  margin-top: 8px;
}

.slide[data-id="imu-grades"] .figure {
  width: 100%;
  height: 100%;
  max-height: 100%;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 0;
  overflow: hidden;
}

.slide[data-id="imu-grades"] .figure img {
  max-width: 100%;
  max-height: 100%;
  width: auto;
  height: auto;
  object-fit: contain;
  display: block;
}


/* ===== #/11 reg-method 专用样式 ===== */
.slide[data-id="reg-method"] .media {
  flex: 1;
  min-height: 0;
  max-height: calc(100% - 110px);
  margin-top: 8px;
}

.slide[data-id="reg-method"] .figure {
  width: 100%;
  height: 100%;
  max-height: 100%;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 0;
  overflow: hidden;
}

.slide[data-id="reg-method"] .figure img {
  max-width: 100%;
  max-height: 100%;
  width: auto;
  height: auto;
  object-fit: contain;
  display: block;
}


/* ===== #/15 step4-ifc 解析流程 ===== */
.slide[data-id="step4-ifc"] .ifc-pipeline {
  display: flex;
  align-items: center;
  gap: 8px;
  margin-top: 14px;
  padding: 10px 16px;
  background: linear-gradient(135deg, rgba(45, 108, 223, 0.06) 0%, rgba(139, 92, 246, 0.06) 100%);
  border: 1px solid rgba(116, 172, 224, 0.32);
  border-radius: 14px;
  box-shadow: 0 2px 8px rgba(45, 108, 223, 0.06);
}

.slide[data-id="step4-ifc"] .ifc-pipeline__step {
  flex: 1;
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 6px 8px;
  background: #ffffff;
  border-radius: 10px;
  box-shadow: 0 1px 4px rgba(15, 23, 42, 0.06);
  min-width: 0;
}

.slide[data-id="step4-ifc"] .ifc-pipeline__num {
  flex: 0 0 auto;
  width: 36px;
  height: 36px;
  border-radius: 50%;
  background: linear-gradient(135deg, #0d9488 0%, #0d9488 100%);
  color: #fff;
  display: grid;
  place-items: center;
  font-size: 17px;
  font-weight: 800;
  box-shadow: 0 2px 6px rgba(45, 108, 223, 0.25);
}

.slide[data-id="step4-ifc"] .ifc-pipeline__body {
  flex: 1;
  min-width: 0;
}

.slide[data-id="step4-ifc"] .ifc-pipeline__title {
  font-size: 16px;
  font-weight: 800;
  color: #0f172a;
  line-height: 1.25;
  margin-bottom: 3px;
}

.slide[data-id="step4-ifc"] .ifc-pipeline__desc {
  font-size: 13.5px;
  color: #475569;
  line-height: 1.4;
  overflow: hidden;
  text-overflow: ellipsis;
}

.slide[data-id="step4-ifc"] .ifc-pipeline__arrow {
  flex: 0 0 auto;
  font-size: 22px;
  font-weight: 800;
  color: #94a3b8;
  padding: 0 2px;
}

/* 5 类核心实体标签 */
.slide[data-id="step4-ifc"] .ifc-entity-tags {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
  padding: 6px 10px;
  background: #0f172a;
  border-top: 1px solid rgba(255, 255, 255, 0.05);
}

.slide[data-id="step4-ifc"] .ifc-entity-tag {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 6px 10px;
  border-radius: 8px;
  font-size: 20px;
  font-family: ui-monospace, "Consolas", "Cascadia Code", monospace;
}

.slide[data-id="step4-ifc"] .ifc-entity-tag__name {
  font-weight: 700;
  color: #ffffff;
}

.slide[data-id="step4-ifc"] .ifc-entity-tag__cn {
  font-weight: 600;
  padding-left: 4px;
  border-left: 1px solid rgba(255, 255, 255, 0.3);
  margin-left: 2px;
  font-family: -apple-system, "Microsoft YaHei UI", sans-serif;
}

.slide[data-id="step4-ifc"] .ifc-entity-tag--blue { background: rgba(16, 185, 129, 0.25); border: 1px solid #10b981; }
.slide[data-id="step4-ifc"] .ifc-entity-tag--green { background: rgba(16, 185, 129, 0.25); border: 1px solid #10b981; }
.slide[data-id="step4-ifc"] .ifc-entity-tag--amber { background: rgba(245, 158, 11, 0.25); border: 1px solid #f59e0b; }
.slide[data-id="step4-ifc"] .ifc-entity-tag--purple { background: rgba(245, 158, 11, 0.25); border: 1px solid #f59e0b; }
.slide[data-id="step4-ifc"] .ifc-entity-tag--red { background: rgba(245, 158, 11, 0.25); border: 1px solid #f59e0b; }

/* Revit ID 双向追溯卡 */
.slide[data-id="step4-ifc"] .ifc-trace-card {
  margin-top: 10px;
  padding: 10px 12px;
  background: linear-gradient(135deg, rgba(45, 108, 223, 0.08) 0%, rgba(139, 92, 246, 0.10) 100%);
  border-left: 4px solid #0d9488;
  border-radius: 8px;
  box-shadow: 0 1px 4px rgba(45, 108, 223, 0.08);
}

.slide[data-id="step4-ifc"] .ifc-trace-card__title {
  font-size: 15px;
  font-weight: 800;
  color: #0d9488;
  margin-bottom: 5px;
}

.slide[data-id="step4-ifc"] .ifc-trace-card__desc {
  font-size: 14px;
  line-height: 1.5;
  color: #334155;
}

.slide[data-id="step4-ifc"] .ifc-trace-card__desc strong {
  color: #0d9488;
}

/* step4-ifc 整体布局：压缩中间代码块 + 设备树，给底部 6 大收益留空间 */
.slide[data-id="step4-ifc"] {
  display: flex;
  flex-direction: column;
}

.slide[data-id="step4-ifc"] .ifc-code {
  padding: 0.5rem 0.8rem;
  font-size: 1.2rem;
  line-height: 1.25;
}

.slide[data-id="step4-ifc"] .ifc-code__bar {
  padding: 0.5rem 0.9rem;
  font-size: 1.2rem;
}

.slide[data-id="step4-ifc"] .ifc-code__body {
  margin-top: 1.6rem;
  line-height: 1.5;
}

.slide[data-id="step4-ifc"] .ifc-tree {
  padding: 0.6rem 0.8rem;
}

.slide[data-id="step4-ifc"] .ifc-tree__title {
  font-size: 22px;
  padding-bottom: 0.4rem;
  font-weight: 800;
}

.slide[data-id="step4-ifc"] .ifc-tree__body {
  font-size: 20px;
  line-height: 1.4;
}

.slide[data-id="step4-ifc"] .ifc-tree__node {
  font-size: 20px;
  padding: 4px 8px;
}

.slide[data-id="step4-ifc"] .ifc-tree__chip {
  font-size: 20px;
  padding: 4px 10px;
}

/* 设备空间属性卡（3D 模型 + 放置位置） */
.slide[data-id="step4-ifc"] .ifc-spatial-card {
  margin-top: 6px;
  padding: 6px 10px;
  background: linear-gradient(135deg, rgba(16, 185, 129, 0.08) 0%, rgba(45, 212, 191, 0.10) 100%);
  border-left: 4px solid #10b981;
  border-radius: 8px;
  box-shadow: 0 2px 8px rgba(16, 185, 129, 0.12);
}

.slide[data-id="step4-ifc"] .ifc-spatial-card__title {
  font-size: 22px;
  font-weight: 800;
  color: #064e3b;
  margin-bottom: 4px;
  letter-spacing: 0.02em;
  line-height: 1.2;
}

.slide[data-id="step4-ifc"] .ifc-spatial-card__grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 12px;
}

.slide[data-id="step4-ifc"] .ifc-spatial-card__col {
  background: rgba(255, 255, 255, 0.85);
  border: 1px solid rgba(16, 185, 129, 0.30);
  border-radius: 8px;
  padding: 6px 8px;
  display: flex;
  flex-direction: column;
  gap: 3px;
  min-width: 0;
  box-shadow: 0 2px 6px rgba(16, 185, 129, 0.08);
}

.slide[data-id="step4-ifc"] .ifc-spatial-card__name {
  display: flex;
  align-items: center;
  gap: 5px;
  font-size: 20px;
  font-weight: 800;
  color: #0f172a;
  flex-wrap: wrap;
  padding-bottom: 5px;
  border-bottom: 1px dashed rgba(16, 185, 129, 0.30);
  line-height: 1.25;
}

.slide[data-id="step4-ifc"] .ifc-spatial-card__name svg {
  width: 22px;
  height: 22px;
  flex-shrink: 0;
  color: #10b981;
}

.slide[data-id="step4-ifc"] .ifc-spatial-card__model,
.slide[data-id="step4-ifc"] .ifc-spatial-card__pos {
  display: flex;
  align-items: baseline;
  gap: 6px;
  min-width: 0;
}

.slide[data-id="step4-ifc"] .ifc-spatial-card__k {
  flex: 0 0 auto;
  font-size: 20px;
  font-weight: 800;
  letter-spacing: 0.4px;
  color: #047857;
  text-transform: uppercase;
  line-height: 1.25;
  opacity: 0.85;
}

.slide[data-id="step4-ifc"] .ifc-spatial-card__pos .ifc-spatial-card__k {
  color: #0d9488;
}

.slide[data-id="step4-ifc"] .ifc-spatial-card__v {
  flex: 1 1 auto;
  font-size: 20px;
  line-height: 1.25;
  color: #334155;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  min-width: 0;
}

.slide[data-id="step4-ifc"] .ifc-spatial-card__v b {
  color: #0f172a;
  font-weight: 800;
  font-family: ui-monospace, "SFMono-Regular", Consolas, monospace;
  font-size: 20px;
}

.slide[data-id="step4-ifc"] .ifc-spatial-card__footer {
  margin-top: 5px;
  padding-top: 4px;
  border-top: 1px dashed rgba(16, 185, 129, 0.30);
  font-size: 20px;
  line-height: 1.25;
  color: #475569;
}

.slide[data-id="step4-ifc"] .ifc-spatial-card__footer b {
  color: #047857;
  font-family: ui-monospace, "SFMono-Regular", Consolas, monospace;
  font-weight: 800;
}


/* ===== #/16 step4-ifc-benefits 专用样式 ===== */
.slide[data-id="step4-ifc-benefits"] .media {
  flex: 1;
  min-height: 0;
  max-height: calc(100% - 110px);
  margin-top: 8px;
}

.slide[data-id="step4-ifc-benefits"] .figure {
  width: 100%;
  height: 100%;
  max-height: 100%;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 0;
  overflow: hidden;
}

.slide[data-id="step4-ifc-benefits"] .figure img {
  max-width: 100%;
  max-height: 100%;
  width: auto;
  height: auto;
  object-fit: contain;
  display: block;
}

/* ===========================================================
   #/12  step3-post 拼接对比图（分 vs 合）
   =========================================================== */

/* 紧凑版 reg-3layers：缩小 padding/字号，腾出空间给对比图 */
.reg-3layers--compact {
  margin-top: 4px;
  margin-bottom: 8px;
  gap: 8px;
}

.reg-3layers--compact .reg-card {
  padding: 6px 10px 8px 32px;
}

.reg-3layers--compact .reg-card__no {
  width: 20px;
  height: 20px;
  font-size: 12px;
  top: 6px;
  left: 8px;
}

.reg-3layers--compact .reg-card__title {
  font-size: 13px;
  margin-bottom: 1px;
}

.reg-3layers--compact .reg-card__desc {
  font-size: 11.5px;
  line-height: 1.4;
}

/* 拼接对比主容器：左右 1fr，中箭头 60px */
.stitch-compare {
  flex: 1 1 0;
  min-height: 0;
  display: grid;
  grid-template-columns: 1fr 60px 1fr;
  gap: 12px;
  align-items: stretch;
  margin-top: 4px;
}

.stitch-compare__item {
  display: flex;
  flex-direction: column;
  background: rgba(255, 255, 255, 0.94);
  border-radius: 14px;
  padding: 10px 12px 8px;
  border: 1px solid rgba(116, 172, 224, 0.22);
  box-shadow: 0 12px 28px rgba(41, 89, 135, 0.10);
  min-height: 0;
  min-width: 0;
  overflow: hidden;
  /* 覆盖 .figure 默认的 flex 居中 */
  align-items: stretch;
  justify-content: flex-start;
}

.stitch-compare__label {
  display: inline-block;
  font-size: 13px;
  font-weight: 900;
  padding: 3px 12px;
  border-radius: 12px;
  align-self: flex-start;
  margin-bottom: 6px;
  letter-spacing: 0.5px;
}

.stitch-compare__label--before {
  background: linear-gradient(135deg, #fee2e2, #fecaca);
  color: #92400e;
  border: 1.5px solid #fca5a5;
}

.stitch-compare__label--after {
  background: linear-gradient(135deg, #dcfce7, #bbf7d0);
  color: #14532d;
  border: 1.5px solid #86efac;
}

.stitch-compare__img {
  flex: 1 1 0;
  min-height: 220px;
  display: flex;
  align-items: center;
  justify-content: center;
  background: linear-gradient(180deg, rgba(248, 250, 252, 0.7), rgba(241, 245, 249, 0.7));
  border-radius: 10px;
  overflow: hidden;
  padding: 6px;
}

.stitch-compare__img img {
  width: 100%;
  height: 100%;
  max-width: 100%;
  max-height: 100%;
  object-fit: contain;
  display: block;
  border-radius: 6px;
}

.stitch-compare__caption {
  font-size: 12px;
  font-weight: 700;
  color: #475569;
  text-align: center;
  margin-top: 6px;
  line-height: 1.3;
}

.stitch-compare__arrow {
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 48px;
  font-weight: 900;
  color: #0d9488;
  text-shadow: 0 2px 10px rgba(139, 92, 246, 0.35);
  line-height: 1;
}

@media (max-height: 820px) {
  .stitch-compare {
    grid-template-columns: 1fr 50px 1fr;
    gap: 10px;
  }

  .stitch-compare__arrow {
    font-size: 40px;
  }

  .stitch-compare__label {
    font-size: 12px;
    padding: 2px 10px;
  }

  .stitch-compare__caption {
    font-size: 11px;
  }
}

/* ===========================================================
   误差控制实战经验页面（#error-control-practice）
   =========================================================== */

.slide[data-id="error-control-practice"] {
  display: flex;
  flex-direction: column;
}

.slide[data-id="error-control-practice"] .error-ctrl-head {
  flex: 0 0 auto;
}

.slide[data-id="error-control-practice"] .error-ctrl-head h2 {
  margin-bottom: 4px;
}

.slide[data-id="error-control-practice"] .error-ctrl-head .lead {
  margin: 0 0 8px;
  font-size: 13.5px;
  line-height: 1.5;
  color: #475569;
}

.slide[data-id="error-control-practice"] .error-ctrl-head .lead b {
  color: #047857;
  font-weight: 800;
  background: linear-gradient(transparent 60%, #d1fae5 60%);
  padding: 0 2px;
}

/* 顶部 KPI 徽章 */
.error-ctrl-kpis {
  display: flex;
  gap: 10px;
  flex-wrap: wrap;
  margin-top: 4px;
}

.error-ctrl-kpi {
  display: inline-flex;
  flex-direction: column;
  align-items: flex-start;
  padding: 6px 14px;
  border-radius: 12px;
  border: 1.5px solid transparent;
  box-shadow: 0 4px 10px rgba(15, 23, 42, 0.06);
}

.error-ctrl-kpi--green {
  background: linear-gradient(135deg, #ecfdf5, #d1fae5);
  border-color: #10b981;
}

.error-ctrl-kpi--blue {
  background: linear-gradient(135deg, #ecfdf5, #d1fae5);
  border-color: #10b981;
}

.error-ctrl-kpi--purple {
  background: linear-gradient(135deg, #ecfdf5, #ecfdf5);
  border-color: #0d9488;
}

.error-ctrl-kpi__v {
  font-size: 17px;
  font-weight: 900;
  line-height: 1.1;
  color: #0f172a;
  letter-spacing: 0.3px;
}

.error-ctrl-kpi__k {
  font-size: 11px;
  font-weight: 700;
  color: #475569;
  margin-top: 1px;
}

/* 5 个策略卡片网格 */
.error-ctrl-grid {
  flex: 1 1 0;
  min-height: 0;
  display: grid;
  grid-template-columns: repeat(5, minmax(0, 1fr));
  gap: 10px;
  margin-top: 10px;
  margin-bottom: 8px;
}

.error-ctrl-card {
  display: flex;
  flex-direction: column;
  background: rgba(255, 255, 255, 0.95);
  border-radius: 14px;
  padding: 10px 10px 8px;
  border: 1.5px solid transparent;
  box-shadow: 0 10px 22px rgba(41, 89, 135, 0.10);
  min-height: 0;
  min-width: 0;
  position: relative;
  overflow: hidden;
}

.error-ctrl-card::before {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  height: 4px;
}

.error-ctrl-card--blue {
  background: linear-gradient(180deg, #ecfdf5 0%, #ffffff 35%);
  border-color: #a7f3d0;
}
.error-ctrl-card--blue::before {
  background: linear-gradient(90deg, #10b981, #60a5fa);
}

.error-ctrl-card--green {
  background: linear-gradient(180deg, #ecfdf5 0%, #ffffff 35%);
  border-color: #a7f3d0;
}
.error-ctrl-card--green::before {
  background: linear-gradient(90deg, #10b981, #34d399);
}

.error-ctrl-card--purple {
  background: linear-gradient(180deg, #ecfdf5 0%, #ffffff 35%);
  border-color: #d1fae5;
}
.error-ctrl-card--purple::before {
  background: linear-gradient(90deg, #0d9488, #5eead4);
}

.error-ctrl-card--orange {
  background: linear-gradient(180deg, #fff7ed 0%, #ffffff 35%);
  border-color: #fed7aa;
}
.error-ctrl-card--orange::before {
  background: linear-gradient(90deg, #f59e0b, #fb923c);
}

.error-ctrl-card--teal {
  background: linear-gradient(180deg, #f0fdfa 0%, #ffffff 35%);
  border-color: #99f6e4;
}
.error-ctrl-card--teal::before {
  background: linear-gradient(90deg, #14b8a6, #2dd4bf);
}

.error-ctrl-card__head {
  display: flex;
  align-items: center;
  gap: 6px;
  margin-bottom: 6px;
}

.error-ctrl-card__no {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 20px;
  height: 20px;
  border-radius: 50%;
  background: #0f172a;
  color: #ffffff;
  font-size: 11px;
  font-weight: 900;
  font-family: ui-monospace, "Courier New", monospace;
}

.error-ctrl-card__icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 26px;
  height: 26px;
  border-radius: 8px;
  background: rgba(255, 255, 255, 0.8);
  border: 1px solid rgba(0, 0, 0, 0.06);
}

.error-ctrl-card--blue .error-ctrl-card__icon {
  color: #0d9488;
  background: #d1fae5;
  border-color: #93c5fd;
}

.error-ctrl-card--green .error-ctrl-card__icon {
  color: #047857;
  background: #d1fae5;
  border-color: #6ee7b7;
}

.error-ctrl-card--purple .error-ctrl-card__icon {
  color: #0d9488;
  background: #ecfdf5;
  border-color: #c4b5fd;
}

.error-ctrl-card--orange .error-ctrl-card__icon {
  color: #c2410c;
  background: #ffedd5;
  border-color: #fdba74;
}

.error-ctrl-card--teal .error-ctrl-card__icon {
  color: #0f766e;
  background: #ccfbf1;
  border-color: #5eead4;
}

.error-ctrl-card__title {
  font-size: 15px;
  font-weight: 900;
  color: #0f172a;
  letter-spacing: 0.3px;
}

.error-ctrl-card__desc {
  flex: 1 1 0;
  min-height: 0;
  font-size: 11.5px;
  line-height: 1.5;
  color: #475569;
}

.error-ctrl-card__desc b {
  color: #0f172a;
  font-weight: 800;
  background: linear-gradient(transparent 60%, #fde68a 60%);
  padding: 0 2px;
}

.error-ctrl-card__metric {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  margin-top: 6px;
  padding: 5px 8px;
  background: rgba(255, 255, 255, 0.85);
  border-radius: 8px;
  border: 1px dashed rgba(0, 0, 0, 0.08);
}

.error-ctrl-card__metric-v {
  font-size: 14px;
  font-weight: 900;
  color: #0f172a;
  line-height: 1.1;
}

.error-ctrl-card__metric-k {
  font-size: 10.5px;
  font-weight: 700;
  color: #64748b;
  margin-top: 1px;
}

/* 底部实战公式提示条 */
.error-ctrl-bottom {
  flex: 0 0 auto;
  margin-top: 4px;
}

.error-ctrl-bottom__tip {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 9px 14px;
  background: linear-gradient(135deg, #0f172a, #1e293b);
  color: #ffffff;
  border-radius: 12px;
  font-size: 12.5px;
  line-height: 1.45;
  box-shadow: 0 10px 24px rgba(15, 23, 42, 0.18);
}

.error-ctrl-bottom__tip b {
  color: #fbbf24;
  font-weight: 900;
  margin-right: 4px;
}

.error-ctrl-bottom__tip-icon {
  font-size: 18px;
  flex: 0 0 auto;
}

@media (max-height: 820px) {
  .error-ctrl-kpi__v {
    font-size: 15px;
  }
  .error-ctrl-kpi__k {
    font-size: 10.5px;
  }
  .error-ctrl-card__title {
    font-size: 13.5px;
  }
  .error-ctrl-card__desc {
    font-size: 10.5px;
  }
  .error-ctrl-card__metric-v {
    font-size: 12.5px;
  }
  .error-ctrl-bottom__tip {
    font-size: 11.5px;
    padding: 7px 12px;
  }
}


/* ============ 合并页 case-merged 紧凑布局 ============ */
.slide[data-id="case-merged"] {
  padding: clamp(10px, 1.4vw, 18px) !important;
}
.slide[data-id="case-merged"] h2 {
  font-size: 1.25rem !important;
  margin-bottom: 2px !important;
}
.slide[data-id="case-merged"] p.lead {
  font-size: 0.82rem !important;
  margin: 2px 0 4px 0 !important;
  line-height: 1.35 !important;
}
.slide[data-id="case-merged"] .u-flex-col {
  gap: 12px !important;
}
.slide[data-id="case-merged"] .u-flex {
  gap: 10px !important;
}
.slide[data-id="case-merged"] .u-flex-col {
  gap: 8px !important;
}
.slide[data-id="case-merged"] [style*="padding: 14px 18px"] {
  padding: 10px 14px !important;
  gap: 8px !important;
}
.slide[data-id="case-merged"] [style*="padding: 10px 16px"] {
  padding: 8px 14px !important;
}
.slide[data-id="case-merged"] img {
  max-height: 100% !important;
}

/* =========================================================
   #/3 汇报总览 + 章节分隔页（4 张）共用的 .ov- 样式
   ========================================================= */
.ov-root {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  background: linear-gradient(135deg, #f0fdfa 0%, #ccfbf1 100%);
  font-family: -apple-system, "Microsoft YaHei UI", "PingFang SC", sans-serif;
  overflow: hidden;
}
.ov-card {
  position: absolute;
  inset: 0;
  width: 1200px;
  height: 480px;
  margin: auto;
  background: #ffffff;
  border-radius: 24px;
  box-shadow: 0 12px 36px rgba(15,23,42,0.18);
  display: flex;
  align-items: stretch;
  overflow: hidden;
}
.ov-left {
  width: 240px;
  background: linear-gradient(180deg, #0d9488 0%, #0f766e 100%);
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 6px;
}
.ov-left-char {
  font-size: 90px;
  font-weight: 900;
  color: #ffffff;
  line-height: 1;
  letter-spacing: 6px;
}
.ov-divider {
  width: 2px;
  background: #d1d5db;
  position: relative;
}
.ov-divider::before {
  content: "";
  position: absolute;
  top: 12%;
  bottom: 12%;
  left: -1px;
  width: 2px;
  background: repeating-linear-gradient(180deg, #0d9488 0 8px, transparent 8px 14px);
}
.ov-right {
  flex: 1;
  padding: 28px 56px 28px 36px;
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: stretch;
  gap: 14px;
}
/* 横排紧凑目录条目：数字 + 标题 + 描述，一行展示 */
.ov-item {
  display: flex;
  flex-direction: row;
  align-items: center;
  text-align: left;
  gap: 22px;
  width: 100%;
  padding: 8px 18px;
  border-bottom: 1.5px solid #e5e7eb;
}
.ov-item:last-child {
  border-bottom: none;
}
.ov-num {
  width: 56px;
  height: 56px;
  border-radius: 50%;
  background: linear-gradient(135deg, #0d9488 0%, #14b8a6 100%);
  color: #ffffff;
  font-size: 28px;
  font-weight: 900;
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  box-shadow: 0 6px 14px rgba(13,138,132,0.32);
}
.ov-content {
  flex: 1 1 auto;
  display: flex;
  align-items: baseline;
  gap: 28px;
  padding: 0;
  border-bottom: none;
  min-width: 0;
}
.ov-content-title {
  font-size: 30px;
  font-weight: 900;
  color: #0f172a;
  line-height: 1.2;
  white-space: nowrap;
  flex: 0 0 auto;
}
.ov-content-desc {
  font-size: 17px;
  font-weight: 600;
  color: #64748b;
  line-height: 1.3;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
/* 当前章节高亮（章节分隔页用） */
.ov-item.is-active {
  transform: scale(1.02);
  background: linear-gradient(135deg, rgba(13,138,132,0.10) 0%, rgba(20,184,166,0.06) 100%);
  border-radius: 16px;
  padding: 4px 16px;
  border-bottom: 1.5px solid #14b8a6;
  box-shadow: 0 8px 22px rgba(13,138,132,0.18);
}
.ov-item.is-active .ov-num {
  background: linear-gradient(135deg, #f59e0b 0%, #ea580c 100%);
  box-shadow: 0 8px 20px rgba(245,158,11,0.42);
  transform: scale(1.08);
}
.ov-item.is-active .ov-content-title {
  color: #0d9488;
}
.ov-item.is-active .ov-content-desc {
  color: #0f766e;
}
.ov-footer {
  position: absolute;
  bottom: 28px;
  right: 60px;
  font-size: 15px;
  color: #94a3b8;
  font-weight: 600;
}
/* 章节分隔页头部小标签 */
.ov-chapter-tag {
  position: absolute;
  top: 28px;
  left: 60px;
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 7px 16px;
  background: rgba(13,138,132,0.10);
  color: #0d9488;
  font-size: 15px;
  font-weight: 800;
  border-radius: 999px;
  letter-spacing: 0.5px;
}
.ov-chapter-tag::before {
  content: "";
  width: 8px;
  height: 8px;
  border-radius: 50%;
  background: linear-gradient(135deg, #f59e0b 0%, #ea580c 100%);
}
