.attachment-gallery{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:10px;margin-top:12px}.attachment-item{min-width:0;border:1px solid var(--line);border-radius:8px;background:#fff;overflow:hidden}.attachment-item img,.attachment-item video{display:block;width:100%;aspect-ratio:4/3;object-fit:cover;background:#eef2ef}.attachment-item img{cursor:zoom-in}.attachment-item img:focus-visible{outline:3px solid var(--green);outline-offset:-3px}.attachment-item audio{display:block;width:100%;height:44px;margin-top:8px}.attachment-name{padding:7px 9px;color:var(--muted);font-size:12px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.attachment-loading,.attachment-error{display:grid;place-items:center;min-height:90px;padding:12px;color:var(--muted);font-size:12px;text-align:center}.attachment-error{color:#a34b3d}.upload-status{display:block;margin-top:7px;color:var(--green);font-size:12px;font-weight:700}.submit-btn[disabled]{cursor:wait;opacity:.65}.preview-open{overflow:hidden}.image-preview{position:fixed;inset:0;z-index:1000;display:grid;place-items:center;padding:56px 24px 24px;background:rgba(13,19,16,.92)}.image-preview-dialog{width:100%;height:100%;display:grid;place-items:center;position:relative}.image-preview-dialog img{display:block;max-width:100%;max-height:100%;object-fit:contain}.image-preview-close{position:fixed;top:max(14px,env(safe-area-inset-top));right:max(16px,env(safe-area-inset-right));width:40px;height:40px;border:0;border-radius:50%;background:#fff;color:#17211c;font-size:28px;line-height:1;cursor:pointer;box-shadow:0 4px 18px rgba(0,0,0,.25)}@media(max-width:640px){.attachment-gallery{grid-template-columns:repeat(2,minmax(0,1fr))}.attachment-item audio{height:40px}.image-preview{padding:56px 10px 14px}}
