/* ============ 商业化平台共享样式（登录/账户/收银台/阅读器/后台） ============ */
:root {
  --pf-gold: #FFD166;
  --pf-gold-dark: #F4B942;
  --pf-pink: #E879A8;
  --pf-blue: #5B9FE8;
  --pf-purple: #7B6CDB;
  --pf-green: #6FD89A;
  --pf-red: #FF7B7B;
  --pf-glass: rgba(20, 25, 80, 0.55);
  --pf-glass-strong: rgba(24, 30, 92, 0.82);
  --pf-border: rgba(255, 255, 255, 0.14);
  --pf-text: #FFFFFF;
  --pf-text-2: rgba(255, 255, 255, 0.72);
  --pf-text-3: rgba(255, 255, 255, 0.5);
  --pf-radius: 20px;
  --pf-shadow: 0 8px 32px rgba(0, 0, 0, 0.28);
}

.pf-page { min-height: 100%; padding: 24px 28px 48px; overflow-y: auto; }
.pf-wrap { max-width: 960px; margin: 0 auto; }
.pf-wrap-wide { max-width: 1200px; margin: 0 auto; }

/* 卡片 */
.pf-card {
  background: var(--pf-glass);
  border: 1px solid var(--pf-border);
  border-radius: var(--pf-radius);
  padding: 24px;
  box-shadow: var(--pf-shadow);
  backdrop-filter: blur(14px);
  -webkit-backdrop-filter: blur(14px);
}
.pf-card + .pf-card { margin-top: 20px; }
.pf-card-title { font-size: 18px; font-weight: 700; margin-bottom: 16px; display: flex; align-items: center; gap: 8px; }
.pf-card-title .dot { width: 8px; height: 8px; border-radius: 50%; background: var(--pf-gold); box-shadow: 0 0 8px var(--pf-gold); }

/* 标题区 */
.pf-hero { text-align: center; padding: 28px 0 20px; }
.pf-hero h2 { font-size: 30px; letter-spacing: 2px; margin-bottom: 8px; text-shadow: 0 2px 16px rgba(255, 209, 102, 0.35); }
.pf-hero p { color: var(--pf-text-2); font-size: 14px; }
.pf-page a:not(.pf-btn) { color: var(--pf-gold); text-decoration: none; }
.pf-page a:not(.pf-btn):hover { text-decoration: underline; }

