* { box-sizing: border-box; }
body { font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Helvetica, Arial, sans-serif; }

.photo-card { transition: transform .15s ease, box-shadow .15s ease; }
.photo-card:hover { transform: translateY(-2px); box-shadow: 0 8px 20px rgba(0,0,0,.08); }

.status-badge { font-size: 11px; font-weight: 600; padding: 2px 8px; border-radius: 999px; text-transform: uppercase; letter-spacing: .03em; }
.status-approved { background: #dcfce7; color: #166534; }
.status-pending { background: #fef9c3; color: #854d0e; }
.status-rejected { background: #fee2e2; color: #991b1b; }

.nav-link { padding: .5rem .9rem; border-radius: .5rem; font-weight: 500; color: #475569; }
.nav-link.active { background: #4f46e5; color: white; }
.nav-link:hover:not(.active) { background: #e2e8f0; }

.spinner { border: 3px solid #e2e8f0; border-top-color: #4f46e5; border-radius: 50%; width: 32px; height: 32px; animation: spin 0.7s linear infinite; }
@keyframes spin { to { transform: rotate(360deg); } }

.lightbox-backdrop { background: rgba(15, 23, 42, 0.9); }

.chip { display: inline-flex; align-items: center; gap: 4px; padding: 3px 10px; border-radius: 999px; background: #eef2ff; color: #4338ca; font-size: 12px; font-weight: 600; }

::-webkit-scrollbar { width: 8px; height: 8px; }
::-webkit-scrollbar-thumb { background: #cbd5e1; border-radius: 4px; }
