/* Full-viewport media viewer. Colour exceptions are scoped to this dark image surface. */
.rio-lightbox { inset:0; width:100vw; max-width:100vw; height:100dvh; max-height:100dvh; margin:0; padding:0; overflow:hidden; border:0; background:rgba(12,22,33,.97); color:#fff; --rio-focus:var(--rio-accent); }
.rio-lightbox[open] { display:grid; grid-template-rows:auto minmax(0,1fr) auto auto; }
.rio-lightbox::backdrop { background:#0c1621; }
.rio-viewer-toolbar { display:flex; justify-content:space-between; align-items:center; gap:12px; min-height:66px; padding:10px 20px; padding-top:max(10px,env(safe-area-inset-top)); border-bottom:1px solid rgba(255,255,255,.12); color:#fff; background:rgba(0,0,0,.1); }
.rio-viewer-counter { font:500 13px/1.5 var(--rio-font); white-space:nowrap; letter-spacing:.06em; }
.rio-viewer-tools { display:flex; gap:5px; align-items:center; }
.rio-viewer-button { display:inline-flex; align-items:center; justify-content:center; flex:0 0 auto; width:42px; height:42px; min-width:42px; padding:10px; border:1px solid transparent; border-radius:3px; color:#fff; background:transparent; cursor:pointer; transition:background-color 160ms ease,border-color 160ms ease; }
.rio-viewer-button .rio-icon { width:20px; height:20px; min-width:20px; fill:currentColor; }
.rio-viewer-button:hover:not(:disabled),.rio-viewer-button[aria-pressed=true] { background:rgba(255,255,255,.13); border-color:rgba(255,255,255,.15); }
.rio-viewer-button:disabled { opacity:.35; cursor:default; }
.rio-viewer-scale { min-width:66px; width:66px; font:500 11px/1 var(--rio-font); }
.rio-viewer-stage { position:relative; min-width:0; min-height:0; overflow:hidden; touch-action:none; outline-offset:-4px; user-select:none; }
.rio-viewer-slides,.rio-viewer-slide { position:absolute; inset:0; overflow:hidden; }
.rio-viewer-slide { display:grid; place-items:center; }
.rio-viewer-slide.is-leaving { pointer-events:none; }
.rio-viewer-pan { position:absolute; left:50%; top:50%; transform-origin:center; will-change:transform; cursor:zoom-in; }
.rio-viewer-pan.is-zoomed { cursor:grab; }
.rio-viewer-stage.is-panning .rio-viewer-pan { cursor:grabbing; }
.rio-viewer-image { display:block; width:100%; height:100%; max-width:none; object-fit:contain; pointer-events:none; user-select:none; }
.rio-viewer-prev,.rio-viewer-next { position:absolute; top:calc(50% - 24px); z-index:2; background:rgba(12,22,33,.65); border:1px solid rgba(255,255,255,.25); width:48px; min-width:48px; height:48px; }
.rio-viewer-prev { left:16px; }.rio-viewer-next { right:16px; }
.rio-viewer-caption { color:#fff; text-align:center; padding:12px 24px; margin:0; font:400 12px/1.6 var(--rio-font); max-height:100px; overflow:auto; }
.rio-viewer-caption:empty { padding:0; }
.rio-viewer-thumbs { display:flex; justify-content:safe center; align-items:center; gap:8px; padding:10px 20px max(14px,env(safe-area-inset-bottom)); overflow-x:auto; background:rgba(0,0,0,.18); border-top:1px solid rgba(255,255,255,.12); scrollbar-width:thin; scrollbar-color:var(--rio-accent) transparent; }
.rio-viewer-thumb { position:relative; flex:0 0 78px; width:78px; height:57px; margin:0; padding:3px; border:2px solid transparent; background:transparent; color:#fff; cursor:pointer; opacity:.6; transition:opacity 160ms ease,border-color 160ms ease; }
.rio-viewer-thumb[aria-current=true] { border-color:var(--rio-accent); opacity:1; }
.rio-viewer-thumb:hover { opacity:1; }.rio-viewer-thumb img { width:100%; height:100%; object-fit:cover; }
.rio-viewer-thumb-video { position:absolute; inset:0; display:grid; place-items:center; color:#fff; font-size:18px; }
.rio-viewer-spinner { width:32px; height:32px; border:2px solid rgba(255,255,255,.2); border-top-color:var(--rio-accent); border-radius:50%; animation:rio-viewer-spin .75s linear infinite; }
@keyframes rio-viewer-spin { to{ transform:rotate(360deg); } }
.rio-viewer-error,.rio-viewer-consent { max-width:570px; padding:24px 65px; text-align:center; color:#fff; font:400 14px/1.8 var(--rio-font); }
.rio-viewer-error button,.rio-viewer-consent button { margin-top:16px; }
.rio-viewer-consent h3 { color:#fff; font-size:32px; }
.rio-viewer-slide iframe,.rio-viewer-slide video { width:calc(100% - 128px); max-width:1500px; height:calc(100% - 24px); border:0; object-fit:contain; }
@media(max-width:539px) {
 .rio-viewer-toolbar { min-height:58px; padding-inline:12px; gap:5px; }.rio-viewer-tools { gap:2px; }.rio-viewer-button { width:34px; min-width:34px; height:38px; padding:8px; }.rio-viewer-button .rio-icon { width:18px; height:18px; min-width:18px; }
 .rio-viewer-scale { width:48px; min-width:48px; font-size:10px; }.rio-viewer-counter { font-size:11px; letter-spacing:0; }
 .rio-viewer-prev,.rio-viewer-next { top:calc(50% - 22px); height:44px; width:38px; }.rio-viewer-prev { left:7px; }.rio-viewer-next { right:7px; }
 .rio-viewer-caption { padding:10px 18px; font-size:11px; }.rio-viewer-thumbs { padding-inline:12px; }.rio-viewer-thumb { width:64px; flex-basis:64px; height:48px; }
 .rio-viewer-error,.rio-viewer-consent { padding:18px 45px; font-size:12px; }.rio-viewer-consent h3 { font-size:25px; }.rio-viewer-slide iframe,.rio-viewer-slide video { width:100%; height:100%; }
}
@media(prefers-reduced-motion:reduce) { .rio-viewer-spinner { animation:none; }.rio-lightbox * { transition:none; } }
@media print { .rio-lightbox { display:none!important; } }
