body:has(.ad-editor) > table,
body:has(.ad-editor) > div > table { max-width: 100%; }
body:has(.ad-editor) a > img[width="900"] { max-width: 100%; height: auto; }
.ad-editor {
    box-sizing: border-box;
    width: min(100% - 24px, 760px);
    margin: 24px auto;
    padding: clamp(16px, 4vw, 32px);
    color: #202124;
    background: #fff;
    border: 1px solid #e1e4e9;
    border-radius: 16px;
    text-align: left;
    font: 16px/1.45 system-ui, sans-serif;
}
.ad-editor h1 { margin: 0; font-size: clamp(22px, 4vw, 32px); }
.ad-fields { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px; }
.ad-field { min-width: 0; }
.ad-wide { grid-column: 1 / -1; }
.ad-field > label { display: block; margin-bottom: 5px; font-weight: 650; }
.ad-field:focus-within > label { color: #144b99; }
.ad-field > input, .ad-field > textarea {
    box-sizing: border-box;
    width: 100%;
    min-height: 44px;
    padding: 10px 12px;
    color: inherit;
    background: #fff;
    border: 1px solid #8b94a3;
    border-radius: 8px;
    font: inherit;
}
.ad-field > textarea { resize: vertical; }
.ad-field > :is(input, textarea):focus {
    outline: 2px solid #2e70cf;
    outline-offset: 2px;
    background: #f4f8ff;
}
.ad-emoji, .ad-colors { margin-top: 8px; }
.ad-emoji summary { cursor: pointer; color: #144b99; }
.ad-emoji button, .ad-colors button {
    margin: 4px 4px 0 0;
    padding: 7px 10px;
    border: 1px solid #b5bfce;
    border-radius: 8px;
    background: #f7f9fc;
    color: #202124;
    font: inherit;
    cursor: pointer;
}
.ad-editor .ad-primary {
    display: inline-block;
    box-sizing: border-box;
    margin-top: 20px;
    padding: 12px 20px;
    border: 0;
    border-radius: 8px;
    background: #111;
    color: #fff;
    text-align: center;
    text-decoration: none;
    font: inherit;
    font-weight: 650;
    cursor: pointer;
}
.ad-editor .ad-primary:hover { background: #303030; }
.ad-editor .ad-primary:focus-visible {
    outline: 2px solid #2e70cf;
    outline-offset: 3px;
}
.ad-photo-picker {
    padding: 12px;
    border: 1px dashed #8b94a3;
    border-radius: 8px;
    background: #f7f9fc;
}
.ad-photo-picker:focus-within {
    outline: 2px solid #2e70cf;
    outline-offset: 2px;
    background: #f4f8ff;
}
.ad-photo-control {
    position: relative;
    display: inline-block;
}
.ad-photo-control input {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    opacity: 0;
    cursor: pointer;
}
.ad-photo-button {
    display: inline-block;
    padding: 8px 12px;
    border: 1px solid #b5bfce;
    border-radius: 6px;
    background: #fff;
    color: #202124;
    font-weight: 600;
}
.ad-photo-control:hover .ad-photo-button { background: #eaf0f8; }
#ad-photo-list:empty { margin: 0; }
.ad-editor .ad-sms { display: none; }
.ad-errors { color: #9b1c1c; }
#ad-photo-hint { margin: 0 0 8px; }
#ad-photo-list { margin-bottom: 0; overflow-wrap: anywhere; }
@media (max-width: 600px) {
    .ad-fields { grid-template-columns: minmax(0, 1fr); }
    .ad-editor .ad-primary { width: 100%; }
}
@media (pointer: coarse) and (hover: none) {
    .ad-editor .ad-emoji { display: none; }
}
@media (pointer: coarse) {
    .ad-editor .ad-sms { display: inline-block; }
}

#ad-photo-list {
    display: flex;
    flex-wrap: wrap;
    gap: 12px;
    padding: 0;
    list-style: none;
}
#ad-photo-list > li { position: relative; }
#ad-photo-list img {
    display: block;
    width: 86px;
    height: 86px;
    object-fit: cover;
    border-radius: 8px;
    background: #e1e4e9;
}
.ad-remove-photo {
    position: absolute;
    top: 4px;
    right: 4px;
    display: grid;
    place-items: center;
    width: 36px;
    height: 36px;
    padding: 0;
    border: 1px solid #fff;
    border-radius: 50%;
    color: #fff;
    background: #171717;
    font: 22px/1 system-ui, sans-serif;
    cursor: pointer;
}
.ad-remove-photo:focus-visible {
    outline: 2px solid #2e70cf;
    outline-offset: 2px;
}

.ad-receipt { margin-top: 24px; padding-top: 12px; border-top: 1px solid #e1e4e9; }
.ad-receipt h2 { font-size: 19px; }
.ad-receipt dl { display: grid; grid-template-columns: auto minmax(0, 1fr); gap: 7px 12px; }
.ad-receipt dt { font-weight: 650; }
.ad-receipt dd { margin: 0; white-space: pre-wrap; overflow-wrap: anywhere; }
.ad-receipt-photos { display: flex; flex-wrap: wrap; gap: 8px; }
.ad-receipt-photos img { display: block; object-fit: cover; border-radius: 8px; }

.ad-activation-note {
    padding: 12px 14px;
    border-left: 4px solid #111;
    border-radius: 6px;
    background: #f0f0f0;
}
.ad-activation-note strong { white-space: nowrap; }
.ad-receipt {
    padding: 14px;
    border: 1px solid #111;
    border-radius: 8px;
}

.ad-receipt-photos button {
    border: 0;
    padding: 0;
    background: transparent;
    border-radius: 8px;
    cursor: zoom-in;
}
.ad-photo-dialog {
    padding: 0;
    border: 0;
    border-radius: 8px;
    overflow: hidden;
    background: #111;
}
.ad-photo-dialog::backdrop { background: #000b; }
.ad-photo-dialog img {
    display: block;
    max-width: calc(100vw - 32px);
    max-height: calc(100dvh - 32px);
    object-fit: contain;
}
.ad-photo-dialog form { position: absolute; top: 8px; right: 8px; margin: 0; }
.ad-photo-dialog button {
    width: 44px;
    height: 44px;
    border: 1px solid #fff;
    border-radius: 50%;
    background: #111;
    color: #fff;
    font: 26px/1 system-ui, sans-serif;
    cursor: pointer;
}

.ad-field > :is(input, textarea):focus {
    border-color: #144b99;
    box-shadow: 0 0 0 4px #dbeaff;
}
.ad-field > [aria-invalid="true"] { border-color: #aa2424; }
.ad-field-error { margin: 5px 0 0; color: #9b1c1c; font-size: .875rem; }
