.background-uploads{position:fixed;right:18px;bottom:18px;z-index:10000;display:grid;align-content:start;align-items:start;grid-auto-rows:max-content;gap:8px;width:min(320px,calc(100vw - 24px));height:max-content;min-height:0;max-height:65vh;overflow:auto}.background-upload-card{position:relative;background:#242424;color:#f8f7f6;border:1px solid #736c5a;border-radius:12px;padding:16px;box-shadow:0 8px 30px #0006}.background-upload-card>strong,.background-upload-card>small{display:block;margin-right:22px;overflow-wrap:anywhere}.background-upload-card>small{margin-top:6px;color:#d1cec5}.background-upload-card>button{position:absolute;right:6px;top:6px;background:transparent;border:0;color:inherit;font-size:24px;cursor:pointer}.background-upload-card>div{display:flex;justify-content:space-between;gap:10px;margin-top:12px;font-size:12px}.background-upload-card progress{display:block;width:100%;height:12px;margin-top:8px;accent-color:#ffd21a}.background-upload-card.has-error{border-color:#d7798c}

.background-upload-card>.background-upload-retry{position:static;font-size:12px;margin-top:12px;border:1px solid #958c77;border-radius:6px;padding:8px;white-space:normal;text-align:left}
.background-upload-card>[data-title],.background-upload-card>[data-files]{display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;overflow:hidden}.background-upload-card>[hidden]{display:none}.background-upload-card [data-phase]{display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:3;overflow:hidden;overflow-wrap:anywhere}.background-upload-card [data-percent]{flex-shrink:0}
.background-uploads[hidden],.background-upload-card[hidden],.background-upload-card>progress[hidden]{display:none!important}
.background-upload-card>[data-processing]{display:grid;grid-template-columns:1fr auto;gap:4px 10px}.background-upload-card>[data-processing][hidden]{display:none}.background-upload-card>[data-processing] progress{grid-column:1/-1;margin-top:0;accent-color:#9bcbff}

/* Keep uploads outside every dialog's layout; modal controls take focus until closed. */
body:has(dialog[open])>.background-uploads:not([popover]){visibility:hidden;pointer-events:none}
.background-upload-card.has-error [data-phase]{display:block;-webkit-line-clamp:unset}

/* A separate top-layer surface stays in the viewport corner even over a modal. */
.background-uploads[popover]{inset:auto 16px 16px auto;margin:0;border:0;padding:0;background:transparent;color:inherit;width:min(320px,calc(100vw - 24px));height:max-content;min-height:0;max-height:min(50dvh,420px);overflow:auto;}
.background-uploads[popover]::backdrop{display:none}
.background-uploads .background-upload-card{box-sizing:border-box;align-self:start;height:auto;min-height:0;margin:0;padding:10px 12px;border-radius:10px;font-size:13px;}
.background-uploads .background-upload-card>strong{font-size:13px;line-height:1.4;margin-right:32px;}
.background-uploads .background-upload-card>small{font-size:11px;line-height:1.4;margin-top:3px;}
.background-uploads .background-upload-card>div{margin-top:8px;}
.background-uploads .background-upload-card>progress{height:8px;margin-top:6px;}
.background-uploads .background-upload-card>button:not(.background-upload-retry){width:36px;height:36px;right:2px;top:2px;font-size:21px;}
@media(max-width:600px){.background-uploads[popover]{right:12px;bottom:max(12px,env(safe-area-inset-bottom));max-height:35dvh;}.background-uploads .background-upload-card>button:not(.background-upload-retry){width:44px;height:44px;}.background-uploads .background-upload-card>strong{margin-right:40px;}.background-uploads .background-upload-card>.background-upload-retry{min-height:44px;}}
