@media (max-width: 680px) {
  html { font-size: 17px; }
  body {
    -webkit-text-size-adjust: 100%;
    line-height: 1.7;
    padding-bottom: 92px !important;
  }

  .library-header { padding: 22px 14px 18px; }
  .library-header > div { width: 100%; }
  .library-header h1 { font-size: 30px; line-height: 1.2; }
  .library-header p { margin-top: 11px; font-size: 15px; line-height: 1.75; }
  .back-home { margin-bottom: 12px; font-size: 15px; }

  .library-layout {
    width: calc(100% - 18px);
    margin: 14px auto 40px;
    gap: 14px;
  }
  .category-nav { padding: 10px; overflow-x: auto; white-space: nowrap; }
  .category-nav strong { display: none; }
  .category-nav a { display: inline-flex; padding: 9px 10px; font-size: 14px; }

  .material-grid, .case-grid, .notice-grid { grid-template-columns: 1fr !important; gap: 14px; }
  .material-card, .case-card, .reader-summary, .reader-section, .reader-media, .reader-doc, .reader-actions {
    border-radius: 10px;
  }
  .material-body { min-height: auto !important; padding: 15px; }
  .material-body h3 { min-height: auto !important; max-height: none !important; font-size: 19px; line-height: 1.5; }
  .material-body p { font-size: 15px; line-height: 1.7; }
  .thumb { aspect-ratio: 16 / 10; }
  .open-link { min-height: 44px; padding: 10px 15px; align-items: center; font-size: 15px; }

  .reader-page { gap: 14px; }
  .reader-summary, .reader-section, .reader-media, .reader-doc, .reader-actions { padding: 15px; }
  .reader-summary h2, .reader-section h2 { font-size: 22px; }
  .reader-summary p, .reader-section li, .reader-doc p { font-size: 16px; line-height: 1.85; }
  .reader-media img, .reader-media video { max-height: 68vh; }
  .reader-actions { gap: 10px; }
  .reader-actions a { width: 100%; min-height: 44px; justify-content: center; }
}
