/* Review media: contained images, existing MARPS controls, one modal surface. */
.rv-photos button.rv-photo { padding: 0; cursor: pointer; font-family: var(--ds-font); }
.rv-photos button.rv-photo:focus-visible { outline: 2px solid var(--ds-ink-secondary); outline-offset: -3px; }
dialog.rv-gallery {
  position: fixed; inset: 0; margin: auto; padding: 0;
  width: min(1120px, calc(100vw - 48px)); height: min(840px, calc(100dvh - 48px));
  max-width: none; max-height: none; box-sizing: border-box;
  border: 1px solid var(--ds-line); border-radius: 24px;
  background: var(--ds-surface); color: var(--ds-ink);
  box-shadow: var(--ds-shadow-popover); font: 14px/1.4 var(--ds-font); overflow: hidden;
}
dialog.rv-gallery[open] { display: flex; flex-direction: column; }
.rv-gallery::backdrop { background: rgba(24, 24, 27, .62); backdrop-filter: blur(10px); }
.rv-gallery-head { display: flex; align-items: center; gap: 16px; padding: 16px 20px; border-bottom: 1px solid var(--ds-line); }
.rv-gallery-head strong { font-size: 17px; font-weight: 700; }
.rv-gallery-count { margin-left: auto; color: var(--ds-ink-secondary); font-variant-numeric: tabular-nums; }
.rv-gallery button {
  display: flex; align-items: center; justify-content: center; flex-shrink: 0;
  width: 44px; height: 44px; padding: 0; border: 1px solid var(--ds-line-strong);
  border-radius: 13px; background: var(--ds-surface); color: var(--ds-ink);
  font: 600 14px/1.4 var(--ds-font); cursor: pointer;
  transition: background 160ms ease, border-color 160ms ease;
}
.rv-gallery button:hover { background: var(--ds-surface-subtle); }
.rv-gallery button:focus-visible { outline: 2px solid var(--ds-ink-secondary); outline-offset: -3px; box-shadow: none; }
.rv-gallery button svg { width: 20px; height: 20px; }
.rv-gallery-stage { position: relative; flex: 1; min-height: 0; display: grid; place-items: center; background: var(--ds-canvas); overflow: hidden; }
.rv-gallery-stage > img { width: 100%; height: 100%; min-height: 0; object-fit: contain; position: absolute; inset: 0; }
.rv-gallery-message { display: grid; gap: 16px; justify-items: center; color: var(--ds-ink-secondary); padding: 60px; text-align: center; }
.rv-gallery .rv-gallery-retry { width: auto; padding: 0 20px; color: var(--ds-accent); }
.rv-gallery-prev, .rv-gallery-next { position: absolute; top: calc(50% - 22px); box-shadow: var(--ds-shadow-card); }
.rv-gallery-prev { left: 16px; }
.rv-gallery-next { right: 16px; }
.rv-gallery-thumbs { display: flex; align-items: center; gap: 8px; padding: 16px 20px; overflow-x: auto; flex: 0 0 auto; border-top: 1px solid var(--ds-line); overscroll-behavior: contain; }
.rv-gallery-thumbs button { width: 64px; height: 64px; overflow: hidden; padding: 3px; }
.rv-gallery-thumbs button[aria-pressed="true"] { border: 2px solid var(--ds-accent); background: var(--ds-accent-soft); }
.rv-gallery-thumbs img { display: block; width: 100%; height: 100%; object-fit: cover; border-radius: 8px; }
.rv-gallery [hidden] { display: none !important; }
@media (max-width: 600px) {
  dialog.rv-gallery { width: calc(100vw - 16px); height: calc(100dvh - 24px); border-radius: 20px; }
  .rv-gallery-head { padding: 12px; gap: 8px; }
  .rv-gallery-head strong { font-size: 15px; }
  .rv-gallery-thumbs { padding: 12px; }
  .rv-gallery-prev { left: 8px; }
  .rv-gallery-next { right: 8px; }
}
@media (prefers-reduced-motion: reduce) { .rv-gallery button { transition: none; } }
