.source-panel { padding:12px 22px; background:var(--panel); border-bottom:1px solid var(--line); display:grid; grid-template-columns:210px minmax(260px,1fr) auto; gap:12px; align-items:center }
.source-panel > div:first-child strong, .source-panel > div:first-child span { display:block }
.source-panel > div:first-child strong { font-size:13px; margin:2px 0 }
.source-panel > div:first-child span { font-size:9px; color:#888 }
.source-panel textarea { width:100%; resize:vertical; border:1px solid #cfcfd6; border-radius:8px; padding:8px; font:11px "Segoe UI",sans-serif }
.source-tray { grid-column:1/-1; display:grid; grid-template-columns:repeat(auto-fill,minmax(210px,1fr)); gap:8px }
.source-actions { grid-column:1/-1; display:flex; flex-wrap:wrap; gap:8px }
.source-actions .btn { text-decoration:none; color:inherit }
.source-progress { grid-column:1/-1; margin:0; font-size:10px; color:#666 }
.source-item { display:grid; grid-template-columns:68px 68px 1fr; gap:7px; align-items:center; padding:7px; border:1px solid var(--line); border-radius:8px; background:var(--panel-raised) }
.source-item img { width:68px; height:68px; object-fit:contain; background:#eee }
.source-pending { width:68px; height:68px; display:grid; place-items:center; background:#eee; color:#888; font-size:9px }
.source-item strong, .source-item span { display:block; word-break:break-word }
.source-item strong { font-size:9px }
.source-item span { font-size:8px; color:#777; margin-top:3px }
.source-add { width:100%; min-height:30px; margin-top:6px; padding:4px 7px; font-size:9px }
@media(max-width:700px) { .source-panel { padding:12px; grid-template-columns:1fr } .source-tray { grid-column:1 } }
