/* Completed media: visible images, compact hover footer and one trailing upload tile.
   DS-2.0 only. Existing upload, preview, section and ordering handlers are retained. */
html body #app :is(.page-completed,.page-products,.image-page-v3):not(#\#):not(#\#):not(#\#):not(#\#) .completion-gallery{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:var(--s-3);align-items:start;min-width:0}
html body #app :is(.page-completed,.page-products,.image-page-v3):not(#\#):not(#\#):not(#\#):not(#\#) .completion-gallery::after{content:none}
html body #app :is(.page-completed,.page-products,.image-page-v3):not(#\#):not(#\#):not(#\#):not(#\#) .completion-gallery>figure,
html body #app :is(.page-completed,.page-products,.image-page-v3):not(#\#):not(#\#):not(#\#):not(#\#) .completion-gallery>.completion-upload-tile{position:relative;display:block;margin:0;padding:0;width:100%;max-width:none;min-width:0;height:auto;aspect-ratio:1;overflow:hidden;border:1px solid var(--border);border-radius:var(--r-lg);background:var(--surface);align-self:start}
html body #app :is(.page-completed,.page-products,.image-page-v3):not(#\#):not(#\#):not(#\#):not(#\#) .completion-gallery .cat-media-open{display:block;width:100%;height:100%;opacity:1;pointer-events:auto;margin:0;padding:0;border:0;border-radius:0;background:var(--surface-2)}
html body #app :is(.page-completed,.page-products,.image-page-v3):not(#\#):not(#\#):not(#\#):not(#\#) .completion-gallery :is(.cat-media-open>img,figure>video){display:block;width:100%;height:100%;max-width:none;object-fit:contain;background:var(--surface-2)}
html body #app :is(.page-completed,.page-products,.image-page-v3):not(#\#):not(#\#):not(#\#):not(#\#) .completion-gallery figcaption{position:absolute;inset:auto 0 0;z-index:2;display:grid;gap:var(--s-1);max-height:70%;padding:var(--s-2);margin:0;overflow:auto;background:transparent;color:var(--accent-text);border:0;box-shadow:none;backdrop-filter:none;text-shadow:0 1px 2px var(--on-accent),0 0 2px var(--on-accent);opacity:0;transform:translateY(6px);pointer-events:none;transition:opacity var(--dur-hover) var(--ease-out),transform var(--dur-2) var(--ease-out);font-size:var(--fs-xs);line-height:1.4}
html body #app :is(.page-completed,.page-products,.image-page-v3):not(#\#):not(#\#):not(#\#):not(#\#) .completion-gallery figure:is(:hover,:has(:focus-visible):not(:root[data-ui-input="pointer"] *)) figcaption{opacity:1;transform:none}
html body #app :is(.page-completed,.page-products,.image-page-v3):not(#\#):not(#\#):not(#\#):not(#\#) .completion-media-name{color:var(--accent-text);display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-size:var(--fs-xs);line-height:1.4}
html body #app :is(.page-completed,.page-products,.image-page-v3):not(#\#):not(#\#):not(#\#):not(#\#) .completion-media-actions{display:flex;flex-wrap:nowrap;align-items:center;justify-content:space-between;gap:2px;white-space:nowrap;pointer-events:none}
html body #app :is(.page-completed,.page-products,.image-page-v3):not(#\#):not(#\#):not(#\#):not(#\#) .completion-media-actions :is(a,button){display:inline-flex;align-items:center;justify-content:center;min-height:28px;height:auto;padding:2px;margin:0;flex:0 0 auto;white-space:nowrap;font-size:var(--fs-xs);line-height:1.4;border:0;border-radius:0;color:var(--accent-text);background:transparent;box-shadow:none;text-shadow:0 1px 2px var(--on-accent),0 0 2px var(--on-accent);font-weight:600;cursor:pointer;opacity:1}
html body #app :is(.page-completed,.page-products,.image-page-v3):not(#\#):not(#\#):not(#\#):not(#\#) .completion-gallery>.completion-upload-tile{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--s-2);padding:var(--s-3);border:1px dashed var(--border-strong);text-align:center;cursor:pointer;color:var(--accent-text);background:var(--surface-2);transition:background-color var(--dur-hover),border-color var(--dur-hover)}
html body #app :is(.page-completed,.page-products,.image-page-v3):not(#\#):not(#\#):not(#\#):not(#\#) .completion-upload-tile::before{content:none}
html body #app :is(.page-completed,.page-products,.image-page-v3):not(#\#):not(#\#):not(#\#):not(#\#) .completion-upload-tile .completion-upload-plus{font-size:var(--fs-2xl);line-height:1;font-weight:400}
html body #app :is(.page-completed,.page-products,.image-page-v3):not(#\#):not(#\#):not(#\#):not(#\#) .completion-upload-tile strong{font-size:var(--fs-sm);font-weight:600}
html body #app :is(.page-completed,.page-products,.image-page-v3):not(#\#):not(#\#):not(#\#):not(#\#) .completion-upload-tile:is(:hover,:focus-visible,.dragover){border-color:var(--accent);background:var(--surface-selected)}
html body #app :is(.page-completed,.page-products,.image-page-v3):not(#\#):not(#\#):not(#\#):not(#\#) .completion-upload-tile[data-busy]{cursor:progress}
/* Keep native video playback controls unobstructed. */
html body #app :is(.page-completed,.page-products,.image-page-v3):not(#\#):not(#\#):not(#\#):not(#\#) [data-cat-section=videos] figcaption{bottom:44px}
@media(max-width:760px){html body #app :is(.page-completed,.page-products,.image-page-v3):not(#\#):not(#\#):not(#\#):not(#\#) .completion-gallery{grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--s-2)}html body #app :is(.page-completed,.page-products,.image-page-v3):not(#\#):not(#\#):not(#\#):not(#\#) .completion-upload-tile{padding:var(--s-2)}html body #app :is(.page-completed,.page-products,.image-page-v3):not(#\#):not(#\#):not(#\#):not(#\#) .completion-upload-tile .small{font-size:var(--fs-xs);line-height:1.4}}
@media(hover:none){html body #app :is(.page-completed,.page-products,.image-page-v3):not(#\#):not(#\#):not(#\#):not(#\#) .completion-gallery figure{aspect-ratio:auto}html body #app :is(.page-completed,.page-products,.image-page-v3):not(#\#):not(#\#):not(#\#):not(#\#) .completion-gallery .cat-media-open,html body #app :is(.page-completed,.page-products,.image-page-v3):not(#\#):not(#\#):not(#\#):not(#\#) .completion-gallery figure>video{height:auto;aspect-ratio:1}html body #app :is(.page-completed,.page-products,.image-page-v3):not(#\#):not(#\#):not(#\#):not(#\#) .completion-gallery figcaption{position:static;opacity:1;transform:none;max-height:none}html body #app :is(.page-completed,.page-products,.image-page-v3):not(#\#):not(#\#):not(#\#):not(#\#) .completion-media-actions :is(a,button){min-height:44px}}
@media(prefers-reduced-motion:reduce){html body #app :is(.page-completed,.page-products,.image-page-v3) .completion-gallery :is(figcaption,.completion-upload-tile){transition:none;transform:none}}
html[data-motion=reduce] body #app :is(.page-completed,.page-products,.image-page-v3) .completion-gallery :is(figcaption,.completion-upload-tile){transition:none;transform:none}

html body #app :is(.page-completed,.page-products,.image-page-v3):not(#\#):not(#\#):not(#\#):not(#\#) .completion-gallery figure:is(:hover,:has(:focus-visible):not(:root[data-ui-input="pointer"] *)) .completion-media-actions{pointer-events:auto}
@media(hover:none){html body #app :is(.page-completed,.page-products,.image-page-v3):not(#\#):not(#\#):not(#\#):not(#\#) .completion-media-actions{pointer-events:auto}}

/* Transparent, single-row image actions; focus remains visible without a button fill. */
html body #app :is(.page-completed,.page-products,.image-page-v3):not(#\#):not(#\#):not(#\#):not(#\#) .completion-media-actions :is(a,button):hover{background:transparent;color:var(--accent-text);text-decoration:underline;text-underline-offset:3px}
html body #app :is(.page-completed,.page-products,.image-page-v3):not(#\#):not(#\#):not(#\#):not(#\#) .completion-media-actions :is(a,button):focus-visible{background:transparent;outline:2px solid var(--accent);outline-offset:1px;text-decoration:underline}
@media(max-width:480px){html body #app :is(.page-completed,.page-products,.image-page-v3):not(#\#):not(#\#):not(#\#):not(#\#) .completion-gallery{grid-template-columns:minmax(0,1fr)}}

/* User revision: one white toolbar, larger text, no purpose/name labels. */
html body #app :is(.page-completed,.page-products,.image-page-v3):not(#\#):not(#\#):not(#\#):not(#\#) .completion-media-name{display:none}
html body #app :is(.page-completed,.page-products,.image-page-v3):not(#\#):not(#\#):not(#\#):not(#\#) .completion-gallery figcaption{inset:auto 4px 4px;padding:0;max-height:none;background:transparent;border:0;text-shadow:none;overflow:visible}
html body #app :is(.page-completed,.page-products,.image-page-v3):not(#\#):not(#\#):not(#\#):not(#\#) .completion-media-actions{gap:2px;padding:4px;background:var(--on-accent);border:1px solid var(--border);border-radius:var(--r-md);box-shadow:var(--shadow-1);text-shadow:none}
html body #app :is(.page-completed,.page-products,.image-page-v3):not(#\#):not(#\#):not(#\#):not(#\#) .completion-media-actions :is(a,button){font-size:var(--fs-sm);min-height:32px;padding:2px;color:var(--replenish-summary-bg);background:transparent;text-shadow:none;font-weight:600}
html body #app :is(.page-completed,.page-products,.image-page-v3):not(#\#):not(#\#):not(#\#):not(#\#) .completion-media-actions :is(a,button):hover{color:var(--replenish-summary-bg);background:transparent}
/* A+ and mobile A+: two generous columns and original image aspect ratios. */
html body #app :is(.page-completed,.page-products,.image-page-v3):not(#\#):not(#\#):not(#\#):not(#\#) :is([data-cat-section=aplus],[data-cat-section=mobile]) .completion-gallery{grid-template-columns:repeat(2,minmax(0,1fr));align-items:start}
html body #app :is(.page-completed,.page-products,.image-page-v3):not(#\#):not(#\#):not(#\#):not(#\#) :is([data-cat-section=aplus],[data-cat-section=mobile]) .completion-gallery>figure{aspect-ratio:auto;height:auto;min-height:0}
html body #app :is(.page-completed,.page-products,.image-page-v3):not(#\#):not(#\#):not(#\#):not(#\#) :is([data-cat-section=aplus],[data-cat-section=mobile]) .cat-media-open{height:auto;aspect-ratio:auto;min-height:0}
html body #app :is(.page-completed,.page-products,.image-page-v3):not(#\#):not(#\#):not(#\#):not(#\#) :is([data-cat-section=aplus],[data-cat-section=mobile]) .cat-media-open>img{width:100%;height:auto;max-height:none;aspect-ratio:auto;object-fit:contain}
html body #app :is(.page-completed,.page-products,.image-page-v3):not(#\#):not(#\#):not(#\#):not(#\#) :is([data-cat-section=aplus],[data-cat-section=mobile]) .completion-upload-tile{aspect-ratio:1.8;min-height:128px}
.completion-gallery{--completion-reorder-duration:360ms}
html body #app :is(.page-completed,.page-products,.image-page-v3):not(#\#):not(#\#):not(#\#):not(#\#) .completion-gallery:has(.dragging)>figure{transform:none}
@media(max-width:760px){html body #app :is(.page-completed,.page-products,.image-page-v3):not(#\#):not(#\#):not(#\#):not(#\#) .completion-gallery{grid-template-columns:minmax(0,1fr)}html body #app :is(.page-completed,.page-products,.image-page-v3):not(#\#):not(#\#):not(#\#):not(#\#) :is([data-cat-section=aplus],[data-cat-section=mobile]) .completion-gallery{grid-template-columns:minmax(0,1fr)}}
@media(hover:none){html body #app :is(.page-completed,.page-products,.image-page-v3):not(#\#):not(#\#):not(#\#):not(#\#) .completion-gallery figcaption{position:static;margin:4px}html body #app :is(.page-completed,.page-products,.image-page-v3):not(#\#):not(#\#):not(#\#):not(#\#) .completion-media-actions :is(a,button){min-height:44px}}

/* Completed keyword links share the same blue text token as competitor ASIN links. */
html body #app .page-completed:not(#\#):not(#\#):not(#\#):not(#\#) .cat-keyword-link{color:var(--accent-text);}

/* Keep completed thumbnails under a stationary pointer; only the action toolbar animates. */
html body #app .page-completed:not(#\#):not(#\#):not(#\#):not(#\#) .completion-gallery>figure{transform:none;}
