.spinner { width:22px; height:22px; border:3px solid rgba(0,0,0,0.08); border-top-color:#28a745; border-radius:50%; animation: spin 1s linear infinite; }
@keyframes spin { to { transform: rotate(360deg); } }
.progress-bar { background:#e9f5ec; border-radius:8px; height:10px; width:100%; overflow:hidden; }
.progress-fill { height:100%; width:0%; background:linear-gradient(90deg,#2e7d32,#66bb6a); transition:width 300ms linear; }

.pdf-card { display:flex; flex-direction:column; align-items:center; justify-content:center; padding:25px; border-radius:12px; border:2px dashed #ddd; background:#fff; cursor:pointer; transition:transform .2s, background .2s; }
.pdf-card:hover { transform:scale(1.02); border-color:#007bff; }

.thumb-card { background:#f9f9f9; border-radius:12px; box-shadow:0 4px 12px rgba(0,0,0,0.15); padding:10px; display:flex; flex-direction:column; align-items:center; max-width: 300px; margin: 10px auto; }
#pdfThumb { max-width: 100%; height: auto; border-radius:8px; }

.page-count { background:#0078ff; color:#fff; padding:3px 8px; border-radius:8px; margin-top:6px; font-size:0.85rem; display:block; }
.file-size { background:#28a745; color:#fff; padding:3px 8px; border-radius:8px; margin-top:6px; font-size:0.85rem; display:block; }

.remove-file-btn { background:#dc3545; color:#fff; padding:6px 12px; border:none; border-radius:6px; margin-top:10px; font-size:0.85rem; cursor:pointer; transition:0.2s; }
.remove-file-btn:hover { background:#c82333; transform:scale(1.05); }

@media (prefers-reduced-motion: reduce) { .progress-fill { transition:none; } .spinner { animation:none; } }
