/* ppt-frame.css — 北大红 PPT 通用框架：内容卡片外框、右上角 Logo、底部红条、内容页页眉（红方块+章节号+标题）、要点列表、底部摘要条、封面/致谢通用覆盖、demo 徽标 */

  /* ===== PKU 模板严格复刻（基于用户截图） ===== */
  body.ppt-mode { background: #ececec; }
  .deck-ppt .slide { background: var(--ppt-slide-bg) !important; padding: var(--ppt-slide-outer-y) var(--ppt-slide-outer-x) !important; }
  .deck-ppt .slide::before, .deck-ppt .slide::after { display: none !important; }
  .deck-ppt .slide .slide-inner {
    background: #fff; border: 1px solid #e8e8e8; box-shadow: 0 2px 16px rgba(0,0,0,0.06);
    border-radius: 2px; padding: var(--ppt-frame-pad-y-top) var(--ppt-frame-pad-x) var(--ppt-frame-pad-y-bottom);
    max-width: 100%; overflow: hidden; position: relative; justify-content: flex-start !important; gap: clamp(10px, 1.4vh, 16px) !important;
    display: flex; flex-direction: column; min-height: 0;
  }
  .deck-ppt .slide .slide-inner::after { display: none !important; }

  .tpl-logo-tr { height: clamp(42px, 5.8vh, 62px); width: auto; flex-shrink: 0; }
  .tpl-foot-bar { flex-shrink: 0; height: clamp(8px, 1.1vh, 11px); background: var(--pku-red); margin: auto calc(-1 * var(--ppt-frame-pad-x)) 0; width: calc(100% + 2 * var(--ppt-frame-pad-x)); }
  /* 封面/致谢红幅：与底部红条同样出血，内边距仍走 --ppt-frame-pad-* */
  .tpl-cover-band, .tpl-final-band {
    width: calc(100% + 2 * var(--ppt-frame-pad-x));
    margin-left: calc(-1 * var(--ppt-frame-pad-x));
    margin-right: calc(-1 * var(--ppt-frame-pad-x));
  }
  /* 内容页页眉：红方块 + 标题 + Logo */
  .tpl-page-head { display: flex; justify-content: space-between; align-items: flex-start; flex-shrink: 0; gap: 16px; padding-bottom: clamp(8px, 1vh, 12px); border-bottom: 1px solid #eee; margin-bottom: clamp(6px, 0.8vh, 10px); }
  .tpl-page-title { display: flex; align-items: center; gap: 10px; flex: 1; min-width: 0; }
  .tpl-sq-deco { flex-shrink: 0; width: 14px; height: 14px; background: var(--pku-red); display: inline-block; position: relative; }
  .tpl-sq-deco::after { content: ''; position: absolute; top: -5px; left: 5px; width: 10px; height: 10px; background: rgba(126,24,28,0.35); }
  .tpl-sec { font-weight: 800; color: var(--pku-red); font-size: clamp(1.08em, 1.7vh, 1.24em); white-space: nowrap; }
  .tpl-page-title h2 { font-size: clamp(1.26em, 2.05vh, 1.62em); font-weight: 800; color: var(--pku-red); margin: 0; line-height: 1.32; letter-spacing: -0.01em; }
  .deck-ppt .tpl-chapter-text h2 { line-height: 1.28; }
  .tpl-bullets { margin: 0; padding: 0; list-style: none; flex-shrink: 0; }
  .tpl-bullets li { position: relative; padding-left: 1.1em; margin-bottom: 0.6em; font-size: clamp(1.08em, 1.85vh, 1.26em); line-height: 1.58; font-weight: 600; }
  .tpl-bullets li::before { content: ''; position: absolute; left: 0; top: 0.62em; width: 7px; height: 7px; background: var(--pku-red); border-radius: 1px; }
  /* 底部摘要条 */
  .tpl-summary-bar { display: flex; border: 2px solid var(--pku-red); border-radius: 6px; overflow: hidden; flex-shrink: 0; background: #fff; }
  .tpl-summary-label { flex: 0 0 auto; writing-mode: horizontal-tb; background: #fff; color: var(--pku-red); font-weight: 800; font-size: clamp(0.94em, 1.35vh, 1.06em); padding: clamp(10px, 1.2vh, 14px) clamp(12px, 1.5vw, 18px); border-right: 2px solid var(--pku-red); display: flex; align-items: center; white-space: nowrap; }
  .tpl-summary-text { flex: 1; padding: clamp(10px, 1.2vh, 14px) clamp(14px, 1.8vw, 20px); font-size: clamp(0.98em, 1.5vh, 1.12em); line-height: 1.65; color: #333; }
  /* 封面/致谢：内层白卡片铺满（边框/圆角/阴影沿用上方通用规则，与目录/内容页一致） */
  .tpl-cover .slide-inner, .tpl-final .slide-inner {
    background: #fff !important;
    max-width: 100% !important; width: 100% !important; height: 100% !important;
  }
  .demo-badge { display: inline-block; margin-left: auto; font-size: 0.72em; font-weight: 700; color: var(--pku-red); background: rgba(126,24,28,0.08); padding: 3px 10px; border-radius: 3px; }
