/* Photo manager of the editor (up to three photos). Kept apart from styles.css so both can evolve without conflicts. */
.photo-set{display:grid;gap:14px;margin:8px 0 18px}
.photo-list{list-style:none;margin:0;padding:0;display:grid;gap:12px}
.photo-item{display:grid;grid-template-columns:104px minmax(0,1fr);gap:14px;align-items:start;padding:12px;border:1px solid var(--line,#dce3ed);border-radius:12px;background:#fff}
.photo-item.is-failed{border-color:#d9a3ae;background:#fff7f8}
.photo-thumb{width:104px;aspect-ratio:4/5;border-radius:8px;overflow:hidden;background:#eef2f7}
.photo-thumb img{display:block;width:100%;height:100%}
.photo-title{margin:2px 0 8px;font-size:14px}
.photo-controls{border:0;padding:0;margin:0;min-width:0}
.photo-controls:disabled,.photo-add:has(input:disabled){opacity:.6}
.photo-actions{display:flex;flex-wrap:wrap;gap:6px;align-items:center}
.photo-file,.photo-add{position:relative;cursor:pointer}
.photo-file input,.photo-add input{position:absolute;inset:0;width:100%;height:100%;opacity:0;cursor:pointer}
.photo-file:focus-within,.photo-add:focus-within{outline:2px solid var(--navy,#172c49);outline-offset:2px}
.photo-framing{margin-top:10px}
.photo-framing summary{cursor:pointer;font-size:13px;font-weight:600;color:var(--navy,#172c49);padding:4px 0}
.photo-framing .field{margin:10px 0 0}
.photo-add{display:flex;gap:12px;align-items:center;padding:14px 16px;border:1.5px dashed #b7c4d6;border-radius:12px;background:#f8fafc;color:var(--navy,#172c49)}
.photo-add:hover{background:#f1f5fa}
.photo-add small{display:block;color:var(--muted,#68778a);font-size:12px;font-weight:400;margin-top:2px}
.photo-add-icon{display:grid;place-items:center;width:44px;height:44px;border-radius:10px;background:#e9eef6}
.photo-status{display:flex;align-items:center;gap:8px;margin:0 0 6px;font-size:13px}
.photo-status.failed{display:block;color:#8a2337}
.photo-status.failed p{margin:0 0 8px}
.photo-empty-choice,.social-photo-choice{border:1px solid var(--line,#dce3ed);border-radius:12px;padding:12px 14px;display:grid;gap:10px;margin:0}
.photo-empty-choice legend,.social-photo-choice legend{font-weight:600;font-size:13px;padding:0 4px}
.photo-empty-choice small{display:block;color:var(--muted,#68778a);font-weight:400;margin-top:2px}
.social-photo-choice{margin:4px 0 16px}
.social-photo-option{display:flex;align-items:center;gap:10px;font-size:14px;cursor:pointer}
.social-photo-option img{border-radius:6px;background:#eef2f7}
@media (max-width:420px){.photo-item{grid-template-columns:76px minmax(0,1fr);gap:10px;padding:10px}.photo-thumb{width:76px}}
