/* Authoritative sizing. Normal uploads retain original dimensions. Only extreme
 * panoramas/screenshots use a neutral contain frame, independent of shell height. */
.social-photo{display:block;width:100%;position:relative;overflow:hidden;background:var(--bp-card2);aspect-ratio:var(--photo-ratio,1);border-radius:var(--swack-media-radius,0px)}
.social-photo img{display:block;position:absolute;inset:0;width:100%;height:100%;object-fit:contain;object-position:center;border-radius:var(--swack-media-radius,0px)}
.social-photo-placeholder{position:absolute;inset:0;display:grid;place-items:center;background:linear-gradient(135deg,var(--bp-card2),var(--bp-card));color:var(--bp-muted)}
.social-photo-placeholder svg{width:32px;height:32px;fill:none;stroke:currentColor;stroke-width:1.2;opacity:.5}
.social-photo:not(.loaded) img{opacity:0}
.social-photo.loaded .social-photo-placeholder{display:none}
.social-photo.social-photo-tall{max-height:100svh}
.social-photo.social-photo-wide{min-height:100px}
.social-photo.swack-photo-error{display:grid;place-items:center;box-sizing:border-box;padding:20px;text-align:center;color:var(--bp-muted)}
.swack-social-gallery img{object-fit:contain;background:var(--bp-card2)}
.social-local-preview{display:block;width:100%;height:auto;max-width:100%;object-fit:contain;margin:0}
#post-photo-preview:empty{display:none}
#social-composer #post-photo-preview{overflow:hidden;background:var(--bp-card2)}
#social-composer .social-photo-picker{border:0;padding:0}
.social-photo-picker>div{display:flex;gap:10px;margin:10px 0}
.social-photo-picker button{flex:1;min-height:44px;border:1px solid var(--bp-line);border-radius:12px;background:transparent;color:var(--bp-ink);padding:10px;font:inherit}
.social-photo-picker input[hidden]{display:none}
.social-capture-frame{box-sizing:border-box;width:calc(100% - 24px);max-width:440px;max-height:calc(100dvh - 24px);overflow:auto;margin:auto;padding:18px;background:var(--bp-card);color:var(--bp-ink);border:1px solid var(--bp-line);border-radius:20px}
.social-capture-frame::backdrop{background:#11182799}
.social-capture-frame h2{font-size:21px;margin:0 0 8px}
.social-capture-frame p{font-size:14px;line-height:1.45;color:var(--bp-muted);margin:0 0 14px}
.social-capture-frame canvas{display:block;width:min(100%,44dvh);height:auto;aspect-ratio:4/5;touch-action:none;cursor:grab;margin-inline:auto;background:var(--bp-card2)}
.social-capture-frame canvas:active{cursor:grabbing}
.social-capture-position{display:flex;gap:12px;margin:14px 0}
.social-capture-position label{display:grid;gap:4px;flex:1;min-width:0;font-size:12px;color:var(--bp-muted)}
.social-capture-position input{width:100%;min-height:32px;accent-color:var(--bp-purple)}
.social-capture-position label:has(input:disabled){display:none}
.social-capture-actions{display:flex;gap:12px}.social-capture-actions button{flex:1;min-height:44px;padding:10px 14px;border:1px solid var(--bp-line);border-radius:12px;background:transparent;color:var(--bp-ink);font:inherit}.social-capture-actions [data-accept]{background:var(--swack-action-bg);color:var(--swack-action-ink);border-color:transparent}
