
.scan-viewer { box-sizing:border-box; width:calc(100vw - 32px); max-width:none; height:calc(100dvh - 32px); max-height:none; padding:0; border:1px solid var(--rule); color:var(--ink); background:var(--paper); }
.scan-viewer::backdrop { background:rgba(34,26,20,.65); }
.scan-viewer[open] { display:flex; flex-direction:column; }
.scan-viewer-bar { display:flex; flex-wrap:wrap; align-items:center; gap:4px 12px; padding:8px 12px; border-bottom:1px solid var(--rule); font:14px var(--sans); }
.scan-viewer-bar h2 { font:inherit; margin:0 auto 0 0; }
.scan-viewer-bar button,.scan-viewer-bar a { display:inline-flex; align-items:center; justify-content:center; min-height:44px; min-width:44px; padding:0 10px; box-sizing:border-box; font:inherit; color:var(--ink); border:1px solid var(--rule); background:transparent; cursor:pointer; }
.scan-viewer-bar :focus-visible { outline:2px solid var(--accent); outline-offset:2px; }
.scan-viewer-stage { flex:1; min-height:0; width:100%; }
.scan-viewer-status { margin:0; padding:0 12px; font:14px/1.5 var(--sans); }
.scan-viewer-status:empty { display:none; }
#scan-panel-link { cursor:zoom-in; }
@media(max-width:600px) { .scan-viewer { width:100vw; height:100dvh; border:0; } .scan-viewer-bar { gap:4px; padding:4px 8px; } .scan-viewer-bar h2 { flex:1 0 100%; } }
