/* Upload page. Built on site.css (.q, .choice, .card, .btn, .form-alert). */
.visually-hidden { position: absolute; width: 1px; height: 1px; margin: -1px; padding: 0; overflow: hidden; clip: rect(0 0 0 0); border: 0; }
#upload form { display: grid; gap: 4px; }
#upload .btn[type="submit"] { width: 100%; margin: 6px 0 40px; }
#up-dests small, .find-hit small { display: block; font-weight: 400; color: var(--muted); font-size: .9rem; }
.up-more { margin-top: 18px; }
.up-more label { display: block; font-weight: 700; margin: 12px 0 6px; }
.up-nine { grid-template-columns: repeat(auto-fill, minmax(8.5em, 1fr)); }
.line-ok { font-weight: 700; margin: 12px 0 0; }
.line-ok:empty { display: none; }
.finder { margin-top: 16px; border: 1px solid var(--line); border-radius: var(--radius-sm); background: #fffdf8; }
.finder > summary { cursor: pointer; padding: 14px 16px; font-weight: 700; min-height: 48px; }
#finder-body { padding: 0 16px 16px; }
#finder-body label { display: block; font-weight: 700; margin-bottom: 6px; }
.find-results { list-style: none; margin: 10px 0 0; padding: 0; display: grid; gap: 8px; }
.find-hit { width: 100%; text-align: left; min-height: 52px; padding: 10px 14px; border: 1.5px solid var(--line); border-radius: 12px; background: #fff; font: inherit; font-weight: 600; cursor: pointer; }
.find-hit:hover { border-color: var(--accent); }
.find-hit:focus-visible { outline: 3px solid var(--ink); outline-offset: 2px; }
label.pick { cursor: pointer; margin-bottom: 14px; }
#up-files:focus-visible + .up-list, label.pick:focus-within { outline: 0; }
.up-list { list-style: none; margin: 0; padding: 0; display: grid; gap: 12px; }
.up-item { display: grid; grid-template-columns: 76px 1fr auto; gap: 12px; align-items: center; padding: 10px; border: 1px solid var(--line); border-radius: var(--radius-sm); background: #fff; }
.up-item img, .up-item .ph { width: 76px; height: 76px; object-fit: cover; border-radius: 8px; background: var(--track); }
.up-info { min-width: 0; display: grid; gap: 4px; }
.up-info b { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-size: .95rem; }
.up-info .st { color: var(--muted); font-size: .9rem; }
.up-item.failed .st { color: var(--err); font-weight: 700; }
.up-item.done .st, .up-item.duplicate .st { color: #166534; font-weight: 700; }
.up-info .cap { min-height: 44px; padding: 8px 12px; font-size: .95rem; }
.bar { height: 8px; border-radius: 999px; background: var(--track); overflow: hidden; }
.bar i { display: block; height: 100%; background: var(--accent); transition: width .15s ease; }
.btn.small { min-height: 44px; padding: 8px 14px; font-size: .92rem; }
@media (max-width: 480px) { .up-item { grid-template-columns: 60px 1fr; } .up-item img, .up-item .ph { width: 60px; height: 60px; } .up-item .btn { grid-column: 1 / -1; } }
