html, body { margin: 0; }
#weichi-catalog-mvp dialog.request-dialog { width: min(560px,calc(100vw - 32px)); height: auto; max-height: calc(100dvh - 32px); padding: 24px; color: #173552; box-sizing: border-box; }
#weichi-catalog-mvp .request-head { display: flex; justify-content: space-between; align-items: center; gap: 16px; }
#weichi-catalog-mvp .request-head h2 { margin: 0; font-size: 22px; }
#weichi-catalog-mvp .request-dialog p { font-size: 14px; line-height: 1.6; }
#weichi-catalog-mvp .request-demo { background: #fff4d9; padding: 10px 12px; border-radius: 6px; color: #70521b; }
#weichi-catalog-mvp [data-request-form] { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 16px; }
#weichi-catalog-mvp [data-request-form][hidden] { display: none; }
#weichi-catalog-mvp .request-dialog label { display: block; font-size: 14px; font-weight: 600; }
#weichi-catalog-mvp .request-dialog label span { color: #657181; font-weight: 400; }
#weichi-catalog-mvp .request-dialog input, #weichi-catalog-mvp .request-dialog textarea { display: block; width: 100%; margin-top: 7px; padding: 10px 12px; border: 1px solid #bccbd9; border-radius: 6px; font: inherit; font-size: 16px; box-sizing: border-box; }
#weichi-catalog-mvp .request-dialog textarea { resize: vertical; }
#weichi-catalog-mvp .request-wide { grid-column: 1 / -1; }
#weichi-catalog-mvp .request-submit { border: 0; border-radius: 7px; background: #173f68; color: white; padding: 13px; cursor: pointer; font-size: 16px; }
#weichi-catalog-mvp .request-result { padding: 20px 0; line-height: 1.8; }
@media(max-width:480px) { #weichi-catalog-mvp [data-request-form] { grid-template-columns: minmax(0,1fr); } }
#weichi-catalog-mvp .page { padding: 0; display: block; min-height: 0; height: 100%; min-width: 0; }
#weichi-catalog-mvp .page.right { display: block; }
#weichi-catalog-mvp .page.is-hidden { display: none; }
#weichi-catalog-mvp .book { grid-template-columns: repeat(2,minmax(0,1fr)); min-height: 0; height: auto; aspect-ratio: 1.4142; }
#weichi-catalog-mvp .book.single { grid-template-columns: minmax(0,1fr); min-height: 0; aspect-ratio: .7071; }
#weichi-catalog-mvp .stage { box-sizing: border-box; height: calc(100dvh - var(--toolbar-height,140px)); min-height: 0; grid-template-rows: auto; align-content: center; gap: 0; padding: 6px 72px; }
#weichi-catalog-mvp .pdf-page-image { display: block; width: 100%; height: 100%; object-fit: contain; background: white; }
#weichi-catalog-mvp .book-wrap { width: min(calc(100vw - 144px), calc((100dvh - var(--toolbar-height,140px) - 12px) * 1.4142)); }
#weichi-catalog-mvp .book-wrap.single-view { width: min(calc(100vw - 144px), calc((100dvh - var(--toolbar-height,140px) - 12px) * .7071)); }
#weichi-catalog-mvp .book-wrap::before, #weichi-catalog-mvp .book-wrap::after { bottom: 0; }
#weichi-catalog-mvp .pdf-page-image[data-enlarge] { cursor: zoom-in; }
#weichi-catalog-mvp .pdf-page-image:focus-visible { outline: 3px solid #f0a23a; outline-offset: -3px; }
#weichi-catalog-mvp .page-index { display: none; }
#weichi-catalog-mvp .page-box { grid-template-columns: minmax(0,1fr) auto; gap: 5px; }
#weichi-catalog-mvp .page-box input { width: 100%; min-width: 0; }
#weichi-catalog-mvp .thumbnail-panel { background: #f3f6fa; padding: 0; overflow: hidden; }
#weichi-catalog-mvp .thumbnail-panel.is-open { display: flex; flex-direction: column; }
#weichi-catalog-mvp .thumbnail-head { flex: 0 0 auto; margin: 0; padding: 16px 22px; background: #fff; border-bottom: 1px solid #dbe2ea; }
#weichi-catalog-mvp .thumbnail-grid { min-height: 0; overflow: auto; overscroll-behavior: contain; padding: 20px; grid-template-columns: repeat(4,minmax(0,1fr)); gap: 18px; align-content: start; }
#weichi-catalog-mvp .thumbnail-card { display: grid; grid-template-rows: auto 98px; gap: 0; padding: 0; min-width: 0; min-height: auto; overflow: hidden; border: 1px solid #d8e0ea; border-radius: 10px; background: #fff; }
#weichi-catalog-mvp .thumbnail-grid { grid-auto-rows: max-content; }
#weichi-catalog-mvp .thumbnail-card:hover { border-color: #7999be; background: #fff; box-shadow: 0 3px 12px #061c4a12; }
#weichi-catalog-mvp .thumbnail-card.is-current { border-color: #1f548e; background: #fff; box-shadow: inset 0 0 0 2px #1f548e; }
#weichi-catalog-mvp .thumbnail-card:focus-visible { outline: 3px solid #f0a23a; outline-offset: 2px; }
#weichi-catalog-mvp .thumbnail-image { display: block; padding: 12px; width: 100%; aspect-ratio: 240 / 339; background: #eaf0f5; border-bottom: 1px solid #e0e7ef; }
#weichi-catalog-mvp .thumbnail-card img { width: 100%; height: 100%; object-fit: contain; display: block; background: white; }
#weichi-catalog-mvp .thumbnail-caption { display: block; padding: 12px; width: 100%; }
#weichi-catalog-mvp .thumbnail-meta { display: flex; align-items: center; justify-content: space-between; height: 24px; margin-bottom: 8px; gap: 4px; }
#weichi-catalog-mvp .thumbnail-number { display: inline-block; padding: 3px 8px; border-radius: 5px; background: #edf3fa; color: #1f4064; font-size: 14px; font-weight: 700; font-variant-numeric: tabular-nums; }
#weichi-catalog-mvp .thumbnail-current { visibility: hidden; color: #1f548e; font-size: 12px; }
#weichi-catalog-mvp .thumbnail-card.is-current .thumbnail-current { visibility: visible; }
#weichi-catalog-mvp .thumbnail-card b { display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; height: 42px; font-size: 14px; line-height: 21px; color: #173552; }
@media (min-width:1200px) { #weichi-catalog-mvp .thumbnail-grid { grid-template-columns: repeat(5,minmax(0,1fr)); } }
@media (min-width:1500px) { #weichi-catalog-mvp .thumbnail-grid { grid-template-columns: repeat(6,minmax(0,1fr)); } }
@media (max-width:700px) {
  #weichi-catalog-mvp .thumbnail-panel { left: 12px; right: 12px; top: 12px; bottom: 12px; }
  #weichi-catalog-mvp .thumbnail-head { padding: 12px 14px; }
  #weichi-catalog-mvp .thumbnail-grid { grid-template-columns: repeat(2,minmax(0,1fr)); padding: 12px; gap: 12px; }
  #weichi-catalog-mvp .thumbnail-image { padding: 8px; }
  #weichi-catalog-mvp .thumbnail-caption { padding: 10px; }
}
#weichi-catalog-mvp .print-panel { display: none; position: absolute; top: 75px; right: 16px; z-index: 100; width: min(320px,calc(100vw - 32px)); padding: 18px; background: white; border-radius: 12px; box-shadow: 0 12px 32px #061c4a44; }
#weichi-catalog-mvp .print-panel.is-open { display: grid; gap: 12px; }
#weichi-catalog-mvp .print-panel-head { display: flex; align-items: center; justify-content: space-between; gap: 12px; }
#weichi-catalog-mvp .print-panel-close { display: grid; place-items: center; width: 34px; height: 34px; padding: 0; border: 0; border-radius: 50%; background: transparent; color: #173552; cursor: pointer; font-size: 18px; }
#weichi-catalog-mvp .print-panel-close:hover { background: #edf3f8; }
#weichi-catalog-mvp .print-panel-close:focus-visible { outline: 3px solid #f0a23a; outline-offset: 2px; }
#weichi-catalog-mvp .print-panel a { color: #061c4a; padding: 12px; border: 1px solid #dbe2ea; border-radius: 8px; text-decoration: none; }
#weichi-catalog-mvp .print-panel p { margin: 0; color: #555; font-size: 14px; }
#weichi-catalog-mvp button:disabled { opacity: .35; cursor: default; }
#weichi-catalog-mvp .page-error { padding: 25px; display: grid; gap: 20px; }
#weichi-catalog-mvp dialog { padding: 0; border: 0; border-radius: 8px; width: 95vw; max-width: 1900px; height: 94dvh; max-height: 94dvh; }
#weichi-catalog-mvp dialog::backdrop { background: #061c4acc; }
#weichi-catalog-mvp .zoom-head { position: sticky; top: 0; z-index: 2; background: white; padding: 12px 20px; display: flex; justify-content: space-between; align-items: center; border-bottom: 1px solid #ddd; }
#weichi-catalog-mvp .zoom-scroll { overflow: auto; height: calc(100% - 58px); background: #e5e8ed; cursor: grab; user-select: none; touch-action: none; overscroll-behavior: contain; }
#weichi-catalog-mvp .zoom-scroll.is-panning { cursor: grabbing; }
#weichi-catalog-mvp .zoom-scroll img { display: block; width: 1800px; max-width: none; margin: auto; }
@media (max-width:700px) {
  #weichi-catalog-mvp .stage { padding: 6px 34px; }
  #weichi-catalog-mvp .book-wrap { width: min(calc(100vw - 82px), calc((100dvh - var(--toolbar-height,140px) - 12px) * 1.4142)); }
  #weichi-catalog-mvp .book-wrap.single-view { width: min(calc(100vw - 82px), calc((100dvh - var(--toolbar-height,140px) - 12px) * .7071)); }
  #weichi-catalog-mvp .page { padding: 0; }
  #weichi-catalog-mvp .page-box input { width: 100%; }
}

/* Closed drawers must not capture keyboard focus off screen. */
#weichi-catalog-mvp .drawer:not(.is-open){visibility:hidden;pointer-events:none}
