.upload-zone{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;text-align:center;border:2px dashed #b9d8c8;border-radius:12px;background:#f6fbf8;padding:18px 16px;margin:12px 0 16px;cursor:pointer;color:var(--ink);transition:background .15s,border-color .15s}
.upload-zone:hover,.upload-zone:focus-visible,.upload-zone.over{border-color:var(--green);background:var(--mint)}
.upload-zone strong{font-size:15px}.upload-zone>span{font-size:13px;color:var(--muted)}
.upload-zone.busy{cursor:progress;opacity:.85}
.upload-status{font-size:13px;color:var(--green);font-weight:600;min-height:0}.upload-status:empty{display:none}
.source-row{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:8px 0;border-bottom:1px solid var(--border);margin:0}.source-row:last-child{border-bottom:0}.source-row>span{min-width:0;overflow-wrap:anywhere}
.sources-card{margin-bottom:20px}
.file-gallery{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:12px;margin:12px 0}
.file-tile{display:flex;flex-direction:column;gap:4px;border:1px solid var(--border);border-radius:10px;padding:8px;background:var(--surface);text-decoration:none;color:var(--ink);min-width:0}.file-tile:hover{border-color:var(--green)}
.file-tile img{width:100%;height:110px;object-fit:contain;background:#f3f5f4;border-radius:6px}
.file-kind{display:flex;align-items:center;justify-content:center;height:110px;border-radius:6px;background:var(--mint);color:var(--green);font-weight:700;font-size:20px;letter-spacing:1px}
.file-name{font-size:13px;font-weight:600;overflow-wrap:anywhere}
