* { box-sizing: border-box; }
body {
  font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", "Microsoft YaHei", sans-serif;
}
::-webkit-scrollbar { width: 6px; height: 6px; }
::-webkit-scrollbar-track { background: transparent; }
::-webkit-scrollbar-thumb { background: #cbd5e1; border-radius: 9999px; }
::-webkit-scrollbar-thumb:hover { background: #94a3b8; }
.sidebar-link-active {
  background: #2563eb !important;
  color: #fff !important;
}
aside nav button {
  border-radius: 0.5rem !important;
  margin-left: 0.75rem !important;
  margin-right: 0.75rem !important;
  width: calc(100% - 1.5rem) !important;
  padding: 0.5rem 0.75rem !important;
}
aside nav button:hover {
  background-color: #1e293b !important;
  color: #fff !important;
}
.shadow-xs { box-shadow: 0 1px 2px rgba(15, 23, 42, 0.05); }
.avatar-ring { box-shadow: 0 0 0 2px #fff, 0 0 0 4px #2563eb; }
.animate-fade-in { animation: fade-in .18s ease-out; }
.animate-spin-hover:hover { animation: spin .8s linear infinite; }
@keyframes fade-in {
  from { opacity: 0; transform: translateY(4px); }
  to { opacity: 1; transform: translateY(0); }
}
@keyframes spin { to { transform: rotate(360deg); } }
button:disabled {
  opacity: .55;
  cursor: not-allowed;
}
