.pp-image-upload{margin:18px 0 22px;padding:18px;border:1px solid var(--line);border-radius:12px;background:linear-gradient(130deg,#f8faf6,#fff);transition:border-color var(--motion-fast),background var(--motion-fast)}
.pp-image-upload-main{display:flex;align-items:center;gap:18px}.pp-image-preview{display:grid;place-items:center;width:94px;height:94px;flex:0 0 94px;overflow:hidden;border:1px dashed #cbd5c7;border-radius:14px;background:#edf2e9;color:#718268;font-size:30px}.pp-image-preview img{width:100%;height:100%;object-fit:cover}.pp-image-upload.is-round .pp-image-preview{border-radius:50%}.pp-image-upload-copy{min-width:0;flex:1}.pp-image-upload-copy>strong{font-size:13px}.pp-image-upload-copy>p{margin:6px 0 12px;color:var(--muted);font-size:11px;line-height:1.5}.pp-image-actions{display:flex;align-items:center;gap:14px;flex-wrap:wrap}.pp-image-actions [hidden]{display:none}.pp-image-pick{position:relative;display:inline-flex;align-items:center;justify-content:center;overflow:hidden;cursor:pointer;background:var(--forest);border-color:var(--forest);color:#fff}.pp-image-pick input{position:absolute;inset:0;width:100%;height:100%;opacity:0;cursor:pointer}.pp-image-status{min-height:16px;margin-top:10px;color:#6d7b65;font-size:10px;line-height:1.5;overflow-wrap:anywhere}.pp-image-upload.is-uploading .pp-image-status::before{content:'';display:inline-block;width:10px;height:10px;margin-right:7px;border:1.5px solid #bfceb5;border-top-color:var(--forest);border-radius:50%;animation:pp-image-spin 800ms linear infinite}.pp-image-upload.has-error{border-color:#edc2c3;background:#fff9f8}.pp-image-upload.has-error .pp-image-status{color:#b8484c}.pp-image-link{margin-top:13px;padding-top:11px;border-top:1px solid var(--line)}.pp-image-link summary{width:fit-content;cursor:pointer;color:#73806b;font-size:10px}.pp-image-link .field{margin-top:10px;background:#fff}.pp-image-link small{display:block;margin-top:7px;color:var(--muted);font-size:10px;line-height:1.5}.pp-avatar-view{display:block;border:0;padding:0;background:none;border-radius:22px}.pp-avatar-view img{display:block}.pp-private-image-loading{background:linear-gradient(100deg,#edf1e9,#f7f8f4,#edf1e9);background-size:200% 100%;animation:pp-image-shimmer 1.5s ease-in-out infinite}.pp-private-image-failed{background:#f1e9e7!important;cursor:pointer;min-width:24px;min-height:24px;object-fit:contain!important;font-size:10px;color:#9f6459}.pp-image-viewer{position:fixed;z-index:2000;inset:0;display:grid;place-items:center;padding:24px;background:rgba(10,22,17,.82);backdrop-filter:blur(10px);animation:pp-image-appear 160ms ease-out}.pp-image-viewer>section{width:min(1080px,100%);max-height:calc(100dvh - 48px);display:flex;flex-direction:column;overflow:hidden;border:1px solid #ffffff26;border-radius:16px;background:#17251e;box-shadow:0 30px 100px #0005;color:#fff}.pp-image-viewer header{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:16px 20px;border-bottom:1px solid #ffffff1c}.pp-image-viewer header strong{font-size:14px}.pp-image-viewer header>div{display:flex;gap:12px;align-items:center}.pp-image-viewer .icon-button{background:transparent;color:#fff}.pp-image-viewer-content{display:grid;place-items:center;min-height:120px;overflow:auto;padding:12px}.pp-image-viewer-content>img{max-width:100%;max-height:calc(100dvh - 186px);object-fit:contain;border-radius:5px}.pp-image-viewer-content>span{color:#b5c4b9;font-size:12px}.pp-image-viewer p{margin:0;padding:0 20px 12px;color:#c6d2c8;font-size:11px}.pp-image-viewer p:empty{display:none}
@keyframes pp-image-spin{to{transform:rotate(360deg)}}@keyframes pp-image-shimmer{to{background-position:-200% 0}}@keyframes pp-image-appear{from{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}
@media(max-width:560px){.pp-image-upload{padding:14px}.pp-image-upload-main{gap:12px;align-items:flex-start}.pp-image-preview{width:74px;height:74px;flex-basis:74px}.pp-image-actions{gap:10px}.pp-image-pick{min-height:40px}.pp-image-upload-copy>p{font-size:10px}.pp-image-viewer{padding:12px}.pp-image-viewer>section{max-height:calc(100dvh - 24px)}.pp-image-viewer header{padding:12px}.pp-image-viewer-content{padding:6px}.pp-image-viewer .btn{min-height:40px}}
@media(prefers-reduced-motion:reduce){.pp-image-upload,.pp-image-viewer{transition:none;animation:none}.pp-private-image-loading,.pp-image-upload.is-uploading .pp-image-status::before{animation:none}}

.cm-setup-review header>img{width:45px;height:45px;object-fit:cover;border-radius:11px;flex-shrink:0}
