.photo-feedback{position:fixed;z-index:1250;left:50%;bottom:calc(16px + max(var(--mobile-nav-space,0px),env(safe-area-inset-bottom,0px)));transform:translateX(-50%);display:flex;align-items:center;gap:12px;width:calc(100% - 32px);max-width:560px;max-height:40dvh;overflow:auto;margin:0;padding:14px 16px;border:1px solid #9dac8f;border-radius:8px;background:#f1f7eb;color:#263c24;box-shadow:0 5px 24px #24201d30;font-size:14px;line-height:1.5;overflow-wrap:anywhere}
.photo-feedback[hidden]{display:none}
.photo-feedback[data-photo-feedback][role=status]{top:max(16px,env(safe-area-inset-top,0px));bottom:auto;background:#19743b;border-color:#125a2d;color:#fff}
.photo-feedback-message{flex:1;min-width:0}
.photo-feedback-icon{flex:none;font-size:22px;font-weight:bold}
.photo-feedback-close{flex:none;align-self:flex-start;min-width:44px;min-height:44px;padding:4px;background:transparent;border:1px solid currentColor;border-radius:5px;color:inherit;font:inherit;font-size:24px;cursor:pointer}
.photo-feedback-error{border-color:#9d3447;background:#fff0f1;color:#702234}
.photo-feedback-pending{border-color:var(--line);background:var(--white);color:var(--ink)}
.photo-feedback-spinner{flex:none;width:22px;height:22px;border:3px solid var(--line);border-top-color:var(--wine);border-radius:50%;animation:photo-saving 1s linear infinite}
@keyframes photo-saving{to{transform:rotate(360deg)}}
@media(prefers-reduced-motion:reduce){.photo-feedback-spinner{animation:none}}
