.campaign-media-hidden[hidden] { display: none !important; }
.campaign-media-strip { display: flex; flex-wrap: wrap; align-items: center; gap: 10px; padding: 14px; border: 1px solid #dfd5cb; border-radius: 6px; background: #faf7f2; min-width: 0; }
.campaign-media-strip-head { display: grid; gap: 2px; margin-right: auto; min-width: 140px; }
.campaign-media-help, .campaign-media-count { font-size: 14px; line-height: 1.45; color: #625c59; }
.campaign-media-thumbnails { display: flex; flex-wrap: wrap; gap: 5px; }
.campaign-media-thumbnails img { width: 48px; height: 48px; object-fit: contain; background: #ede5dc; border-radius: 4px; }
.campaign-media-default-select { display: grid; gap: 5px; width: 100%; margin-top: 5px; font-size: 14px; }
.campaign-media-default-select select { width: 100%; min-height: 44px; }
.campaign-media-dialog { width: min(900px, calc(100vw - 32px)); max-width: 900px; max-height: min(86dvh, 800px); padding: 0; border: 1px solid #d4c8bd; border-radius: 8px; color: #18233a; background: #fffdfa; box-shadow: 0 20px 70px #1c0d18aa; }
.campaign-media-dialog::backdrop { background: #24101db3; }
.campaign-media-dialog[open] { display: flex; flex-direction: column; }
.campaign-media-heading { display: flex; justify-content: space-between; align-items: start; gap: 10px; padding: 20px 22px 0; }
.campaign-media-heading h2 { font: 30px/1.1 Newsreader, serif; margin: 0; }
.campaign-media-close { background: transparent; border: 1px solid #d5cac0; border-radius: 5px; padding: 8px 12px; min-height: 44px; }
.campaign-media-dialog > .campaign-media-help { margin: 10px 22px; }
.campaign-media-filters { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; padding: 0 22px; }
.campaign-media-filters label { display: grid; gap: 5px; font-size: 14px; }
.campaign-media-filters select, .campaign-media-filters input { min-height: 44px; width: 100%; }
.campaign-media-dialog > .campaign-media-count { margin: 10px 22px; min-height: 21px; }
.campaign-media-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(135px, 1fr)); gap: 10px; overflow-y: auto; padding: 0 22px 20px; min-height: 140px; }
.campaign-media-option { display: grid; grid-template-columns: 22px minmax(0, 1fr); gap: 7px; align-content: start; padding: 8px; border: 1px solid #ded4ca; border-radius: 5px; cursor: pointer; overflow-wrap: anywhere; font-size: 14px; }
.campaign-media-option:has(input:checked) { border-color: #4f263d; background: #f4ecf1; }
.campaign-media-option input { width: 20px; height: 20px; min-height: 0; margin: 2px 0; accent-color: #4f263d; }
.campaign-media-option img { grid-column: 1 / -1; width: 100%; height: 110px; object-fit: contain; background: #eee7de; border-radius: 3px; }
.campaign-media-option span { grid-column: 1 / -1; }
.campaign-media-default { align-content: center; min-height: 110px; }
.campaign-media-actions { display: flex; justify-content: end; gap: 10px; padding: 14px 22px; border-top: 1px solid #e5dcd3; background: #fffdfa; }
.campaign-media-actions button, .campaign-media-strip button { min-height: 44px; }
.campaign-media-dialog :focus-visible { outline: 3px solid #b09872; outline-offset: 2px; }
@media (max-width: 480px) { .campaign-media-dialog { width: calc(100vw - 20px); max-height: 90dvh; } .campaign-media-filters { grid-template-columns: 1fr; } .campaign-media-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); padding-inline: 14px; } .campaign-media-heading, .campaign-media-actions { padding-inline: 14px; } .campaign-media-actions button { flex: 1; } }
.campaign-media-upload { padding: 10px 22px 0; }
.campaign-media-upload label { display: grid; gap: 5px; font-size: 14px; font-weight: 600; }
.campaign-media-upload input { width: 100%; min-height: 44px; }
.campaign-media-upload-status { margin: 6px 0 0; font-size: 14px; line-height: 1.4; overflow-wrap: anywhere; }
@media (max-width: 480px) { .campaign-media-upload { padding-inline: 14px; } }
/* Keep primary actions visible even in short mobile windows. */
.campaign-media-dialog[open] { overflow:hidden; }
.campaign-media-grid { flex:1 1 auto;min-height:0; }
.campaign-media-heading,.campaign-media-dialog > .campaign-media-help,.campaign-media-filters,.campaign-media-upload,.campaign-media-count,.campaign-media-actions { flex-shrink:0; }
.campaign-media-heading h2 { min-width:0;overflow-wrap:anywhere; }
.campaign-media-upload > summary { min-height:32px;cursor:pointer;font-weight:600;font-size:14px; }
.campaign-media-upload[open] { max-height:150px;overflow:auto; }
@media (max-height:600px) { .campaign-media-heading { padding-top:12px; } .campaign-media-heading h2 { font-size:25px; } .campaign-media-dialog > .campaign-media-help { margin-block:6px; } .campaign-media-count { margin-block:6px !important; } .campaign-media-actions { padding-block:9px; } }
.campaign-media-option .photo-preview-trigger { grid-column:1 / -1; }
.campaign-media-option small { grid-column:1 / -1; }
