/* Shared Full Photo Collection viewer contract. */
dialog.archive-viewer:is(#viewer,#full-viewer,#photo-dialog){width:min(1300px,96vw);height:94dvh;max-height:94dvh;max-width:96vw;padding:20px;overflow:hidden;background:#102033;color:#fff;border:1px solid #718298;box-sizing:border-box}
dialog.archive-viewer[open]:is(#viewer,#full-viewer,#photo-dialog){display:grid;grid-template-columns:minmax(0,1.8fr) minmax(280px,1fr);grid-template-rows:auto minmax(0,1fr);gap:18px}
.archive-viewer::backdrop{background:#071321db}
.archive-viewer .av-toolbar{grid-column:1/-1;display:flex;justify-content:space-between;align-items:center;gap:16px}
.archive-viewer .av-toolbar form{margin:0}.archive-viewer .av-toolbar :is(p,span){margin:0;font-size:22.5px;line-height:1.3}
.archive-viewer .av-stage{min-width:0;min-height:0;position:relative;display:flex;align-items:center;justify-content:center}
.archive-viewer .av-stage img{width:100%;height:100%;max-height:none;object-fit:contain}
.archive-viewer .av-narrative{display:grid;grid-template-rows:minmax(0,1fr) auto;min-width:0;min-height:0;background:#172f4d;padding:18px;gap:14px;overflow:hidden}
.archive-viewer .av-description{min-height:0;overflow:auto;padding:3px 5px 3px 3px;font-size:17px;overflow-wrap:anywhere}
dialog.archive-viewer:is(#viewer,#full-viewer,#photo-dialog) h2{color:#fff;font-size:34px;line-height:1.1}
.archive-viewer :is(#viewer-date){color:#f5cf8e}.archive-viewer :is(#viewer-credit,#dialog-credit){color:#dce3eb;font-size:14px;margin-top:20px}
.archive-viewer .av-dock{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:8px 12px;border-top:1px solid #718298;padding-top:12px}
dialog.archive-viewer:is(#viewer,#full-viewer,#photo-dialog) button{font:600 16px/1.3 'Source Sans 3',sans-serif;color:#fff;background:transparent;border:1px solid #99a7b8;min-height:44px;padding:9px 8px;min-width:0;cursor:pointer}
dialog.archive-viewer:is(#viewer,#full-viewer,#photo-dialog) button:is([aria-disabled=true],:disabled){opacity:.6;cursor:default}
dialog.archive-viewer:is(#viewer,#full-viewer,#photo-dialog) a{color:#aedfff;text-decoration:underline;line-height:1.3}
.archive-viewer .av-dock>a{grid-column:1/-1;display:flex;align-items:center;min-height:44px;font-size:15px}
.archive-viewer .av-copy,.archive-viewer .av-copy-status,.archive-viewer .av-fallback{grid-column:1/-1}
.archive-viewer .av-copy-status{margin:0;font-size:14px;line-height:1.3;min-height:1.3em}.archive-viewer .av-copy-status:empty{visibility:hidden}
.archive-viewer .av-fallback label{font-size:14px}.archive-viewer textarea{width:100%;box-sizing:border-box;color:#102033;background:white;font-size:16px}
.archive-viewer [hidden]{display:none!important}.archive-viewer :focus-visible{outline:3px solid #f5cf8e;outline-offset:3px;box-shadow:none}
@media(max-width:700px){dialog.archive-viewer[open]:is(#viewer,#full-viewer,#photo-dialog){grid-template-columns:minmax(0,1fr);grid-template-rows:auto minmax(70px,1fr) minmax(250px,1.3fr);padding:12px;gap:12px}.archive-viewer .av-narrative{padding:12px;gap:10px}.archive-viewer .av-toolbar :is(p,span){font-size:18px}.archive-viewer .av-toolbar{align-items:start}.archive-viewer .av-toolbar button{white-space:nowrap}dialog.archive-viewer:is(#viewer,#full-viewer,#photo-dialog) h2{font-size:28px}.archive-viewer .av-dock{gap:4px 10px}}
@media(max-height:600px){dialog.archive-viewer[open]:is(#viewer,#full-viewer,#photo-dialog){overflow:auto;grid-template-rows:auto minmax(340px,1fr)}.archive-viewer .av-narrative{overflow:visible}}
@media(max-height:600px) and (max-width:700px){dialog.archive-viewer[open]:is(#viewer,#full-viewer,#photo-dialog){grid-template-rows:auto 140px minmax(350px,1fr)}}

dialog.archive-viewer #dialog-caption,dialog.archive-viewer #dialog-status{color:#fff}
dialog.archive-viewer#photo-dialog #dialog-original{color:#aedfff;display:flex;min-height:44px}
dialog.archive-viewer#photo-dialog button[aria-disabled=true]{color:#fff;background:transparent}
dialog.archive-viewer .av-description h2{margin:0 0 18px}

.archive-viewer #dialog-date{color:#f5cf8e}.note-credit-extra{font-size:14px}
dialog.archive-viewer:is(#viewer,#full-viewer,#photo-dialog) .av-copy-status{margin:0;font-size:14px;min-height:1.3em;line-height:1.3}
dialog.archive-viewer:is(#viewer,#full-viewer,#photo-dialog) .av-toolbar :is(p,span){margin:0}
dialog.archive-viewer:is(#viewer,#full-viewer,#photo-dialog) :is(#viewer-date,#dialog-date){font:400 17px/1.4 'Source Sans 3',sans-serif;color:#f5cf8e;margin:0 0 12px;letter-spacing:0;text-transform:none}
.archive-viewer .av-narrative:has(.av-fallback:not([hidden])){overflow:auto;grid-template-rows:minmax(100px,1fr) auto}
dialog.archive-viewer:is(#viewer,#full-viewer,#photo-dialog) :is(#original,#viewer-original,#dialog-original,#viewer-section){min-height:44px;display:flex;align-items:center;color:#aedfff;font-size:15px;line-height:1.3;margin:0;padding:0}
.archive-viewer .av-copy-html{grid-column:1/-1}
dialog.archive-viewer:is(#viewer,#full-viewer,#photo-dialog) .av-copy{background:#f5cf8e;border-color:#f5cf8e;color:#102033}
dialog.archive-viewer:is(#viewer,#full-viewer,#photo-dialog) .av-copy-html{font-size:14px;font-weight:400}
/* Keep a readable caption area when the viewport is shorter than the controls. */
@media(max-height:600px){
 dialog.archive-viewer[open]:is(#viewer,#full-viewer,#photo-dialog){grid-template-rows:auto minmax(500px,1fr)}
 .archive-viewer .av-narrative{grid-template-rows:minmax(140px,1fr) auto;min-height:500px}
}
@media(max-height:600px) and (max-width:700px){
 dialog.archive-viewer[open]:is(#viewer,#full-viewer,#photo-dialog){grid-template-rows:auto 140px minmax(500px,1fr)}
}
