/* Review media uses the same private image gateway in every theme. */
.portal-review-screenshots { display: grid; grid-template-columns: repeat(auto-fill, minmax(min(100%, 150px), 1fr)); gap: 12px; margin: 16px 0; max-width: 100%; }
.portal-review-screenshot { display: flex; align-items: center; justify-content: center; min-width: 0; min-height: 44px; overflow: hidden; border: 1px solid #809ab4; border-radius: 8px; background: #142333; padding: 6px; box-sizing: border-box; }
.portal-review-screenshot img { display: block; width: 100%; max-width: 100%; height: 125px; object-fit: contain; border-radius: 4px; }
.portal-review-screenshot:hover { border-color: #e4f0ff; background: #20364b; }
.portal-review-screenshot:focus-visible, .portal-review-upload__button:focus-visible { outline: 3px solid #ffe08a; outline-offset: 3px; }
.portal-review-upload { margin: 12px 0; padding: 20px; border: 1px solid #809ab4; border-radius: 10px; background: #152638; color: #f0f5fc; min-width: 0; box-sizing: border-box; }
.portal-review-upload legend { padding: 0 8px; color: #f0f5fc; font-weight: 700; }
.portal-review-upload p, .portal-review-upload__status, .portal-review-upload__note, .portal-review-upload__filename { color: #d4e0ee; font-size: 14px; line-height: 1.55; overflow-wrap: anywhere; margin: 8px 0 0; }
.portal-review-upload__picker { display: flex; flex-direction: column; gap: 8px; color: #f0f5fc; }
.portal-review-upload input[type=file] { width: 100%; max-width: 100%; min-width: 0; color: #f0f5fc; background: #152638; border-color: #809ab4; padding: 8px; min-height: 44px; box-sizing: border-box; font-size: 16px; }
.portal-review-upload input[type=file]::file-selector-button { padding: 12px; margin-right: 12px; background: #d4e8ff; color: #142333; border: 1px solid #d4e8ff; border-radius: 6px; cursor: pointer; font: inherit; }
.portal-review-upload input[type=file]:disabled { opacity: 1; color: #d4e0ee; }
.portal-review-upload__items { display: grid; grid-template-columns: repeat(auto-fill, minmax(min(100%, 175px), 1fr)); gap: 16px; margin-top: 12px; }
.portal-review-upload__item { display: flex; flex-direction: column; align-items: stretch; gap: 8px; min-width: 0; padding: 12px; border: 1px solid #6986a2; border-radius: 8px; background: #102031; }
.portal-review-upload__item .portal-review-screenshots { display: block; margin: 0; }
.portal-review-upload__item .portal-review-screenshot { width: 100%; }
.portal-review-upload__item .portal-review-screenshot img { height: 125px; }
.portal-review-upload__item.is-removed { border-style: dashed; }
.portal-review-upload__item progress { width: 100%; height: 12px; accent-color: #94caff; }
.portal-review-upload__button, .portal-review-upload__remove { display: flex; align-items: center; justify-content: center; gap: 8px; min-height: 44px; padding: 10px 12px; box-sizing: border-box; border: 1px solid #809ab4; border-radius: 6px; background: #243d55; color: #f0f5fc; font: inherit; font-size: 14px; line-height: 1.4; cursor: pointer; overflow-wrap: anywhere; }
.portal-review-upload__button:hover, .portal-review-upload__remove:hover { color: #fff; background: #314f6c; }
.portal-review-upload__button:disabled { color: #d4e0ee; background: #243d55; opacity: 1; cursor: wait; }
.portal-review-upload__remove input[type=checkbox] { width: 20px; height: 20px; flex-shrink: 0; }
.portal-review-upload__item > .portal-review-upload__remove, .portal-review-upload__item > .portal-review-upload__button:last-child { margin-top: auto; }
.portal-review-upload__status:empty, .portal-review-upload__note:empty { display: none; }
.portal-review-upload.is-dragging { outline: 3px solid #ffe08a; outline-offset: 2px; }
.portal-review-upload [hidden] { display: none !important; }
body .portal-review-form button[type=submit]:disabled { opacity: 1; background: #34485d; border-color: #809ab4; color: #d4e0ee; cursor: wait; }
@media (max-width: 480px) {
    .portal-review-upload { padding: 12px; }
    .portal-review-upload__items { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; }
    .portal-review-upload__item { padding: 8px; }
    .portal-review-upload__item .portal-review-screenshot img { height: 96px; }
    .portal-review-screenshots { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
