.portal-modal{box-sizing:border-box;width:min(calc(100% - 2rem),32rem);max-width:calc(100% - 2rem);max-height:calc(100dvh - 2rem);margin:auto;border:1px solid var(--line);border-radius:var(--radius);padding:var(--portal-pad,1.5rem);color:var(--ink);background:var(--white);font-family:var(--font-body);box-shadow:var(--shadow-modal);overflow:auto}
.portal-modal[open]{opacity:1;transform:none}.portal-modal::backdrop{background:color-mix(in srgb,var(--forest-deep) 70%,transparent)}.portal-modal h2{font-size:1.4rem;line-height:1.3;overflow-wrap:anywhere;margin-top:0}.portal-confirm>button{margin:.25rem}
html.is-locked{overflow:hidden}
.document-viewer{width:min(calc(100% - 1rem),76rem);max-width:calc(100% - 1rem);height:calc(100dvh - 1rem);max-height:calc(100dvh - 1rem);padding:var(--portal-space,.75rem);overflow:hidden}
.document-viewer[open]{display:flex;flex-direction:column;gap:var(--portal-space,.75rem)}
.document-viewer h2{margin:0;font-size:1.1rem}.viewer-toolbar{display:flex;flex-wrap:wrap;gap:.4rem;align-items:center;flex-shrink:0}.viewer-toolbar .portal-button{padding:.5rem .7rem}.viewer-pages{min-width:3rem;text-align:center}.viewer-status{margin:0;overflow-wrap:anywhere;color:var(--muted);flex-shrink:0}.viewer-status:empty{display:none}
.viewer-viewport{min-height:0;min-width:0;flex:1;overflow:auto;background:var(--cream);padding:.75rem;text-align:center;overscroll-behavior:contain}.viewer-viewport canvas,.viewer-image{display:block;margin-inline:auto;max-width:none;height:auto;background:var(--white);image-orientation:from-image}
@media(max-width:400px){.document-viewer{gap:.5rem}.viewer-toolbar{gap:.3rem}.viewer-toolbar .portal-button{font-size:.875rem;padding:.5rem}.portal-modal h2{font-size:1.2rem}}
@media(prefers-reduced-motion:reduce){.portal-modal{transition:none}}

.viewer-navigation{display:flex;align-items:center;gap:var(--portal-space,.75rem);min-width:0}.viewer-navigation[hidden]{display:none}.viewer-document-count{white-space:nowrap}.document-viewer h2{overflow-wrap:anywhere}
