/* Final, portal-only mobile layer. Keep desktop and printable forms intact. */
@media screen and (max-width: 820px) {
  body:is(.pss-reading-room,.pss-interior,.pss-admin-design) {
    -webkit-text-size-adjust: 100%;
  }
  body .pss-links.open {
    max-height: calc(100dvh - var(--pss-nav-height) - 80px - env(safe-area-inset-bottom));
    overflow-y: auto;
    overscroll-behavior: contain;
    padding-bottom: 16px;
  }
  body .pss-links :is(a,summary) { min-height: 44px; }
  body .pss-mobile-dock :is(a,button) { min-height: 44px; font-size: 12px; }
  body:is(.pss-reading-room,.pss-interior,.pss-admin-design) :is(main,.pss-home-hero) :is(input,select,textarea) {
    font-size: 16px;
    max-width: 100%;
  }
  body .pss-calendar-actions button { min-height: 44px; font-size: 13px; }
}
@media screen and (max-width: 700px) {
  body .pss-shell, body.pss-interior main { width: calc(100% - 32px); }
  body.pss-interior main { padding-top: 20px; }
  body .pss-breadcrumb { flex-wrap: wrap; font-size: 12px; }
  body.pss-reading-room .pss-home-hero {
    width: calc(100% - 32px); min-height: 0; padding: 24px 0 20px; gap: 8px;
  }
  body.pss-reading-room .pss-home-inner h1 { font-size: clamp(36px,10vw,48px); line-height: 1.1; }
  body.pss-reading-room .library-name { margin-bottom: 14px; }
  body.pss-reading-room .pss-home-inner > p:last-of-type { font-size: 16px; margin: 16px 0; }
  body.pss-reading-room .reading-scene { width: min(65%,250px); margin: 0 auto; }
  body.pss-reading-room .reading-scene figcaption { font-size: 14px; margin-top: -10px; }
  body.pss-reading-room .hero-actions { gap: 16px; margin-top: 10px; }
  body.pss-reading-room .hero-actions a { margin: 0; font-size: 14px; min-height: 44px; }
  body.pss-reading-room .pss-home-grid { grid-template-columns: repeat(2,minmax(0,1fr)); gap: 12px; padding-bottom: 28px; }
  body.pss-reading-room .pss-home-card { padding: 0 14px 16px; }
  body.pss-reading-room .pss-home-card .pss-card-image { height: 100px; width: calc(100% + 28px); margin: 0 -14px 12px; object-fit: contain; }
  body.pss-reading-room .pss-home-card h2 { font-size: 21px; line-height: 1.2; }
  body.pss-reading-room .pss-home-card p { font-size: 14px; line-height: 1.6; }
  body.pss-reading-room .pss-home-card b { font-size: 13px; }
  body.pss-reading-room .pss-weekly-card { padding: 18px 95px 18px 18px; min-height: 150px; }
  body.pss-reading-room .pss-weekly-card::after { width: 78px; height: 80px; right: 8px; bottom: 16px; }
  body.pss-reading-room .pss-weekly-card strong { font-size: 18px; }
  body.pss-reading-room .pss-weekly-card small { font-size: 14px; }
  body.pss-reading-room .pss-widget { padding: 20px; }
  body.pss-reading-room .pss-widget-art { width: 95px; height: 70px; margin-bottom: 8px; }
  body.pss-reading-room .pss-home-widgets { gap: 16px; padding-bottom: 28px; }
  body.pss-reading-room .pss-service-strip a { padding: 18px 90px 18px 16px; background-size: 70px 65px; background-position: right 10px center; }
  body .pss-section-heading { padding: 20px; gap: 8px; grid-template-columns: minmax(0,1fr); margin-bottom: 20px; border-radius: 12px 12px 32px 12px; }
  body.pss-interior .pss-section-heading h1 { font-size: clamp(28px,8vw,38px); }
  body .pss-section-art { width: 100px; height: 72px; justify-self: end; }
  body.pss-interior .catalog-hero-copy { grid-template-columns: minmax(0,1fr); }
  body.pss-interior .catalog-hero-copy .pss-section-art { grid-column: 1; grid-row: 4; width: 100px; height: 72px; justify-self: end; }
  body.pss-interior .catalog-hero { padding: 20px; gap: 16px; }
  body.pss-interior .catalog-metrics strong { font-size: 26px; }
  body.pss-interior .pss-home-hero { padding: 24px 16px; min-height: 0; gap: 10px; }
  body.pss-interior .pss-home-hero .pss-section-art { height: 100px; }
  body.pss-interior :is(.page-intro,.pss-section-heading p,.loan-note p,.network-resource p,.nilam-note p) { font-size: 16px; line-height: 1.65; }
  body.pss-interior :is(.pss-info-block,.submenu-card,.loan-form,.loan-note,.nilam-note,.pss-announcement-aside) { padding: 20px; }
  body .pss-detail-art { width: 95px; height: 70px; margin-bottom: 10px; }
  body .pss-service-directory a { padding: 20px; }
  body .pss-service-directory h2 { font-size: 27px; }
  body .network-resource { grid-template-columns: minmax(0,1fr); padding: 20px; gap: 10px; }
  body .network-resource img { width: 85px; height: 65px; object-fit: contain; }
  body .network-resource h2 { font-size: 27px; margin-top: 8px; }
  body .network-resource b { padding-top: 16px; }
  body.pss-interior .nilam-links a { padding: 20px 20px 90px; background-size: 85px 65px; background-position: right 16px bottom 12px; }
  body.pss-interior .virtual-shelf { gap: 12px; padding: 12px; }
  body.pss-interior .virtual-book { min-height: 200px; padding: 14px 12px; overflow-wrap: anywhere; }
  body.pss-interior .virtual-book b { font-size: 19px; }
  body.pss-interior .virtual-book small { font-size: 11px; }
  body.pss-interior .pss-calendar-panel { padding: 12px; }
  body .pss-calendar-event h3 { font-size: 15px; }
  body .pss-calendar-event p, body .pss-calendar-empty { font-size: 14px; }
  body .pss-calendar-weekday { font-size: 10px; letter-spacing: 0; }
  body .pss-calendar-number { font-size: 14px; }
  body.pss-admin-design :is(.card,.banner) { padding: 18px; min-width: 0; }
  body.pss-admin-design .tablewrap { max-width: 100%; overflow-x: auto; }
  body.pss-admin-design .pss-access-art { width: 130px; height: 95px; }
}
@media screen and (max-width: 360px) {
  body.pss-reading-room .pss-home-grid { grid-template-columns: 1fr; }
  body.pss-reading-room .pss-home-card .pss-card-image { height: 90px; }
  body.pss-interior .virtual-book b { font-size: 17px; }
}
