/* Infini Reviews — Luxury SaaS UI kit */

* { scrollbar-width: thin; scrollbar-color: rgba(148,163,184,.3) transparent; }
::-webkit-scrollbar { width: 8px; height: 8px; }
::-webkit-scrollbar-thumb { background: rgba(148,163,184,.3); border-radius: 999px; }

.glass {
  background: rgba(255,255,255,0.05);
  border: 1px solid rgba(255,255,255,0.1);
  backdrop-filter: blur(20px);
  -webkit-backdrop-filter: blur(20px);
}
.light .glass, html:not(.dark) .glass {
  background: rgba(255,255,255,0.7);
  border: 1px solid rgba(15,23,42,0.08);
}

.card-hover { transition: transform .25s ease, box-shadow .25s ease; }
.card-hover:hover { transform: translateY(-3px); box-shadow: 0 20px 40px -20px rgba(99,102,241,.35); }

.btn-primary {
  background-image: linear-gradient(135deg,#6366f1,#d946ef);
  transition: transform .15s ease, opacity .15s ease;
}
.btn-primary:hover { opacity:.92; transform: translateY(-1px); }
.btn-primary:active { transform: translateY(0); }

.fade-in { animation: fadeIn .5s ease both; }
@keyframes fadeIn { from{opacity:0; transform:translateY(8px);} to{opacity:1; transform:translateY(0);} }

.pulse-dot { animation: pulse 2s infinite; }
@keyframes pulse { 0%,100%{opacity:1;} 50%{opacity:.4;} }

.skeleton { background: linear-gradient(90deg, rgba(255,255,255,.05) 25%, rgba(255,255,255,.12) 37%, rgba(255,255,255,.05) 63%); background-size:400% 100%; animation: shimmer 1.4s ease infinite; }
@keyframes shimmer { 0%{background-position:100% 50%;} 100%{background-position:0 50%;} }

.sidebar-link.active { background: rgba(99,102,241,0.15); color:#fff; border-left: 2px solid #818cf8; }

.toggle input:checked + .toggle-track { background-image: linear-gradient(135deg,#6366f1,#d946ef); }
.toggle input:checked + .toggle-track .toggle-thumb { transform: translateX(20px); }

@media print {
  .no-print { display: none !important; }
}
