.avp-personalize{margin:0 0 1.2em;padding:1em;border:1px solid #e5e5e5;border-radius:10px;background:#fafafa}
.avp-preview{position:relative;margin-bottom:.8em;text-align:center}
.avp-preview img{max-width:100%;height:auto;border-radius:8px;background:#fff}
.avp-spinner{position:absolute;top:10px;right:10px;width:18px;height:18px;border:3px solid #ccc;border-top-color:#333;border-radius:50%;animation:avp-spin .8s linear infinite}
.avp-spinner[hidden]{display:none}
@keyframes avp-spin{to{transform:rotate(360deg)}}
.avp-field{position:relative;margin-bottom:.6em}
.avp-field label{display:block;font-weight:600;margin-bottom:.2em}
.avp-field .avp-input{width:100%;padding:.6em .8em;font-size:1.05em}
.avp-count{position:absolute;right:.6em;bottom:.55em;font-size:.75em;color:#888}
.avp-note{font-size:.85em;color:#666;margin:.4em 0 0}
.avp-errors{color:#b00020;margin:.5em 0 0;padding-left:1.2em;font-size:.9em}
.avp-field-image .avp-upload{display:flex;align-items:center;gap:12px;flex-wrap:wrap}
.avp-thumb{width:72px;height:72px;object-fit:cover;border-radius:8px;border:1px solid #ddd;background:#fff}
.avp-thumb[hidden]{display:none}
.avp-upload-btn{cursor:pointer;margin:0}
.avp-upload-btn input{display:none}
.avp-upload-status{font-size:.85em;color:#555}
.avp-upload-status.avp-err{color:#b00020}
.avp-hint{display:block;font-size:.8em;color:#777;margin-top:.3em}
