/* 原稿的 A4 版式继续用于打印；屏幕阅读按设备宽度适配。 */
@media screen {
  body { padding:28px 16px; }
  .page { margin-bottom:28px; }
  .web-table { max-width:100%; }
}
@media screen and (max-width:860px) {
  body { padding:12px; font-size:15px; line-height:1.75; }
  .page { width:100%; height:auto; min-height:0; padding:24px; overflow:visible; margin-bottom:16px; }
  .page.cover { padding:0; }
  .cover .top { padding:28px 24px 0; }
  .cover .foot { padding:24px; }
  .cover h1 { font-size:clamp(32px,7vw,46px); overflow-wrap:anywhere; }
  .cover .sub { font-size:18px; }
  .cover .hero { margin-top:24px; }
  .cover .tags span { font-size:12px; }
  .pf { position:static; margin-top:24px; padding-top:12px; font-size:11px; gap:12px; }
  .ph { gap:8px; flex-wrap:wrap; margin-bottom:20px; }
  .ph .t { font-size:21px; }
  .ph .s { font-size:11px; }
  .body { min-width:0; }
  .lead { font-size:16px; }
  .sm { font-size:14px; }
  .xs { font-size:12.5px; }
  .mono, pre, code { font-size:13px; overflow-wrap:anywhere; }
  pre { max-width:100%; }
  h3 { font-size:18px; }
  h4 { font-size:16px; }
  .kicker { font-size:11px; }
  .side { grid-template-columns:1fr; }
  .web-table { overflow-x:auto; }
  table { font-size:13px; }
  table.tight th, table.tight td { font-size:12px; }
  .web-table:has(tr > :nth-child(6)) table { min-width:680px; }
  .kv { font-size:13px; }
  .step .box b { font-size:14px; }
  .step .box p { font-size:13px; }
  .stat .k, .mgrid .m .k { font-size:12px; }
  .stat .v { font-size:25px; }
  .mgrid .m .v { font-size:20px; }
  .scene-title { flex-wrap:wrap; gap:8px; }
  .scene-title h3 { font-size:20px; }
  .scene-title .id, .scene-title .badge { font-size:11px; }
  .scene-page .shot img { height:auto; }
  .shot .cap { font-size:12px; }
  .validation-page .body { line-height:1.75; }
}
@media screen and (max-width:640px) {
  .page { padding:20px; }
  .cover .top { padding:24px 20px 0; }
  .cover .foot { padding:20px; }
  .grid2, .grid3, .shots, .lane { grid-template-columns:1fr; }
  .grid4, .mgrid { grid-template-columns:repeat(2,minmax(0,1fr)); gap:14px; }
  .grid2, .grid3, .shots { gap:16px; }
  .hflow { flex-direction:column; align-items:stretch; gap:8px; }
  .hflow .n { flex:auto; padding:10px; }
  .hflow .n b { font-size:14px; }
  .hflow .n span { font-size:12px; }
  .hflow .a { align-self:center; transform:rotate(90deg); }
  .lane .cell b { font-size:14px; }
  .lane .cell span { font-size:12px; }
}
