.promotion-dialog {
    width: min(960px, calc(100vw - 32px));
    max-width: calc(100vw - 32px);
    max-height: calc(100dvh - 32px - env(safe-area-inset-top) - env(safe-area-inset-bottom));
    padding: 48px 0 0;
    border: 0;
    border-radius: 0;
    background: transparent;
    overflow: auto;
    color: #161616;
}
.promotion-dialog::backdrop { background: rgba(0, 0, 0, .72); }
.promotion-dialog--mobile { width: min(375px, calc(100vw - 32px)); }
.promotion-dialog__close {
    position: absolute;
    top: 0;
    right: 0;
    width: 44px;
    height: 44px;
    padding: 0;
    border: 1px solid #666;
    border-radius: 4px;
    background: #fff;
    color: #111;
    font-size: 28px;
    line-height: 1;
    cursor: pointer;
}
.promotion-dialog__artwork { display: block; text-align: center; }
.promotion-dialog__artwork img {
    display: block;
    margin: 0 auto;
    max-width: 100%;
    width: auto;
    height: auto;
    max-height: calc(100dvh - 96px - env(safe-area-inset-top) - env(safe-area-inset-bottom));
    object-fit: contain;
    background: #fff;
}
.promotion-dialog :focus-visible { outline: 3px solid #ffd65c; outline-offset: -3px; }
html[data-promotion-busy="1"] #event-promo-popup,
html[data-promotion-busy="1"] #unread-message-popup,
html[data-promotion-busy="1"] #cookie-banner { visibility: hidden !important; pointer-events: none !important; }
.promotion-editor { margin: 20px 0; padding: 16px 0; border-block: 1px solid #ccc; }
.promotion-editor__cooldown-setting,
.promotion-editor__upload-setting { display: grid; gap: 6px; max-width: 560px; margin-top: 14px; color: #30343a; font-weight: 600; }
.promotion-editor__cooldown-control { display: flex; width: min(100%, 220px); min-height: 40px; }
.promotion-editor__cooldown-control input { width: 100%; min-width: 0; padding: 8px 10px; border: 1px solid #b9c0c8; border-right: 0; border-radius: 4px 0 0 4px; background: #fff; color: #222; font: inherit; font-weight: 400; }
.promotion-editor__cooldown-control span { display: flex; align-items: center; padding: 0 11px; border: 1px solid #b9c0c8; border-radius: 0 4px 4px 0; background: #f1f3f5; color: #515963; font-size: .9rem; font-weight: 400; }
.promotion-editor__cooldown-control input:focus-visible,
.promotion-editor__picker:focus-visible { position: relative; z-index: 1; outline: 3px solid rgba(0, 123, 255, .28); outline-offset: 1px; border-color: #007bff; }
.promotion-editor__upload-help { color: #69727d; font-size: .9rem; font-weight: 400; line-height: 1.45; }
.promotion-editor__picker { display: block; box-sizing: border-box; width: 100%; padding: 9px; border: 1px dashed #aeb7c2; border-radius: 4px; background: #f7f8fa; color: #38414b; font: inherit; font-size: .9rem; font-weight: 400; }
.promotion-editor__picker::file-selector-button { margin-right: 10px; padding: 8px 12px; border: 1px solid #b9c0c8; border-radius: 3px; background: #fff; color: #252a30; font: inherit; cursor: pointer; }
.promotion-editor__picker::file-selector-button:hover { background: #edf1f5; }
.promotion-editor__queue { display: grid; gap: 12px; margin-block: 12px; }
.promotion-editor__image { display: grid; grid-template-columns: 96px minmax(0, 1fr); gap: 12px; border-bottom: 1px solid #ddd; padding-bottom: 12px; }
.promotion-editor__image img { width: 96px; height: 96px; object-fit: contain; background: #eee; }
.promotion-editor__fields { display: grid; gap: 8px; min-width: 0; }
.promotion-editor__fields input[type="text"] { width: 100%; box-sizing: border-box; }
.promotion-editor__fields progress { width: 100%; }
.promotion-editor__actions { display: flex; flex-wrap: wrap; gap: 8px; align-items: center; }
.promotion-editor__status { overflow-wrap: anywhere; font-size: .9rem; }
.promotion-editor__error { color: #a21d22; }
.promotion-editor button { min-height: 40px; cursor: pointer; }
@media (max-width: 480px) {
    .promotion-editor__image { grid-template-columns: 64px minmax(0, 1fr); }
    .promotion-editor__image img { width: 64px; height: 64px; }
}