/* ─── UPLOAD PAGE HI-FI ─────────────────────────────── */
.upload-mode-tabs { display:flex; gap:0; background:var(--card); border:1px solid var(--border); border-radius:12px; overflow:hidden; margin-bottom:20px; box-shadow:0 1px 3px rgba(0,0,0,.04); }
.upload-mode-tab { flex:1; padding:13px 18px; background:none; border:none; cursor:pointer; font-family:'Inter',sans-serif; font-size:13.5px; font-weight:500; color:var(--muted); display:flex; align-items:center; justify-content:center; gap:8px; transition:all .2s; border-right:1px solid var(--border); }
.upload-mode-tab:last-child { border-right:none; }
.upload-mode-tab:hover:not(.active) { background:#F7FAFC; color:var(--text); }
.upload-mode-tab.active { background:var(--dark); color:#fff; }
.tab-badge { font-size:10px; font-weight:600; padding:2px 6px; border-radius:4px; background:rgba(255,255,255,.18); color:rgba(255,255,255,.8); }
.upload-mode-tab:not(.active) .tab-badge { background:#EDF2F7; color:var(--muted); }

.upload-summary-strip { display:grid; grid-template-columns:repeat(4,1fr); gap:12px; margin-bottom:20px; }
.upload-summary-card { background:var(--card); border:1px solid var(--border); border-radius:12px; padding:14px 16px; box-shadow:0 1px 3px rgba(0,0,0,.04); }
.upload-summary-val { font-size:22px; font-weight:700; color:var(--text); line-height:1; }
.upload-summary-lbl { font-size:11px; color:var(--muted); margin-top:3px; text-transform:uppercase; letter-spacing:.4px; font-weight:500; }

.upload-dropzone { border:2px dashed #CBD5E0; border-radius:14px; padding:44px 24px; text-align:center; background:#FAFBFC; cursor:pointer; transition:border-color .2s,background .2s; }
.upload-dropzone:hover,.upload-dropzone.drag-over { border-color:var(--blue); background:#EBF8FF; }
.dropzone-icon { width:52px; height:52px; border-radius:14px; background:#EDF2F7; display:flex; align-items:center; justify-content:center; margin:0 auto 14px; transition:background .2s; }
.upload-dropzone:hover .dropzone-icon { background:#BEE3F8; }
.dropzone-title { font-size:15px; font-weight:600; color:var(--dark); margin-bottom:4px; }
.dropzone-sub { font-size:13px; color:var(--muted); margin-bottom:10px; }
.dropzone-meta { font-size:11.5px; color:#A0AEC0; }
.dropzone-browse-btn { display:inline-flex; align-items:center; gap:6px; background:var(--blue); color:#fff; padding:8px 18px; border-radius:8px; font-size:13px; font-weight:600; margin-top:14px; cursor:pointer; border:none; font-family:'Inter',sans-serif; transition:background .18s; }
.dropzone-browse-btn:hover { background:#0055a0; }

.location-select-grid { display:grid; grid-template-columns:repeat(4,1fr); gap:10px; margin-top:10px; }
.loc-select-card { border:2px solid var(--border); border-radius:12px; padding:13px 14px; cursor:pointer; background:var(--card); transition:border-color .18s,background .18s,box-shadow .18s; position:relative; }
.loc-select-card:hover { border-color:#90CDF4; background:#EBF8FF; }
.loc-select-card.selected { border-color:var(--blue); background:#EBF8FF; box-shadow:0 0 0 3px rgba(0,100,164,.1); }
.loc-select-name { font-size:13px; font-weight:600; color:var(--dark); margin-bottom:3px; }
.loc-select-count { font-size:11.5px; color:var(--muted); }
.loc-select-check { position:absolute; top:10px; right:10px; width:18px; height:18px; border-radius:50%; background:var(--blue); display:none; align-items:center; justify-content:center; }
.loc-select-card.selected .loc-select-check { display:flex; }

.upload-queue-list { border:1px solid var(--border); border-radius:12px; overflow:hidden; }
/* align-items:end so thin progress bar sits near the text baseline, not floating mid-air */
.upload-queue-item { display:grid; grid-template-columns:36px 1fr auto auto 100px 88px; align-items:end; gap:12px; padding:14px 16px; border-bottom:1px solid var(--border); transition:background .15s; }
.upload-queue-item:last-child { border-bottom:none; }
.upload-queue-item:hover { background:#FAFBFC; }
.queue-file-icon { width:36px; height:36px; border-radius:8px; background:#EBF8FF; display:flex; align-items:center; justify-content:center; flex-shrink:0; align-self:center; }
.queue-file-name { font-size:13px; font-weight:500; color:var(--text); }
.queue-file-meta { font-size:11.5px; color:var(--muted); margin-top:3px; }
.queue-location-tag { font-size:11px; font-weight:600; padding:3px 8px; border-radius:6px; background:#EBF8FF; color:var(--blue); white-space:nowrap; align-self:center; }
.queue-size-text { font-size:12px; color:var(--muted); white-space:nowrap; align-self:center; }
/* progress wrap: pushed down with padding-bottom to optically balance with status pill */
.queue-prog-wrap { display:flex; flex-direction:column; gap:5px; padding-bottom:2px; }
.queue-prog-bar  { height:5px; background:#E2E8F0; border-radius:3px; overflow:hidden; }
.queue-prog-fill { height:100%; border-radius:3px; transition:width .5s cubic-bezier(.4,0,.2,1); }
.queue-prog-fill.done   { background:#48BB78; }
.queue-prog-fill.active { background:var(--blue); position:relative; overflow:hidden; }
.queue-prog-fill.active::after { content:''; position:absolute; inset:0; background:linear-gradient(90deg,transparent,rgba(255,255,255,.45),transparent); animation:shimmer 1.6s ease-in-out infinite; }
.queue-prog-pct { font-size:11px; color:var(--muted); text-align:right; }