/* 按钮 */
.pf-btn {
  display: inline-flex; align-items: center; justify-content: center; gap: 8px;
  padding: 12px 26px; border-radius: 999px; border: none; cursor: pointer;
  font-size: 15px; font-weight: 600; color: #3a2b00;
  background: linear-gradient(135deg, var(--pf-gold), var(--pf-gold-dark));
  box-shadow: 0 6px 20px rgba(255, 209, 102, 0.35), inset 0 1px 0 rgba(255,255,255,0.5);
  transition: transform 0.18s ease, box-shadow 0.18s ease, filter 0.18s ease;
  text-decoration: none; user-select: none;
}
.pf-btn:hover { transform: translateY(-2px) scale(1.02); filter: brightness(1.06); }
.pf-btn:active { transform: translateY(0) scale(0.98); }
.pf-btn:disabled { opacity: 0.55; cursor: not-allowed; transform: none; }
.pf-btn-ghost {
  background: rgba(255, 255, 255, 0.1); color: var(--pf-text);
  border: 1px solid var(--pf-border); box-shadow: none;
}
.pf-btn-ghost:hover { background: rgba(255, 255, 255, 0.18); }
.pf-btn-pink { background: linear-gradient(135deg, var(--pf-pink), #d15c92); color: #fff; box-shadow: 0 6px 20px rgba(232, 121, 168, 0.35); }
.pf-btn-blue { background: linear-gradient(135deg, var(--pf-blue), #3d7fc9); color: #fff; box-shadow: 0 6px 20px rgba(91, 159, 232, 0.35); }
.pf-btn-green { background: linear-gradient(135deg, var(--pf-green), #4cb87c); color: #fff; box-shadow: 0 6px 20px rgba(111, 216, 154, 0.3); }
.pf-btn-sm { padding: 8px 16px; font-size: 13px; }
.pf-btn-block { width: 100%; }

/* 表单 */
.pf-field { margin-bottom: 16px; }
.pf-field label { display: block; font-size: 13px; color: var(--pf-text-2); margin-bottom: 6px; }
.pf-input, .pf-select, .pf-textarea {
  width: 100%; padding: 12px 16px; border-radius: 14px;
  border: 1px solid var(--pf-border); background: rgba(255, 255, 255, 0.08);
  color: var(--pf-text); font-size: 15px; outline: none;
  transition: border-color 0.2s, box-shadow 0.2s;
}
.pf-input:focus, .pf-select:focus, .pf-textarea:focus {
  border-color: var(--pf-gold); box-shadow: 0 0 0 3px rgba(255, 209, 102, 0.18);
}
.pf-input::placeholder, .pf-textarea::placeholder { color: var(--pf-text-3); }
.pf-select option { background: #1A1F5C; color: #fff; }
.pf-input-row { display: flex; gap: 10px; }
.pf-input-row .pf-input { flex: 1; }

/* 选项卡 */
.pf-tabs { display: flex; gap: 8px; margin-bottom: 20px; flex-wrap: wrap; }
.pf-tab {
  padding: 10px 20px; border-radius: 999px; cursor: pointer; font-size: 14px;
  background: rgba(255, 255, 255, 0.08); border: 1px solid var(--pf-border);
  color: var(--pf-text-2); transition: all 0.2s; user-select: none;
}
.pf-tab:hover { color: var(--pf-text); background: rgba(255, 255, 255, 0.14); }
.pf-tab.active { background: linear-gradient(135deg, var(--pf-gold), var(--pf-gold-dark)); color: #3a2b00; font-weight: 700; border-color: transparent; }

/* 标签/徽章 */
.pf-tag { display: inline-block; padding: 3px 10px; border-radius: 999px; font-size: 12px; background: rgba(255, 209, 102, 0.18); color: var(--pf-gold); border: 1px solid rgba(255, 209, 102, 0.35); }
.pf-tag.green { background: rgba(111, 216, 154, 0.15); color: var(--pf-green); border-color: rgba(111, 216, 154, 0.35); }
.pf-tag.blue { background: rgba(91, 159, 232, 0.15); color: var(--pf-blue); border-color: rgba(91, 159, 232, 0.35); }
.pf-tag.red { background: rgba(255, 123, 123, 0.15); color: var(--pf-red); border-color: rgba(255, 123, 123, 0.35); }
.pf-tag.gray { background: rgba(255,255,255,0.08); color: var(--pf-text-2); border-color: var(--pf-border); }
.pf-tag.pink { background: rgba(255, 153, 204, 0.15); color: #ffb3d9; border-color: rgba(255, 153, 204, 0.35); }

/* 列表行 */
.pf-list { display: flex; flex-direction: column; gap: 12px; }
.pf-row {
  display: flex; align-items: center; gap: 14px; padding: 14px 16px;
  background: rgba(255, 255, 255, 0.06); border: 1px solid var(--pf-border);
  border-radius: 16px; transition: transform 0.18s, background 0.18s;
}
.pf-row:hover { background: rgba(255, 255, 255, 0.1); transform: translateY(-1px); }
.pf-row .grow { flex: 1; min-width: 0; }
.pf-row .title { font-weight: 600; font-size: 15px; margin-bottom: 3px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.pf-row .meta { font-size: 12px; color: var(--pf-text-3); }
.pf-row .thumb { width: 52px; height: 52px; border-radius: 14px; object-fit: cover; background: rgba(255,255,255,0.1); flex-shrink: 0; }

/* 数字指标 */
.pf-metrics { display: grid; grid-template-columns: repeat(auto-fit, minmax(150px, 1fr)); gap: 14px; }
.pf-metric { text-align: center; padding: 18px 12px; border-radius: 16px; background: rgba(255,255,255,0.06); border: 1px solid var(--pf-border); }
.pf-metric .num { font-size: 26px; font-weight: 800; color: var(--pf-gold); text-shadow: 0 0 14px rgba(255, 209, 102, 0.4); }
.pf-metric .lbl { font-size: 12px; color: var(--pf-text-2); margin-top: 4px; }

/* 表格 */
.pf-table { width: 100%; border-collapse: collapse; font-size: 13px; }
.pf-table th { text-align: left; padding: 10px 12px; color: var(--pf-text-3); font-weight: 500; border-bottom: 1px solid var(--pf-border); }
.pf-table td { padding: 10px 12px; border-bottom: 1px solid rgba(255,255,255,0.06); }
.pf-table tr:hover td { background: rgba(255,255,255,0.04); }

/* 提示条 */
.pf-notice { padding: 12px 16px; border-radius: 14px; font-size: 13px; margin-bottom: 16px; }
.pf-notice.info { background: rgba(91, 159, 232, 0.14); border: 1px solid rgba(91, 159, 232, 0.35); color: #cfe6ff; }
.pf-notice.warn { background: rgba(255, 209, 102, 0.12); border: 1px solid rgba(255, 209, 102, 0.35); color: #ffe9b0; }
.pf-notice.error { background: rgba(255, 123, 123, 0.12); border: 1px solid rgba(255, 123, 123, 0.35); color: #ffd2d2; }
.pf-notice.success { background: rgba(111, 216, 154, 0.12); border: 1px solid rgba(111, 216, 154, 0.35); color: #d2f5e0; }

/* 空态 */
.pf-empty { text-align: center; padding: 44px 20px; color: var(--pf-text-3); }
.pf-empty .icon { font-size: 42px; margin-bottom: 10px; }

/* 故事阅读 */
.pf-story-title { font-size: 26px; font-weight: 800; text-align: center; margin: 8px 0 4px; text-shadow: 0 2px 14px rgba(255,209,102,0.3); }
.pf-story-summary { text-align: center; color: var(--pf-text-2); font-size: 14px; margin: 6px auto 14px; max-width: 560px; line-height: 1.7; }
.pf-story-meta { text-align: center; color: var(--pf-text-2); font-size: 13px; margin-bottom: 22px; display: flex; gap: 10px; justify-content: center; flex-wrap: wrap; }
.pf-story-para { font-size: 17px; line-height: 2.05; margin-bottom: 18px; text-indent: 2em; color: rgba(255,255,255,0.92); }
.pf-story-moral { margin-top: 26px; padding: 18px 20px; border-radius: 16px; background: rgba(255, 209, 102, 0.1); border: 1px dashed rgba(255, 209, 102, 0.4); color: #ffe9b0; font-size: 15px; }
.pf-story-actions { display: flex; gap: 12px; justify-content: center; margin-top: 26px; flex-wrap: wrap; }

/* 商业化闭环：故事同款高亮 */
.pf-card-highlight {
  border-color: var(--pf-gold) !important;
  box-shadow: 0 0 0 1.5px var(--pf-gold), 0 10px 36px rgba(255, 209, 102, 0.28) !important;
  position: relative;
}
.pf-highlight-badge {
  position: absolute; top: -11px; left: 50%; transform: translateX(-50%);
  padding: 3px 14px; border-radius: 999px; font-size: 12px; font-weight: 700; white-space: nowrap;
  background: linear-gradient(135deg, var(--pf-gold), var(--pf-gold-dark)); color: #3a2b00;
  box-shadow: 0 4px 14px rgba(255, 209, 102, 0.45);
}

/* 故事阅读器：氛围头图 */
.pf-reader-hero { display: flex; justify-content: center; margin: -6px 0 14px; }
.pf-reader-hero img {
  width: 168px; height: 168px; object-fit: cover; border-radius: 28px;
  border: 2px solid rgba(255, 209, 102, 0.4);
  box-shadow: 0 10px 40px rgba(123, 108, 219, 0.45), 0 0 24px rgba(255, 209, 102, 0.22);
}
.pf-reader-hero.hero-goodnight img { border-color: rgba(155, 123, 255, 0.5); box-shadow: 0 10px 40px rgba(91, 159, 232, 0.4), 0 0 24px rgba(155, 123, 255, 0.25); }

/* 故事工厂：关联资产卡 */
.pf-factory-links { display: grid; grid-template-columns: repeat(auto-fit, minmax(240px, 1fr)); gap: 14px; margin-top: 24px; }
.pf-factory-link {
  display: flex; align-items: center; gap: 12px; padding: 14px 16px; border-radius: 16px;
  background: rgba(255, 153, 204, 0.08); border: 1px solid rgba(255, 153, 204, 0.3);
  color: var(--pf-text); text-decoration: none; font-size: 13px; line-height: 1.6;
  transition: transform 0.18s, background 0.18s, border-color 0.18s;
}
.pf-factory-link:hover { transform: translateY(-2px); background: rgba(255, 153, 204, 0.15); border-color: rgba(255, 153, 204, 0.55); }
.pf-factory-link .ico { font-size: 26px; flex-shrink: 0; }
.pf-factory-link .arrow { margin-left: auto; color: #ffb3d9; font-size: 16px; }

/* 故事工厂：多智能体流水线轨迹 */
.pf-pipeline { margin-top: 24px; border-radius: 16px; background: rgba(91, 159, 232, 0.07); border: 1px solid rgba(91, 159, 232, 0.28); overflow: hidden; }
.pf-pipeline-head {
  display: flex; justify-content: space-between; align-items: center; padding: 13px 18px;
  cursor: pointer; font-size: 14px; font-weight: 600; color: #cfe6ff; transition: background 0.18s;
}
.pf-pipeline-head:hover { background: rgba(91, 159, 232, 0.12); }
.pf-pipeline-arrow { font-size: 12px; color: var(--pf-text-3); }
.pf-pipeline-body { padding: 6px 18px 16px; }
.pf-pipeline-step { display: flex; gap: 12px; padding: 10px 0; position: relative; }
.pf-pipeline-step:not(:last-child)::before {
  content: ''; position: absolute; left: 13px; top: 38px; bottom: -6px; width: 2px;
  background: linear-gradient(180deg, rgba(91,159,232,0.5), rgba(91,159,232,0.15));
}
.pf-pipeline-dot {
  width: 28px; height: 28px; border-radius: 50%; flex-shrink: 0; display: flex; align-items: center; justify-content: center;
  background: linear-gradient(135deg, var(--pf-blue), #7ab8f5); color: #08233f; font-size: 13px; font-weight: 800;
  box-shadow: 0 0 12px rgba(91, 159, 232, 0.45);
}
.pf-pipeline-agent { font-size: 13.5px; font-weight: 700; color: #dcecff; }
.pf-pipeline-stepname { margin-left: 8px; font-size: 11.5px; font-weight: 500; color: var(--pf-gold); background: rgba(255,209,102,0.12); padding: 1px 8px; border-radius: 999px; }
.pf-pipeline-detail { font-size: 12.5px; color: var(--pf-text-3); margin-top: 3px; line-height: 1.7; }

@media print {
  body.print-picture-book .pf-factory-links, body.print-picture-book .pf-pipeline { display: none !important; }
}

/* 绘本分镜 */
.pf-pb-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(240px, 1fr)); gap: 16px; }
.pf-pb-page { border-radius: 16px; overflow: hidden; background: rgba(255,255,255,0.06); border: 1px solid var(--pf-border); transition: transform 0.2s; }
.pf-pb-page:hover { transform: translateY(-3px); }
.pf-pb-head { padding: 10px 14px; background: rgba(255,209,102,0.12); display: flex; justify-content: space-between; font-size: 12px; color: var(--pf-gold); }
.pf-pb-body { padding: 14px; font-size: 13.5px; line-height: 1.8; }
.pf-pb-ill { padding: 0 14px 12px; font-size: 12px; color: var(--pf-text-3); }
.pb-image-download { margin: 10px 14px 2px; }

/* 会员卡片 */
.pf-vip-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); gap: 18px; }
.pf-vip-card { position: relative; border-radius: 22px; padding: 26px 22px; background: var(--pf-glass); border: 1px solid var(--pf-border); transition: transform 0.2s, box-shadow 0.2s; }
.pf-vip-card:hover { transform: translateY(-4px); box-shadow: 0 14px 40px rgba(0,0,0,0.35); }
.pf-vip-card.featured { border-color: var(--pf-gold); box-shadow: 0 0 0 1px var(--pf-gold), 0 12px 40px rgba(255, 209, 102, 0.2); }
.pf-vip-name { font-size: 19px; font-weight: 800; }
.pf-vip-price { margin: 12px 0; font-size: 30px; font-weight: 800; color: var(--pf-gold); }
.pf-vip-price small { font-size: 13px; color: var(--pf-text-3); font-weight: 400; }
.pf-vip-rights { list-style: none; margin: 14px 0 20px; display: flex; flex-direction: column; gap: 8px; font-size: 13px; color: var(--pf-text-2); }
.pf-vip-rights li::before { content: '✦ '; color: var(--pf-gold); }

/* 收银台 */
.pf-pay-methods { display: flex; flex-direction: column; gap: 12px; margin: 18px 0; }
.pf-pay-method {
  display: flex; align-items: center; gap: 14px; padding: 16px 18px; cursor: pointer;
  border-radius: 16px; border: 2px solid var(--pf-border); background: rgba(255,255,255,0.05);
  transition: all 0.18s;
}
.pf-pay-method:hover { background: rgba(255,255,255,0.1); }
.pf-pay-method.selected { border-color: var(--pf-gold); background: rgba(255,209,102,0.1); box-shadow: 0 0 0 3px rgba(255,209,102,0.12); }
.pf-pay-icon { width: 40px; height: 40px; border-radius: 12px; display: flex; align-items: center; justify-content: center; font-size: 20px; background: rgba(255,255,255,0.12); }

/* Toast */
.pf-toast {
  position: fixed; top: 24px; left: 50%; transform: translateX(-50%) translateY(-20px);
  padding: 12px 24px; border-radius: 999px; font-size: 14px; z-index: 9999;
  background: var(--pf-glass-strong); border: 1px solid var(--pf-border);
  color: var(--pf-text); opacity: 0; pointer-events: none;
  transition: all 0.3s ease; backdrop-filter: blur(10px); box-shadow: var(--pf-shadow);
}
.pf-toast.show { opacity: 1; transform: translateX(-50%) translateY(0); }
.pf-toast.success { border-color: var(--pf-green); }
.pf-toast.error { border-color: var(--pf-red); }

/* 加载态 */
.pf-loading { display: inline-block; width: 18px; height: 18px; border: 2px solid rgba(255,255,255,0.3); border-top-color: var(--pf-gold); border-radius: 50%; animation: pf-spin 0.8s linear infinite; vertical-align: middle; }
@keyframes pf-spin { to { transform: rotate(360deg); } }

/* 生成中动效 */
.pf-generating { text-align: center; padding: 60px 20px; }
.pf-generating .magic { font-size: 46px; animation: pf-float 2s ease-in-out infinite; }
.pf-generating p { margin-top: 14px; color: var(--pf-text-2); }
@keyframes pf-float { 0%,100% { transform: translateY(0); } 50% { transform: translateY(-10px); } }

/* 顶栏登录态 */
.user-profile .vip-badge { font-size: 11px; padding: 1px 8px; border-radius: 999px; background: linear-gradient(135deg, var(--pf-gold), var(--pf-gold-dark)); color: #3a2b00; font-weight: 700; margin-left: 4px; }
.user-dropdown { position: absolute; top: 56px; right: 0; min-width: 200px; background: var(--pf-glass-strong); border: 1px solid var(--pf-border); border-radius: 16px; padding: 8px; box-shadow: var(--pf-shadow); display: none; z-index: 100; backdrop-filter: blur(14px); }
.user-dropdown.open { display: block; }
.user-dropdown a, .user-dropdown .dd-item { display: flex; align-items: center; gap: 10px; padding: 10px 14px; border-radius: 12px; color: var(--pf-text); text-decoration: none; font-size: 14px; cursor: pointer; transition: background 0.15s; }
.user-dropdown a:hover, .user-dropdown .dd-item:hover { background: rgba(255,255,255,0.1); }
.user-profile { position: relative; }

/* 后台布局 */
.pf-admin-nav { display: flex; gap: 6px; margin-bottom: 20px; flex-wrap: wrap; }
.pf-admin-section { display: none; }
.pf-admin-section.active { display: block; }

/* 朗读控制条 */
.pf-tts-bar { display: flex; align-items: center; gap: 12px; padding: 14px 18px; border-radius: 16px; background: rgba(123, 108, 219, 0.16); border: 1px solid rgba(123, 108, 219, 0.4); margin: 18px 0; }
.pf-tts-bar .voice-select { flex: 1; max-width: 220px; }

/* ===== 睡前完整播放器（声音陪伴，验收0809） ===== */
.pf-player { margin: 20px 0; padding: 18px 20px; border-radius: 18px; background: linear-gradient(135deg, rgba(27, 32, 84, 0.9), rgba(58, 44, 120, 0.85)); border: 1px solid rgba(155, 123, 255, 0.45); box-shadow: 0 8px 30px rgba(20, 16, 60, 0.45); }
.pf-player-head { display: flex; align-items: center; gap: 8px; font-size: 14px; font-weight: 700; margin-bottom: 14px; }
.pf-player-dot { width: 9px; height: 9px; border-radius: 50%; background: #9B7BFF; box-shadow: 0 0 10px #9B7BFF; animation: pfPulse 2s infinite; }
.pf-player-status { margin-left: auto; font-size: 12px; color: var(--pf-text-2); font-weight: 400; }
@keyframes pfPulse { 0%, 100% { opacity: 1; } 50% { opacity: 0.35; } }
.pf-player-main { display: flex; align-items: center; gap: 10px; margin-bottom: 12px; }
.pf-player-btn { width: 44px; height: 44px; border-radius: 50%; border: none; background: linear-gradient(135deg, #9B7BFF, #6B4FD8); color: #fff; font-size: 17px; cursor: pointer; transition: transform .18s, filter .18s; box-shadow: 0 4px 14px rgba(123, 108, 219, 0.4); }
.pf-player-btn:hover { transform: scale(1.08); filter: brightness(1.1); }
.pf-player-btn:active { transform: scale(0.94); }
.pf-player-progress { flex: 1; height: 8px; border-radius: 999px; background: rgba(255,255,255,0.12); overflow: hidden; }
.pf-player-progress-in { height: 100%; width: 0; border-radius: 999px; background: linear-gradient(90deg, #FFD166, #F5B65A); transition: width .5s linear; }
.pf-player-opts { display: flex; gap: 10px; flex-wrap: wrap; }
.pf-player-opts .pf-select { flex: 1; min-width: 150px; }
.pf-player-tip { margin-top: 10px; font-size: 12px; color: rgba(255,255,255,0.5); }

/* ===== 亲子互动问题（PRD 5.3） ===== */
.pf-qa-box { margin-top: 24px; padding: 18px 20px; border-radius: 16px; background: rgba(91, 159, 232, 0.1); border: 1px solid rgba(91, 159, 232, 0.35); }
.pf-qa-title { font-size: 15px; font-weight: 700; color: #cfe6ff; margin-bottom: 12px; }
.pf-qa-item { display: flex; gap: 10px; align-items: flex-start; font-size: 14px; line-height: 1.8; color: rgba(255,255,255,0.88); padding: 8px 0; }
.pf-qa-item + .pf-qa-item { border-top: 1px dashed rgba(91, 159, 232, 0.25); }
.pf-qa-num { flex: none; width: 22px; height: 22px; border-radius: 50%; background: rgba(91, 159, 232, 0.3); color: #cfe6ff; font-size: 12px; font-weight: 700; display: flex; align-items: center; justify-content: center; margin-top: 2px; }

/* ===== 绘本打印版式（A4 横版，每页一张） ===== */
@media print {
  body.print-picture-book { background: #fff !important; }
  body.print-picture-book header, body.print-picture-book .pf-player,
  body.print-picture-book .pf-story-actions, body.print-picture-book .pf-qa-box,
  body.print-picture-book .pf-toast-wrap, body.print-picture-book nav,
  body.print-picture-book footer, body.print-picture-book .pb-image-download { display: none !important; }
  body.print-picture-book .pf-card { background: #fff !important; border: none !important; box-shadow: none !important; padding: 0 !important; }
  body.print-picture-book .pf-story-title { color: #222 !important; text-shadow: none !important; }
  body.print-picture-book .pf-story-meta .pf-tag { color: #555 !important; border-color: #ccc !important; background: #f5f5f5 !important; }
  body.print-picture-book .pf-pb-grid { display: block !important; }
  body.print-picture-book .pf-pb-page { break-inside: avoid; page-break-after: always; border: 1px solid #ddd !important; background: #fff !important; color: #222 !important; margin-bottom: 0; min-height: 16cm; display: flex; flex-direction: column; justify-content: center; }
  body.print-picture-book .pf-pb-head { color: #888 !important; }
  body.print-picture-book .pf-pb-body { color: #222 !important; font-size: 15pt !important; }
  body.print-picture-book .pf-pb-ill { color: #777 !important; }
  body.print-picture-book .pf-story-moral { color: #5a4a00 !important; background: #fffbe8 !important; border-color: #e8d488 !important; }
  @page { size: A4 landscape; margin: 1.2cm; }
}

/* 响应式 */
@media (max-width: 768px) {
  .pf-page { padding: 16px 14px 40px; }
  .pf-hero h2 { font-size: 24px; }
  .pf-story-para { font-size: 16px; }
  .pf-metrics { grid-template-columns: repeat(2, 1fr); }
  .pf-vip-grid { grid-template-columns: 1fr; }
  .pf-player-opts { flex-direction: column; }
}

/* ===== 功能验收表（/acceptance，客户0809点名交付物） ===== */
.acc-toolbar { display: flex; align-items: center; gap: 14px; margin-top: 16px; flex-wrap: wrap; }
.acc-engine { font-size: 13px; color: var(--pf-text-2); }
.acc-time { font-size: 12px; color: var(--pf-text-3); }
.acc-toolbar .pf-btn { margin-left: auto; }
.acc-list { display: flex; flex-direction: column; gap: 12px; }
.acc-item { padding: 14px 16px; border-radius: 14px; background: rgba(255, 255, 255, 0.05); border: 1px solid var(--pf-border); border-left-width: 3px; transition: background 0.18s; }
.acc-item:hover { background: rgba(255, 255, 255, 0.09); }
.acc-item.acc-pass { border-left-color: var(--pf-green); }
.acc-item.acc-warn { border-left-color: var(--pf-gold); }
.acc-item.acc-fail { border-left-color: var(--pf-red); }
.acc-item-head { display: flex; align-items: center; gap: 10px; margin-bottom: 8px; flex-wrap: wrap; }
.acc-item-name { font-size: 15px; font-weight: 700; }
.acc-item-detail { font-size: 13px; line-height: 1.8; color: var(--pf-text-2); }
.acc-item-verify { display: flex; align-items: center; gap: 12px; margin-top: 10px; flex-wrap: wrap; }
.acc-how { font-size: 12px; color: var(--pf-text-3); line-height: 1.6; }
@media (max-width: 768px) {
  .acc-toolbar .pf-btn { margin-left: 0; width: 100%; }
}
