.listing-ai { min-width: 0; }
.listing-ai-preview { margin-bottom: 20px; overflow: hidden; border: 1px solid var(--border); border-radius: 16px; background: var(--surface); }
.listing-ai-preview > img { display: block; width: 100%; height: 230px; object-fit: contain; }
.listing-ai-photo-details { display: flex; align-items: center; justify-content: space-between; gap: 14px; padding: 12px 15px; border-top: 1px solid var(--border); background: var(--background); }
.listing-ai-photo-details > span { min-width: 0; font-size: 12px; color: var(--muted); overflow-wrap: anywhere; }
.listing-ai-photo-details .btn { flex-shrink: 0; min-height: 36px; padding: 8px 12px; font-size: 11px; }
.listing-ai-preview-compact { display: grid; grid-template-columns: 106px minmax(0, 1fr); }
.listing-ai-preview-compact > img { width: 106px; height: 102px; }
.listing-ai-preview-compact .listing-ai-photo-details { flex-wrap: wrap; justify-content: flex-start; align-content: center; gap: 8px; border-top: 0; border-left: 1px solid var(--border); }
.listing-ai-preview-compact .listing-ai-photo-details > span { width: 100%; }
.listing-ai-file-actions { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; }
.listing-ai-file-actions .btn { padding-inline: 12px; }
.listing-ai-file-hint { margin: 10px 0 23px; color: var(--muted); font-size: 11px; }
.listing-ai .field > label { font-size: 12px; }
.listing-ai .field input, .listing-ai .field textarea, .listing-ai .field select { font-size: 14px; }
.listing-ai .field textarea { resize: none; min-height: 104px; }
.listing-ai .field textarea[aria-invalid="true"], .listing-ai .field select[aria-invalid="true"] { border-color: var(--danger); }
.listing-ai .field input:disabled, .listing-ai .field textarea:disabled { color: var(--muted); background: var(--surface); }
.listing-ai-privacy { padding: 15px 17px; margin: 0 0 19px; border-radius: 12px; background: var(--surface); color: var(--muted); font-size: 12px; line-height: 1.7; }
.listing-ai-generate-row { display: grid; grid-template-columns: minmax(0, 1fr); gap: 10px; }
.listing-ai-generate { width: 100%; min-height: 48px; white-space: nowrap; }
.listing-ai-generate-row > .btn-secondary { justify-self: end; }
.listing-ai .btn:disabled { cursor: not-allowed; opacity: .55; transform: none; }
.listing-ai .listing-ai-generate[disabled] { min-height: 48px; }
.listing-ai[aria-busy="true"] .listing-ai-generate { opacity: 1; background: var(--surface); border-color: var(--border); }
.listing-ai-spinner { display: inline-block; width: 16px; height: 16px; flex: 0 0 16px; border: 2px solid var(--border); border-top-color: var(--focus); border-radius: 50%; animation: listing-ai-spin 800ms linear infinite; }
.listing-ai-status { min-height: 20px; margin: 8px 0 0; color: var(--muted); font-size: 11px; line-height: 1.6; }
.listing-ai-status:empty { margin: 0; min-height: 0; }
.listing-ai-error { padding: 13px 16px; margin: 0 0 18px; border: 1px solid var(--danger); border-radius: 12px; color: var(--danger); font-size: 13px; line-height: 1.7; overflow-wrap: anywhere; }
.listing-ai-draft-note { margin: 0 0 21px; color: var(--muted); font-size: 13px; line-height: 1.7; }
.listing-ai-review { margin: 0 0 22px; padding: 15px 17px; border: 1px solid var(--border); border-radius: 12px; background: var(--surface); }
.listing-ai-review h3 { margin: 0 0 7px; font-size: 13px; font-weight: 600; }
.listing-ai-review ul { margin: 0; padding-left: 18px; color: var(--muted); font-size: 12px; line-height: 1.7; }
.listing-ai-review li { padding-left: 2px; overflow-wrap: anywhere; }
.listing-ai-form .dialog-actions .btn { min-height: 46px; }
@keyframes listing-ai-spin { to { transform: rotate(360deg); } }
@media (max-width: 560px) {
  .listing-ai-preview > img { height: 190px; }
  .listing-ai-preview-compact > img { height: 102px; }
  .listing-ai-file-actions .btn { font-size: 12px; gap: 7px; }
  .listing-ai-file-actions .icon { width: 17px; height: 17px; }
  .listing-ai .field input, .listing-ai .field textarea, .listing-ai .field select { font-size: 16px; }
  .listing-ai-form .form-columns { grid-template-columns: minmax(0, 1fr); gap: 0; }
  .listing-ai-generate { flex-basis: 100%; }
  .listing-ai-generate-row > .btn-secondary { width: 100%; }
}
@media (prefers-reduced-motion: reduce) { .listing-ai-spinner { animation: none; } }
